【问题标题】:Password Protected File Upload密码保护文件上传
【发布时间】:2017-08-18 18:43:24
【问题描述】:

我制作了一个简单的 HTML、JS 和 PHP 应用程序来在我的手机和计算机之间传输文件。我想将它托管在我的个人服务器上,但我担心恶意互联网浏览器可能会访问它并上传有害文件。

我已阅读various ways of protecting file uploads,其中涉及防止上传和/或执行哪些文件。我想保护哪些用户可以上传文件,并信任那些用户(即我)上传安全文件。

我在 HTML 上传表单中输入了密码,在 PHP 上传脚本中,在允许文件上传之前检查密码是否等于设定值。

如果密码足够,这对恶意互联网浏览器是否足够安全?我是否应该担心提供正确密码时绕过的任何漏洞?

【问题讨论】:

  • 当然,只要您正确验证它就可能会起作用。通常,这可以通过在您的系统中拥有用户帐户并将其限制为登录用户来解决,但这也可以作为一种解决方案。

标签: php file-upload


【解决方案1】:

简短回答:与 https 一起使用,是的。

长答案:使用 https 和某种类型的用户身份验证可能会更好。这是更好的用户体验,但鉴于您的用例,我不确定这是必要的。如果没有 https 和纯密码字段,有人可能会嗅到您的纯文本密码传输。然后机器人可以解决其余的问题或被教导。

【讨论】:

  • AFAIK 即使密码错误,上传的文件仍会暂时访问您的服务器。用户身份验证也可以解决这个问题,防止他们访问表单或完成对您的邮箱的 POST 请求。
  • 任何文件都会临时访问服务器。好点子。这些文件只是暂时在服务器上会很危险吗?我的印象是它们只有在执行时才是危险的,例如当用户在上传文件后浏览到文件 url 时。
  • 除非你做了一些非常愚蠢的事情,比如构建一个脚本来爬取你的/tmp 目录并执行一些东西,这是正确的,它们在那里是安全的。不过,如果考虑到这一点,您仍会使用带宽。
  • 我不精通缓冲区溢出,但我的理解是通过 POST 请求加载它们然后保存到磁盘(然后在失败请求结束时删除)存在缓冲区溢出攻击的可能性。想法?
猜你喜欢
  • 1970-01-01
  • 2018-05-15
  • 2011-01-09
  • 2012-09-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-12-16
  • 1970-01-01
相关资源
最近更新 更多