MichaelCobb是XSS的一种形式,这可能会导致一个攻击

优采云 发布时间: 2021-08-03 04:18

  MichaelCobb是XSS的一种形式,这可能会导致一个攻击

  Michael Cobb:从1990年*敏*感*词*始,攻击者就开始利用XSS漏洞,最重要的网站(如谷歌、雅虎和Facebook)都在一定程度上受到了XSS漏洞的影响。与大多数应用层攻击(如 SQL 注入)不同,基于 XSS 的攻击将攻击应用程序的用户,而不是应用程序或服务器。这些攻击的工作原理是将代码(通常如 JavaScript 客户端脚本)注入到 Web 应用程序的输出中。大多数网站 有很多注入点,包括搜索域、cookie 和表单。这些恶意脚本虽然不能直接感染服务器端信息,但仍然可以破坏网站的安全性。通过使用文档对象模型操作更改表值、更改网页外观或切换表操作将提交的数据发布到攻击者的网站,攻击者可以窃取数据、控制用户会话、运行恶意代码或将其用作网络钓鱼欺诈的一部分。

  

  XSSI 是 XSS 的一种形式,它利用浏览器不会阻止网页加载通常托管在其他域和服务器上的图像和文本等资源这一事实。例如,脚本可能提供攻击者帮助创建特定页面所需的功能——很多网站 包括托管在#jquery 的JavaScript 库jQuery。然而,当用户访问另一个域名时,这种收录可以用于从一个域名读取用户数据。例如,如果ABC银行有一个脚本可以读取用户的私人账户信息,攻击者就可以将该脚本收录在自己的恶意网站中。当农行的客户访问攻击者的网站时,攻击者可以从农行的服务器中提取用户信息。

  开发人员可以部署多种措施来防御 XSSI 攻击。一种方法是为用户提供唯一且不可预测的授权令牌,需要在服务器响应任何请求之前将其作为额外的 HTTP 参数发回。该脚本应该只响应 POST 请求。这可以防止授权令牌在 GET 请求中作为 URL 参数公开。同时,这可以防止通过脚本标签加载脚本。浏览器可能会重新发出GET请求,这可能会导致一个操作被执行多次,而重新发出的POST请求需要用户同意。

  在处理 JSON 请求时,在响应中添加不可执行的前缀,例如“\n”,以确保脚本不可执行。运行在同一个域名上的脚本可以读取响应内容和删除前缀,但运行在其他域名上的脚本不能。此外,开发人员还应避免使用 JSONP(带填充的 JSON)从不同域加载机密数据,因为这将允许钓鱼 网站 采集数据。同时,发送响应头“X-Content-Type-Options: nosniff”也有助于保护 IE 和 Google Chrome 用户免受 XSSI 攻击。

  为了应对XSS攻击,可以在HTTP Content-Type响应头中指定CHARSET或者HTML代码中meta标签的http-equiv属性,这样浏览器就不会解释特殊字符编码其他字符集。对于使用 ASP.NET 开发网站 的开发人员,Microsoft Anti-Cross Site Scripting Library 可以帮助保护 Web 应用程序免受跨站点脚本漏洞的侵害。

  有很多开源漏洞扫描工具可供开发者测试他们的代码是否容易受到 XSS 攻击,例如 Vega、Wapiti、OWASP 的 Zed Attack Proxy 和 Skipfish。公司应定期扫描网站。同时,在底层代码发生变化或依赖第三方库函数集成到各种网页中时,也要扫描网站。

  看完这篇文章,大家应该知道两者的区别了吧。

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线