0

假设您有一张图像 I,您只希望登录到您网站的用户能够看到它。保护我免受未登录用户的最佳方法是什么。一种可能的方法是创建一个页面,您可以在其中通过 get 或 post 参数传递图像名称,它会通过从磁盘读取图像并根据用户是否登录到会话中写回响应来返回图像。是否/是否有更好的方法来更有效地实现资源安全?

4

3 回答 3

2

使用你的会话。当用户登录时,您将图像加载到您的页面。

于 2013-01-12T20:42:05.923 回答
1

有几种简单的方法可以使用servlet 过滤器或只是为您的资源提供服务的普通 servlet。

就我个人而言,我会检查主体是否已设置,那么您就知道用户已通过身份验证

    Principal principal = request.getUserPrincipal();
    if (principal == null) {
        return null;
    }

如果没有您知道用户未通过身份验证的主体,您可以返回 403 状态、空白图像或您喜欢的任何内容。

于 2013-01-12T20:49:44.533 回答
0

如果您想保护图像文件的 url,请在代码中设置一些有关其访问权限的规则。我认为更好的选择是使用一些安全框架。有一些安全平台比如Spring Security提供了非常全面的基于用户认证状态、url-role 组合、acl 等的访问规则。

于 2013-01-13T16:23:51.353 回答