Javascript 清理提交的URL
我有一个webforms应用程序,允许用户向站点提交图像的URL。 这些图像然后由我自己在管理控制台中进行筛选,然后在网站上提供给所有人查看。他们不必提交图像,它可以是指向包含图像的页面的链接 默认情况下,Webforms可以防止恶意输入,但只有在将javascript注入输入框时才可以。因此,它会立即接收到类似Javascript 清理提交的URL,javascript,webforms,xss,Javascript,Webforms,Xss,我有一个webforms应用程序,允许用户向站点提交图像的URL。 这些图像然后由我自己在管理控制台中进行筛选,然后在网站上提供给所有人查看。他们不必提交图像,它可以是指向包含图像的页面的链接 默认情况下,Webforms可以防止恶意输入,但只有在将javascript注入输入框时才可以。因此,它会立即接收到类似alert(“讨厌的代码”)但不是http://www.nastysite.com/nastyScript.js因为这只是一个url,“可能”是一个有效的图像 在管理控制台中,我在dat
alert(“讨厌的代码”)代码>但不是http://www.nastysite.com/nastyScript.js
因为这只是一个url,“可能”是一个有效的图像
在管理控制台中,我在datalist控件中列出所有提交,并使用asp:Image控件显示图像以供检查
如果用户提交恶意脚本,在呈现管理控制台页面时,是否可以在我的浏览器中执行此操作?我自己也尝试过这样做,编写了一个脚本,该脚本钩住加载的文档以显示警报,但什么也没发生
我想我应该显示提交的URL以及呈现它,这样我就可以检查任何外观奇怪的提交
另一件让我担心的事情是,如果我批准了来自另一个站点的图像,他们以后会用一个讨厌的脚本替换掉有效的图像吗?如果它在img
标签中,我会假设它不是
我是否忽略了任何潜在的弱点?任何从其他站点提取的图像都应该保存在本地服务器上,就像用户直接上传一样。这不仅可以防止用户在您批准图像后更改图像,而且还可以防止在您批准图像后,如果父网站将其删除,该图像将不会死掉
至于清理传入文件——是否可以在上传时检查传入文件,获取其内容类型,甚至是扩展名,并根据良好扩展名列表对其进行验证。例如,用户只能提交png、jpg和gif图像,也许?当web浏览器将资源加载为IMG标记的SRC时,它会将响应解析为图像文件。如果有人向JavaScript文件提交URL,结果只会是一个损坏/丢失的图像
尽管如此,外部链接照片仍然存在安全问题:
正如您已经说过的,有人可以在事后将图像交换到pr0n
他们将能够跟踪看到图像的所有网站访问者的IP地址、时间戳和浏览器身份。根据访问者的浏览器设置,他们还可以设置cookie,以便在用户访问您的站点和其他允许类似链接的站点时跟踪用户。当然,这就是几乎所有纯图像横幅广告服务的工作原理
如果某个浏览器容易受到格式错误的图像文件的影响,他们可以将图像交换到这样的文件中,这样可能会导致用户浏览器崩溃或锁定。在极端情况下,这可能会让他们破坏浏览器的安全性。一般来说,浏览器对格式不正确的图像攻击往往比较强硬,但有可能发现另一种攻击
从理论上讲,他们可以将图像文件更改为302重定向响应到其他URL,而这些URL可能根本不是图像。访问者只会看到一个损坏的图像,但如果你有足够的流量,他们可以使用这些重定向,例如,在另一个网站上执行DDoS。(我把它归为“偏执狂”一类。)
该网站已经允许上传,我正在努力为外部图像找到一种最佳方法。我认为这将是一个上传外部图像的组合,但随后指出它的来源。