【发布时间】:2013-11-30 06:51:46
【问题描述】:
我在 000webhost 上有一个 PHP/MySQL 网站(http://www.boisvert.me.uk;但目前正在审查中),我担心它的安全性。我正在尝试做的事情会使任何网站都容易受到攻击;它相当于给孩子们提供锋利的剪刀的PHP。我有各种想法可以最大限度地减少网站的漏洞,但欢迎提供更多建议。
特别是有两个脚本:
上传脚本。其目的是允许注册站点用户上传某些 XML 文件(教程)。显然,要做到这一点,网站上的文件夹会为访问者提供写入权限。我不喜欢这样,但我没有办法解决,我可以向脚本添加检查(类型、大小),以确保上传的文件仅限于 XML 和一些图像。还有其他可以改进的地方吗?
Script 2 是 PHP 的解释器 - 用户可以在表单中输入 PHP,它会执行(无需保存)。我希望允许用户尝试数据库访问,因此粗略的字符串替换确保我不需要泄露 MySQL 访问信息。但是攻击者可以使用这个解释器来访问文件区域并上传不受欢迎的材料。我的解决方案是将解释器放在一个单独的域中,不能上传任何文件。
欢迎提出任何改进这一点的建议,除非“不要这样做”。我知道这很危险。过马路也是如此。感谢您的帮助。
【问题讨论】:
-
无意冒犯,但第二点听起来更像是“穿越高速公路” :) 如果它是可公开访问的,那么您将运行该服务器的服务器置于极大的危险之中。单独的 域 不会保护您,因为 PHP 的用户可能有权访问服务器上的其他站点。参见例如Exploitable PHP functions
-
这适合什么样的目标受众?这是针对只有几十名学生的小型大学课程,还是完全公共服务?
-
我希望它是公开的,基于下面的答案它不会。