访问放置在WEB-INF中的静态文件

时间:2013-04-01 04:46:44

标签: security jsp servlets

我的要求是保护静态文件,以便无法从url访问它。我将这些css和js文件放在WEB-INF中,但现在我无法从我的jsp页面访问它。我试过了。< / p>

 webpages|
     WEB-INF|
       img|
          batman.jpg
 test.jsp

现在我尝试从jsp页面访问<img src="../WEB-INF/img/batman.jpg"/>以及

<img src="img/batman.jpg"/> 

但是没有works.test.jsp放在web-inf之外并且将它放在web-inf中当前不是我的选项。我没有使用Spring Framework只是基本的jsp和servlet而我想要它们的解决方案特纳克斯。

2 个答案:

答案 0 :(得分:1)

您的要求是相互矛盾的。您正在通过URL无法访问资源,然后尝试通过URL访问它。

下定决心。

答案 1 :(得分:1)

正如EJP所说,如果你想在你的页面中嵌入一个图像,你一定会通过URL访问它。可以这样想:即使您设法限制对图像源的访问(尽管您将无法访问),用户也可以将其从屏幕上复制出来,这违反了您的假设并且保留了客户

但是当然有一些解决方法可以为您的问题实现“次优”功能。我会列出一些想到的内容:

  1. 设置水印。将图像放在公共文件夹中,但通过为每个合理的图像提供水印来修改内容。这样您就不会限制访问权限,但会降低图像曝光后欺诈行为的可能性;
  2. 修改文件名。您可以修改图像的文件名,并在服务器上保持“真实”名称和人工名称之间的对应关系,例如,在数据库中。通过这种方式,您可以显着降低安全图像质量泄漏的风险;
  3. 介绍客户端限制。您可以在图像元素上引入客户端限制,例如禁止弹出菜单的显示,在对话框中显示完整图像,迫使用户认为图像受到保护等等。当然,任何浏览器经验不足的人都可以获取内容,但基本用户不会。
  4. 我认为有更多方法可以降低不当行为的可能性,但这些方法都没有将这种可能性降低到零。因此,您基本上可以通过对图像的开放访问权限,而您可以通过在所有合理图像上添加水印来加剧恶意工作。