-3

我想允许我的用户使用简单的方法上传 jpg/png 类型的照片.. 这对网站来说很危险.. 有人可以用这个来破解或损坏我的网站吗?我在服务器端使用 PHP。

4

1 回答 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 回答