Security 远程映像嵌入:如何处理需要身份验证的映像?
我管理一个大型的活跃论坛,我们正被一个非常严重的问题困扰着。我们允许用户嵌入远程图像,就像stackoverflow处理图像(imgur)一样。但是,我们没有特定的主机集,可以使用以下代码从任何主机嵌入图像:Security 远程映像嵌入:如何处理需要身份验证的映像?,security,http,authentication,csrf,abuse,Security,Http,Authentication,Csrf,Abuse,我管理一个大型的活跃论坛,我们正被一个非常严重的问题困扰着。我们允许用户嵌入远程图像,就像stackoverflow处理图像(imgur)一样。但是,我们没有特定的主机集,可以使用以下代码从任何主机嵌入图像: [img]http://randomsource.org/image.png[/img] 这个很好,很漂亮。。。除了用户可以嵌入需要身份验证的图像外,该图像会导致出现一个弹出窗口,并且由于身份验证弹出窗口可以编辑,因此它们会显示类似“请在此处输入您的[sitename]用户名和密码”的内
[img]http://randomsource.org/image.png[/img]
这个很好,很漂亮。。。除了用户可以嵌入需要身份验证的图像外,该图像会导致出现一个弹出窗口,并且由于身份验证弹出窗口可以编辑,因此它们会显示类似“请在此处输入您的[sitename]用户名和密码”的内容,不幸的是,我们的用户一直对其着迷
对此的正确反应是什么?我一直在考虑以下事项:
问题是我从来没有在其他地方看到过这种情况,但是我们被它困扰着,我们如何防止这种情况发生 我想你基本上回答了你自己的问题。就我个人而言,我会在选项1和选项2之间进行混合:即创建一个客户端Javascript,它首先根据一组白名单主机检查图像嵌入URL。对于不在该列表中的每个嵌入URL,在检查服务器是否没有返回401状态代码的同时,执行一些操作 这样就在延迟(我们试图通过HEAD方法和域白名单最小化重复请求)和安全性之间取得了平衡。
话虽如此,如果您的用户可以接受,那么选项2是最安全的。不仅仅是密码问题。您还允许您的一些用户对其他用户执行CSRF攻击。例如,用户可以将其个人资料图像设置为
[img]http://my-active-forum.com/some-dangerous-operation?with-一些参数[/img]
最好的解决办法是-