跨站点脚本讲解:XSS***如何实现?
跨站点脚本(XSS)允许***者通过利用因特网服务器的漏洞来发送恶意代码到其他用户。***者利用跨站点脚本(XSS)***向那些看似可信任的链接中注入恶意代码。当用户点击了链接后,内嵌的程序将被提交并且会在用户的电脑上执行,这会使***获取访问权限并偷走敏感数据。***者使用XSS来***受害者机器上的漏洞并且传输恶意代码而不是***系统本身。
通过用户输入的数据返回错误消息的Web表格,***者可以修改控制Web页面的HTML代码。***能够在垃圾信息中的链接里插入代码或者使用欺诈邮件来诱使用户对其身份产生信任。
例如***者可以发送带有URL的邮件给受害人,这个URL指向一个Web站点并且提供浏览器脚本作为输入;或者在博客或诸如Facebook、Twitter这样的社交网站上发布恶意URL链接。当用户点击这个链接时,该恶意站点以及脚本将会在其浏览器上运行。浏览器不知道脚本是恶意的并将盲目地运行这个程序,这转而允许***者的浏览器脚本使用站点的功能来窃取cookie或者冒充合法的用户来完成交易。
如何保护Web站点免受跨站点脚本***?
一些通常的跨站点脚本预防的最佳实践包括在部署前测试应用代码,并且以快速、简明的方式修补缺陷和漏洞。Web应用开发人员应该过滤用户的输入来移除可能的恶意字符和浏览器脚本,并且植入用户输入过滤代码来移除恶意字符。通常管理员也可以配置浏览器只接受来自信任站点的脚本或者关闭浏览器的脚本功能,尽管这样做可能导致使用Web站点的功能受限。
随着时代的进步***们变得更加先进,使用收集的工具集来加快漏洞***进程。这意味着仅仅部署这些通常的XSS预防实践是不够的,保护和预防过程必须从底层开始并持续提升。预防过程必须在开发阶段开始,建立在一个牢靠、安全的开发生命周期方法论之上的Web应用在发布版本中不太可能暴露出漏洞。这样以来,不仅提升了安全性,也改善了可用性而且缩减了维护的总体费用,因为在现场环境中修补问题比在开发阶段会花费更多。
威胁建模在XSS预防中也是重要的一个方面,应该纳入到每个组织的安全开发生命周期当中。威胁建模评估和辨识在开发阶段中应用程序面临的所有的风险,来帮助Web开发人员更好地理解需要什么样的保护以及***一旦得逞将对组织产生怎样的影响。要辨识一个特定应用的威胁级别,考虑它的资产以及它访问的敏感信息量是十分重要的。这个威胁建模过程将确保在应用的设计和开发过程中战略性地融合了安全因素,并且增强了Web开发人员的安全意识。
对于大型项目的Web开发人员来说,源代码扫描工具和Web应用漏洞扫描器是提高效率和减少工作量的通常选择。Web漏洞扫描器能够辨识常见的缺陷和漏洞——SQL注入、跨站点脚本和缓冲区溢出,但是定制的应用代码仍然必须进行人工审查。