RewriteRule.htaccess允许所有字符
对于RewriteRule.htaccess允许所有字符,.htaccess,.htaccess,对于.htaccess,我有一个重写规则,我想允许URL中的所有字符 我通过PHP过滤掉任何不好的字符 我目前拥有的代码是 RewriteRule ^([a-zA-Z0-9\-]+)\.php$ file.php?key=$1 [L] 我试着把它改成 RewriteRule ^(.*)\.php$ file.php?key=$1 [L] 让一切都过去,但它不起作用。我不想在.htaccess-only PHP上过滤任何内容。即使我在PHP中过滤掉所有字符,也允许它们存在安全风险吗 即使我在P
.htaccess
,我有一个重写规则
,我想允许URL中的所有字符
我通过PHP过滤掉任何不好的字符
我目前拥有的代码是
RewriteRule ^([a-zA-Z0-9\-]+)\.php$ file.php?key=$1 [L]
我试着把它改成
RewriteRule ^(.*)\.php$ file.php?key=$1 [L]
让一切都过去,但它不起作用。我不想在.htaccess-only PHP上过滤任何内容。即使我在PHP中过滤掉所有字符,也允许它们存在安全风险吗
即使我在PHP中过滤掉所有字符,也允许它们存在安全风险吗
是的,有很多问题,请看这个问题:
这取决于您的应用程序,但.htaccess可用作安全机制。您可能希望在重定向文件之前检查文件是否存在,以免陷入无限循环:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)\.php$ file.php?key=$1 [L]
第一行验证文件是否存在,如果不存在则重定向
第二行将重定向到,anything.php
到file.php?key=anything
否则file.php
将自己重定向到file.php
是的,只要在使用之前用PHP代码对信息进行适当的清理,允许URL上的任何内容都没有问题。服务器日志怎么说?你的身份是什么
404-找不到
?@OskarHane它工作正常,我只是不想。htaccess过滤我的变量,我只想用已经实现的php实现。my file.php代码不受SQL注入的影响,php filters key=$1用于任何html或有趣的字符。我想我做得对,但后来意识到key=$1只用于文件名,如何添加通过.htaccess传递到php的多个变量?@AbbyE您的意思是如果您有类似于anything.php?var1=something
?如果是这样,您可以使用QSA(查询字符串附加)标志来保留变量,[QSA,L]