允许用户通过URL上传图像时应该注意什么?

won*_*ng2 2 javascript security get

我正在一个用户可以发布笔记的网站上工作.我正在考虑允许用户通过提供图像的URL来发布图像(即不通过表单上传).

但是,我已经了解到这可以用来做某种黑客攻击,例如,用户可以粘贴不是图像的网址,因此当页面加载时,将对该网址发出GET请求.
我想知道:
1.可以做些什么其他恶意事情,如何阻止它们?
2.有一种简单的方法(只使用JavaScript)来检查网址是否是图像?

Goo*_*son 6

当允许用户将任意文件上传到服务器时(这是),有很多问题需要关注.

首先,您需要确保文件是图像,并且只能作为图像访问(即不作为脚本执行)

其次,图像不能太大或对用户或服务器充当DoS

第三,您需要确保以安全的方式保存图像,以便用户无法覆盖敏感文件.

第四,提供来自与主要内容不同的所有上传内容.这不仅更安全,而且更快(没有cookie)

第五,确保使用ImageMagick或GD处理图像以删除图像中的任何不需要的数据.请记住,图像文件可以用作容器,而不仅仅是可见数据.

六:注意路径注入,LFI,RFI等攻击

七:不要依赖扩展来告诉你图像是什么类型的文件.自己检查一下.

但是,我已经了解到这可以用来做某种黑客攻击,例如,用户可以粘贴不是图像的网址,因此当页面加载时,将对该网址发出GET请求.

用户是否会粘贴图像链接或从自己的计算机上传文件?

  1. 还有什么其他黑客可以做到这一点?

让我们这样说:用户将任意文件上传到您的服务器

  1. 是否有一种简单的方法(只使用JavaScript)来检查网址是否是图像?

不是真的,也无济于事.你想做服务器端检查

你要阅读的东西清单:

http://www.scriptygoddess.com/archives/2004/10/19/gifs-that-execute-a-php-script/

还有更多问题......