我正在用JSP开发一个网站(一个教育系统),它有不同的用户,具有不同的可访问性和优先级(包括教师,学生,管理人员,...)现在我想添加一些文件(例如一些pdf)到这个网站,只有一组用户(例如教师)可以在登录系统后下载它们。现在我的问题是,我如何通过直接在地址栏中键入文件地址来防止其他人下载它们?换句话说,我不希望用户通过键入URL直接访问这些文件
提前感谢
发布于 2012-12-07 19:59:04
您不能通过输入文件的URI来阻止人们下载文件。这就是web的工作原理。(如果您不想让任何人下载某个内容,请不要将其放在会提供URI的地方)。
然而,听起来你的问题似乎是“阻止未授权下载文件的人下载文件”,这是一个完全不同的问题。
有两种基本的方法来解决这类问题。
仅通过脚本使文件可用
首先,不要将文件放在webroot下。然后编写一个脚本,该脚本:
内容类型检查用户想要下载的文件(例如,如果用户是authenticated
配置web服务器以执行auth/authz
具体情况取决于您使用的web服务器软件。我不知道是否有任何方法可以告诉任何支持JSP的服务器使用您正在使用的任何Java登录系统执行auth/authz,但我以前使用Apache/mod_perl执行过。
发布于 2012-12-07 20:00:31
谁说你甚至需要把你的PDF放在URL上?
您可以有一个受密码保护的页面,例如servepdf.jsp ...that会检查一个人是否已登录。
如果用户已登录,则可以向页面传递参数,如servepdf.jsp?pdf=HGJDF9798734FKJHKHJFSF (存储在数据库中的某种唯一ID ),该页面从web根目录(用户通常无法访问的位置)外的目录中获取文件。
这可能是一种选择吗?
发布于 2012-12-07 21:43:28
最好的办法是设置一个符号链接,并根据您的偏好使用.htaccess进行重定向。
https://stackoverflow.com/questions/13762408
复制相似问题