Feature #16715
closedPollution of linkvars, and resulting spammed cache, is a recurrent complaint.
0%
Description
It is possibie to call a multilanguage Typo3 page with a URL like
http://website.tld/index.php?id=1&L=BuyViagraHere_www.spam.com
This is passed through as a linkvar and displayed in all typolinks.
If it happens that the cache had just been deleted, and is refreshed with this access, the spammed linkvars enter the cache.
It is a frequent phenomenon that spam robots go over pages and submit any and all detected parameter options with their message. Several instances have been documented in the newsgroups where people have had their websites flooded in this way, or have observed other websites with this problem.
This is not a hacking or XSS issue, as no code can be executed and the undesirable parameter is internally used as 0 (default language), however it leads to injection of URLs and messages into all links which is visible e.g. in the status bar and adress bar. This can be considered a form of defacement.
This affects all Linkvars
In practice almost all Linkvars are needed only as integers.
I propose a new configuration option, which enforces numeric linkvars. The point to implement this would be
class.tslib_pagegen.php in typo3/sysext/cms/tslib line 234 ff
taking into consideration also linkvar arrays.
So any non-numeric linkvar would always be put out as 0. For the vast majority of websites who use linkvars only for language parameters and similar things, this could be applied without losing any functionality.
(If special cases of linkvars need to be supported one could perhaps offer the option of adding a RegEx to be applied to linkvars)
See for instance
http://lists.typo3.org/pipermail/typo3-german/2006-November/024408.html
http://lists.typo3.org/pipermail/typo3-dev/2006-April/017091.html
and posting from Nov.14 in typo3.german
(issue imported from #M4514)