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

时间:2012-12-07 11:43:11

标签: html jsp web download

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

直接访问这些文件

提前致谢

3 个答案:

答案 0 :(得分:2)

您无法通过输入其URI来阻止人们下载文件。这就是网络的运作方式。 (如果您不希望任何人下载某些内容,请不要将其放在可以为其提供URI的位置。)

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

解决此类问题有两种基本方法。

仅通过脚本

使文件可用

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

  1. 检查用户想要下载的文件(例如,通过查询字符串参数)
  2. 检查用户是否经过身份验证
  3. 检查用户是否有权下载文件
  4. 标识文件类型并发送合适的Content-Type标头
  5. 读取文件的内容并输出
  6. 配置您的Web服务器以执行auth / authz

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

答案 1 :(得分:1)

谁说您甚至需要在网址上提供PDF?

你可以拥有一个受密码保护的页面,例如servepdf.jsp ...,检查一下是否有人登录。

如果他们已登录,您可以将参数传递给页面,例如servepdf.jsp?pdf=HGJDF9798734FKJHKHJFSF(存储在数据库中的某种唯一ID),该文件从目录获取文件> Web根目录(用户通常无法访问)。

这可能是一种选择吗?

答案 2 :(得分:0)

您最好的选择是设置符号链接并根据您的偏好使用.htaccess进行重定向。