我是 Apache 的新手。
我有以下.htaccess
文件
Options -Indexes
RewriteBase /
RewriteEngine on
RewriteRule ^([a-zA-Z0-9_]+)*$ redirect.php?uniqueID=$1 [QSA,L]
这样就可以访问:mySite.com/242skl2j
加载页面:mySite.com/redirect.php?uniqueID=242skl2j
但是假设我的 Apache 代码中没有这个正则表达式 [a-zA-Z0-9_]
并且我只允许使用所有字符....有人可以直接加载 Apache 代码吗通过导航到类似 mySite.com/2%20[R]%20reWriteRule%20^([a-zA-Z0-9_]+)*$%20anything.html@www.aDifferentSite.com/的内容来进入此内容索引.html
类似于 SQL 注入(inject),但适用于 Apache? (我什至不确定 %20
会在我的 apache 代码中转换为空格,但可能有一些东西可以?)
或者这并不是真正的问题,因为他们不能对网站造成任何真正的“伤害”,只能对他们自己独特的导航造成任何真正的“伤害”?
最佳答案
据我所知,Apache 中没有已知的安全漏洞可以让类似的事情溜走。 URL 中的任何内容在 Apache 引擎中使用之前都会被转义。
此外,与中央服务器配置中的配置不同,.htaccess
中定义的重写和重定向无法“突破”当前的 Web 根*,因此即使是意外写错(或已利用)RewriteRule
无法用于获取不应公开提供的内容。
* = 请参阅 the docs 中对 RewriteRule
行为的描述。 .
关于apache - 被操纵的 URL 是否会导致 RewriteRule 内出现安全问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20672445/