2015-04-04 50 views
0

在我的网站上,我有能力让用户上传文件到服务器,并能够在名为“public uploads”的目录中查看所有上传的文件,用户可以在其中查看其他用户上传的所有文件。这是Apache目录页面上的“索引/上传”。这是一种文件共享中心,人们可以下载和共享其他人的文件。公共上传文件夹会成为安全问题吗?

会有任何安全问题吗? 用户可以说,上传一个恶意的PHP脚本,并从客户端执行它?

如何解决这些问题,如果它们存在?

+0

“用户可以上传恶意的PHP脚本,并从客户端执行吗?” - 你试过了吗? – Gumbo 2015-04-04 06:55:15

+0

需要更多帮助吗?如果是的话,我会更新我的答案。 – SilverlightFox 2015-05-09 10:38:03

回答

0

允许用户上传文件到公用文件夹不会对您的服务器造成风险。他们无法在服务器上运行这些文件。

它确实对下载任何这些文件的用户构成风险。这些文件可能包含病毒或恶意软件。打开这些文件对您的用户来说是一个高度安全风险。不确定你是否在为他们提供这样的功能。

1

可能这一切都取决于服务器,PHP和Apache的配置。

OWASP's Unrestricted File Upload vulnerability page对于一些风险:

  • 此漏洞的影响是很高,应该代码可以 在服务器范围内或在客户端上执行。检测到攻击者的可能性很高。流行是常见的。作为 的结果,此类漏洞的严重性为高。
  • 通过上传和执行一个可以运行命令,浏览系统文件,浏览本地资源,攻击其他服务器并攻击本地漏洞等等的web-shell,web服务器可能会受到威胁。 这也可能导致损坏。
  • 攻击者可能会将 作为网页仿冒网页。
  • 攻击者可能能够将存储的XSS放入网站 。
  • 此漏洞可能使网站 容易受到其他类型的攻击,如XSS。
  • 图片上传 可能会触发客户端上的破碎图片库中的漏洞,如果图片发布为 1:1,则会触发此漏洞(libtiff,IE过去有问题)。
  • 可以在上传的文件中嵌入脚本代码或其他代码, 如果图片以1:1发布,则会被执行。
  • 本地 可以利用实时监控工具(如防病毒软件, )的漏洞。
  • 管理员或网站管理员稍后可以在服务器上或管理员的客户端 上执行代码为 的恶意文件(Unix shell脚本,windows病毒, 反向shell)或站长。
  • 网络服务器可能被用作 的服务器,以托管恶意软件,非法软件,色情和其他对象。

See my other post对制作文件的一般准则上传安全。