找到CMS中的所有GET变量

时间:2013-10-18 08:11:18

标签: php .htaccess parameters get file-search

我想将所有不存在的GET参数(如www.example.com?afasfnk=)重写为404页面。 所以我需要的是获取所有已存在的GET参数并将它们包含在我的.htaccess中,如下所示:

RewriteCond %{QUERY_STRING} (^|&)=(.*)
RewriteCond %{QUERY_STRING} !(^|&)=(aget|bget)(&|$)
RewriteRule ^(.*) - [F]

问题是如何最有效地找到它们。 F.E.在我的cms我有

$filedir = $_GET['a'];

我需要提取这个“a”值等等。

2 个答案:

答案 0 :(得分:2)

没有自动方式。如果您在Windows操作系统中拥有源PHP,则应安装UltraEdit或类似内容,并在所有源文件中搜索“ $ _ GET [”字符串,并手动注册所有变量名称。最后你把不受欢迎的词放在你的apache禁词列表中。

在Unix OS中,您可以在DocumentRoot目录下执行:

grep -R '$_GET\[' .

另一种可能性是在apache访问日志文件中搜索这些单词,例如

vi access.example.com.log

答案 1 :(得分:0)

您应该在应用程序中实现此类重定向,而不是在服务器中。 没有自动方法来更新.htaccess中这样的已使用参数列表,并且您无限制地限制应用程序中请求参数的使用。

另一方面,如果在应用程序中无法评估匹配的请求参数,您可以直接显示404页面或重定向到一个页面(see: header())。