我想允许我的用户使用简单的方法上传 jpg/png 类型的照片.. 这对网站来说很危险.. 有人可以用这个来破解或损坏我的网站吗?我在服务器端使用 PHP。
问问题
248 次
1 回答
5
如果你不知道自己在做什么,那是很危险的。
如果您不检查它是否真的是图像,那么潜在的黑客可能会上传一个完全正常工作的C99脚本,并彻底破坏您的网站,甚至您的服务器。
基本上,您需要(至少)是使用getimagesize来检查上传的文件是否真的是图像。
在stackoverflow上有很多关于这个的问题,这里是快速而肮脏的:
if (!getimagesize($_FILES['your_image']['tmp_name'])){
die('Not an image');
}
来自@deceze 的一些极好的建议。
如果你相信用户的输入,你最终会后悔的。Mime 类型很容易伪造,我什至懒得说文件扩展名。
一些基本规则:
- 永远不要相信用户输入
- 始终清理您的输入
- 如果你真的需要允许用户上传图片,已经有脚本可以做到这一点,这比你能完成的要安全得多。
如果你真的想试试运气,看在上帝的份上,至少在你的上传目录和其中的所有子目录中禁用 php 。
您可以通过.htaccess
在包含此文件的上传目录中添加一个文件来实现。
php_flag engine off
于 2013-10-23T16:36:24.247 回答