apache - 被操纵的 URL 是否会导致 RewriteRule 内出现安全问题?

标签 apache .htaccess security mod-rewrite

我是 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/

相关文章:

java - 需要解析httpServletRequest时出现ClassCastException

.htaccess - Htaccess URL Rewrite 捕获 2 或 5 个字符(但不是 3 或 4)

regex - 使用 mod_rewrite 删除参数

security - 如何存储加密的设置?

git 写入和读取访问权限,无需成为服务器用户

apache - 在 WAMP 服务器上安装 SSL - 有时只能通过 HTTPS 连接

java - 生成空输出文件的 Map Reduce 作业

php 访问共享 smb 文件夹(用户/密码保护)

apache - 我如何htaccess将index.html重定向到index.php并将index.php重定向到/

php - 可以查看网站的 PHP 代码吗?