我最近注意到有些人会不小心在 URL 末尾使用特殊字符来链接到网站。例如:.html%C2%A0
有些人还会尝试注入转义序列,例如 \x18\xbaL\x03@\xea$\x03HZm(已知的 Apache 漏洞)来破解你的 Apache 服务器
所以,我的问题是,禁止 .html 后面的任何字符并简单地重写它不是很明智吗?这是否会使向 URL 中注入任何内容变得更加困难?
我还没有测试过这个规则,但它最终看起来会类似于此:
RewriteRule (.*)\.html.+ /$1\.html [R=301,L]
谢谢奥利弗
答案1
这实际上不会提供额外的安全性 - 并且如果它确实导致任何问题(不太可能,但如果我使用名为“mysitefiles.htmldocuments”的目录会怎样?),它只会增加调试的复杂性。
为坏链接设置一个有用的 404 页面,如果有人要向您抛出一个已有 8 年历史的字符注入漏洞,他们可以很容易地对不以 HTML 结尾的 URL 执行此操作,或者将其粘贴在 URL 的较早位置。