假设您有一张图片,我只希望您登录网站的用户能够看到。保护我免受未登录用户侵害的最佳方法是什么?一种可能的方法是使用一个页面通过get或post参数传递图像名称,它将通过从磁盘读取图像并根据用户是否登录会话而在响应中写回来返回图像。是否有更好的方法来更有效地实现资源安全?
答案 0 :(得分:2)
使用你的会话。当用户登录时,您将图像加载到页面。
答案 1 :(得分:1)
使用servlet filters或者只是为您的资源提供服务的普通servlet,有几种简单的方法可以实现。
就个人而言,我会检查是否已经设置了主体,那么你知道用户是否已经过身份验证
Principal principal = request.getUserPrincipal();
if (principal == null) {
return null;
}
如果没有委托人知道用户未经过身份验证,您可以返回403状态,空白图片或任何您喜欢的内容。
答案 2 :(得分:0)
如果要保护图像文件的URL,请在代码中设置有关其访问权限的规则。我认为更好的选择是使用一些安全框架。有些安全平台如Spring Security提供了基于用户身份验证状态,url-role组合和acl等的非常全面的访问规则。