我正在一个用户可以发布笔记的网站上工作。我正在考虑允许用户通过提供图像的URL来发布图像(即不通过表单上传)。
但是,我已经了解到这可以用来进行某种黑客攻击,例如,用户可以粘贴不是图像的网址,因此当页面加载时,会向该网页发出GET请求网址。
我想知道:
1.可以做些什么其他恶意事情,如何阻止它们呢?
2.有一种简单的方法(只使用JavaScript)来检查网址是否是图像?
答案 0 :(得分:6)
当允许用户将任意文件上传到服务器时(这是),有很多问题需要关注。
首先,您需要确保文件是图像,并且只能作为图像访问(即不作为脚本执行)
其次,图像不能太大或对用户或服务器充当DoS
第三,您需要确保以安全的方式保存图像,以免用户覆盖敏感文件。
第四,提供来自与主要内容不同的所有上传内容。这不仅更安全,而且更快(没有cookie)
第五,确保使用ImageMagick或GD处理图像以删除图像中的任何不需要的数据。请记住,图像文件可以用作容器,而不仅仅是可见数据。
六:注意路径注入,LFI,RFI等攻击
七:不要依赖扩展来告诉你图像的文件类型。自己检查一下。
但是,我知道这可以 曾经做某种黑客攻击 例如,用户可以粘贴一个网址 不是图像,所以当页面是 加载,将进行GET请求 那个网址。
用户是否会粘贴图片链接或从自己的计算机上传文件?
- 还有什么可以用它做黑客的事情?
醇>
让我们这样说:用户将任意文件上传到您的服务器
- 有一种简单的方法(只使用JavaScript)来检查网址是否是一个 图像?
醇>
不是真的,也无济于事。您想要服务器端检查
您可以阅读的内容列表:
http://www.scriptygoddess.com/archives/2004/10/19/gifs-that-execute-a-php-script/
还有更多问题......
答案 1 :(得分:0)
如果您将未知的网址嵌入HTML格式的图片中,则此网址的获取请求将以任何方式完成,而不管图像是否真实。
问题是这是否会造成一些损害