我正在使用JBoss 5使用Java EE开发一个Web项目。我的WebContent文件夹有一个.css文件,由所有JSP使用(放在WebContent的其他子文件夹中)。我想禁止直接访问.css文件,但仍然可以在我的JSP中使用它。我试过
<security-constraint>
<web-resource-collection>
<web-resource-name>Direct access to .css forbidden</web-resource-name>
<url-pattern>/Style.css</url-pattern>
</web-resource-collection>
<auth-constraint/>
</security-constraint>
在web.xml描述符中,但这样JSP无法使用它。
有什么想法吗?
答案 0 :(得分:5)
任何试图隐藏最终用户在页面上使用的CSS都是毫无意义的。
您可以检查HTTP_REFERER
标题,如果它与嵌入样式表的页面不匹配则不显示CSS。
但即便如此,在DOM检查器中可以看到CSS的现代浏览器中也是如此,并且可以使用正确的引用集进行单击。
浏览器需要查看CSS才能呈现它,因此没有任何保护措施可以提供帮助。您可以做的最好(但它需要您更改HTML)会混淆CSS,因此不再有可读的元素名称(例如.xweudhd
而不是.top_navigation
)。
但我会放弃这个想法。有更多有效的方法可以花一点时间。