微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

PHP / MySQL安全问题

我在000webhost上有一个PHP / MysqL网站(http://www.boisvert.me.uk;但目前还没有审查),我担心它的安全性.我想做的事情会使任何网站容易受到攻击;这是PHP相当于给儿童提供锋利的剪刀.我有各种各样的想法,以尽量减少网站的漏洞,但欢迎更多的建议.

特别是,有两个脚本:

>上传脚本.其目的是允许注册站点用户上载某些XML文件(教程).显然,要做到这一点,网站上的文件夹可以为访问者提供写访问权限.我不喜欢这样,但我没有看到方法,我可以添加检查脚本(类型,大小),以确保上传文件仅限于XML和一些图像.还有其他方面我可以改进吗?
>脚本2是PHP的解释器 – 用户可以在表单中输入PHP并执行(不保存).我希望允许用户尝试数据库访问,因此粗略的字符串替换确保我不需要泄露MysqL访问信息.但攻击者可以使用此解释器来访问文件区域并上传不受欢迎的材料.我的解决方案是将解释器放在一个单独的域中,没有文件可以上传.

任何改善这方面的建议都是值得欢迎的,“不要这样做”.我知道这很危险.所以过马路.谢谢你的帮助.

解决方法:

先前的答案涵盖了第一点(可能在本网站的其他地方多次)

对于第二点,如果你觉得你必须要有这个,我会提出一些建议.您可以编译自己的PHP二进制文件,排除您不希望用户需要的所有选项(可能省略除MysqL之外的所有选项).然后,您应该创建一个PHP.ini文件,该文件禁用任何有潜在危险的函数(对此使用disable_functions配置选项 – 请参阅其他答案).将内存使用和cpu时间限制为合理的数字(对于您希望允许用户运行的简单脚本).现在我们应该能够使用像system(“chroot / path / to / secure / dir ./PHP tempfile.PHP”);这样的东西在chrooted环境中运行所有这些. / path / to / secure / dir应该是您将用户PHP脚本写入临时文件的目录.它应该包含PHP可执行文件和安全的PHP.ini文件.这些文件和安全目录应该由运行脚本的用户(特别是PHP可执行文件PHP.ini文件)以外的用户拥有,并且不可由任何人编写.安全目录应位于Web根目录之外.

现在,我不会假装我已经想到了一切,但希望这些想法可以成为您安全环境的基础.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐