-1

我的要求是保护静态文件,使其无法从 url 访问。我将这些 css 和 js 文件放在 WEB-INF 中,但现在我无法从我的 jsp 页面访问它。我尝试了以下操作。

 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,我想要他们的解决方案。谢谢伙计们.

4

2 回答 2

1

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

下定决心。

于 2013-04-01T04:51:36.870 回答
1

正如 EJP 所说,如果您想在页面中嵌入图像,您必须通过 URL 访问它。可以这样想:即使您设法限制对图像源的访问(尽管您不能这样做),用户仍可以将其复制到屏幕外,这违反了您的假设,并且留给了客户端

但是,当然有一些解决方法可以针对您的问题实现“次优”功能。我将列出其中一些想到的:

  1. 放个水印。将您的图像放在公共文件夹中,但通过为每个合理的图像提供水印来修改内容。这样您就不会限制访问,而是降低图像曝光后欺诈行为的可能性;
  2. 修改文件名。您可以修改图像的文件名,并在服务器上(例如,在数据库中)保持“真实”名称和人工名称之间的对应关系。这样,您将显着降低安全图像大量泄漏的风险;
  3. 引入客户端限制。您可以对图像元素引入客户端限制,例如不允许出现弹出菜单、在对话框中显示完整图像以迫使用户认为图像受到保护等。当然,任何浏览器经验不足的人都可以获取内容,但基本用户不会。

我认为还有很多方法可以降低不当行为的概率,但这些方法都没有将这种概率降低到零。因此,您基本上可以访问您的图像,而您可能会通过在所有敏感图像上添加水印来使恶意工作更加困难。

于 2013-04-01T05:36:05.323 回答