首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何防止用户使用网站中的文件地址直接访问该文件

如何防止用户使用网站中的文件地址直接访问该文件
EN

Stack Overflow用户
提问于 2012-12-07 19:43:11
回答 3查看 562关注 0票数 1

我正在用JSP开发一个网站(一个教育系统),它有不同的用户,具有不同的可访问性和优先级(包括教师,学生,管理人员,...)现在我想添加一些文件(例如一些pdf)到这个网站,只有一组用户(例如教师)可以在登录系统后下载它们。现在我的问题是,我如何通过直接在地址栏中键入文件地址来防止其他人下载它们?换句话说,我不希望用户通过键入URL直接访问这些文件

提前感谢

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-12-07 19:59:04

您不能通过输入文件的URI来阻止人们下载文件。这就是web的工作原理。(如果您不想让任何人下载某个内容,请不要将其放在会提供URI的地方)。

然而,听起来你的问题似乎是“阻止未授权下载文件的人下载文件”,这是一个完全不同的问题。

有两种基本的方法来解决这类问题。

仅通过脚本使文件可用

首先,不要将文件放在webroot下。然后编写一个脚本,该脚本:

内容类型检查用户想要下载的文件(例如,如果用户是authenticated

  • Checks,则通过查询字符串parameter)

  • Checks,如果用户被授权下载file

  • Identifies,则
  1. 检查文件类型并发送合适的内容类型报头
  2. 读取文件的内容并将其输出为

配置web服务器以执行auth/authz

具体情况取决于您使用的web服务器软件。我不知道是否有任何方法可以告诉任何支持JSP的服务器使用您正在使用的任何Java登录系统执行auth/authz,但我以前使用Apache/mod_perl执行过。

票数 2
EN

Stack Overflow用户

发布于 2012-12-07 20:00:31

谁说你甚至需要把你的PDF放在URL上?

您可以有一个受密码保护的页面,例如servepdf.jsp ...that会检查一个人是否已登录。

如果用户已登录,则可以向页面传递参数,如servepdf.jsp?pdf=HGJDF9798734FKJHKHJFSF (存储在数据库中的某种唯一ID ),该页面从web根目录(用户通常无法访问的位置)外的目录中获取文件。

这可能是一种选择吗?

票数 1
EN

Stack Overflow用户

发布于 2012-12-07 21:43:28

最好的办法是设置一个符号链接,并根据您的偏好使用.htaccess进行重定向。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13762408

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档