Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/379.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 清理提交的URL_Javascript_Webforms_Xss - Fatal编程技术网

Javascript 清理提交的URL

Javascript 清理提交的URL,javascript,webforms,xss,Javascript,Webforms,Xss,我有一个webforms应用程序,允许用户向站点提交图像的URL。 这些图像然后由我自己在管理控制台中进行筛选,然后在网站上提供给所有人查看。他们不必提交图像,它可以是指向包含图像的页面的链接 默认情况下,Webforms可以防止恶意输入,但只有在将javascript注入输入框时才可以。因此,它会立即接收到类似alert(“讨厌的代码”)但不是http://www.nastysite.com/nastyScript.js因为这只是一个url,“可能”是一个有效的图像 在管理控制台中,我在dat

我有一个webforms应用程序,允许用户向站点提交图像的URL。 这些图像然后由我自己在管理控制台中进行筛选,然后在网站上提供给所有人查看。他们不必提交图像,它可以是指向包含图像的页面的链接

默认情况下,Webforms可以防止恶意输入,但只有在将javascript注入输入框时才可以。因此,它会立即接收到类似
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。(我把它归为“偏执狂”一类。)


  • 该网站已经允许上传,我正在努力为外部图像找到一种最佳方法。我认为这将是一个上传外部图像的组合,但随后指出它的来源。