禁止直接访问.css文件

时间:2011-12-31 01:05:28

标签: css java-ee web.xml jboss5.x

我正在使用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无法使用它。

有什么想法吗?

1 个答案:

答案 0 :(得分:5)

任何试图隐藏最终用户在页面上使用的CSS都是毫无意义的。

您可以检查HTTP_REFERER标题,如果它与嵌入样式表的页面不匹配则不显示CSS。

但即便如此,在DOM检查器中可以看到CSS的现代浏览器中也是如此,并且可以使用正确的引用集进行单击。

浏览器需要查看CSS才能呈现它,因此没有任何保护措施可以提供帮助。您可以做的最好(但它需要您更改HTML)会混淆CSS,因此不再有可读的元素名称(例如.xweudhd而不是.top_navigation)。

但我会放弃这个想法。有更多有效的方法可以花一点时间。