我接受了安全检查并且必须解决这些问题。
我通过虚拟机(Ubuntu 16.04.3)使用apache2(Apache 2.4.18)来操作主页。
安全检查说访问~/icons/
,,会得到响应状态代码 403(禁止),为了安全起见~/icons/small/
,~/javascript/
我必须将它们更改为状态代码 404(未找到)。
因此,我添加.htaccess
文件
RedirectMatch 404 /icons/
RedirectMatch 404 /icons/small/
RedirectMatch 404 /javascript/
但它不起作用......
实际上当我添加
RedirectMatch 404 /intro/
然后它起作用~/intro/
因此,我认为/icons/
和/javascript/
是不同的东西。
有人知道为什么以及如何处理吗?
/icons/
别名为/usr/share/apache2/icons/
,我改为
RedirectMatch 404 /usr/share/apache2/icons/
但它也不起作用......
答案1
首先,这本质上是保护你的安全。如果你使用任何资源,/icons/
它的存在是显而易见的,404 不会改变这一点。403 表示服务器配置正确。
如果你真的想这么做,RedirectMatch
这就是你要走的路。
RedirectMatch 404 ^/icons/$
对于 将返回 404 example.com/icons/
,但不会example.com/icons/foo.png
。
RedirectMatch 404 ^/icons/.*$
也将返回example.com/icons/foo.png
(以及图标中的任何其他文件)。
请注意,如果在浏览器的输出中直接引用了资源/icons/
,这不会以任何方式提高安全性,因为很明显/icons
存在这种情况。如果它们没有在输出中引用,而只是用作脚本的输入,则应考虑将它们移出 webroot。