动态网站跨站点脚本攻击

文章来源:厦门网站建设     发布日期:2020-11-16  打印字号:

动态站点会受到一一种名为" 跨站点脚本攻击”(Cross Site Scripting )的攻击。安全专家们通常将其缩写成XSS,原本应当是CSS,但为了和层叠样式表( Cascading styeSheet, CSS ) 有所区分,故称XSS。

XSS攻击这个漏洞发生在网站应用程序接收用户的输入数据却没有做必要的编码。如果对用户输入的数据没有进行正确的编码和过滤,这个被注入恶意脚本的数据将被发送给其他用户。对浏览器来说,它没有办法知道一个脚本的合法性。浏览器会正常地把这个脚本当成普通脚本执行,这个时候恶意的操作就不可避免地发生了。大部分的时候,XSS是用来窃取Cokies,或窃取有效用户的会话令牌session,以此进行会话劫持。

XSS攻击分成两类,一类是 来自内部的攻击,主要是指利用程序自身的漏洞,构造跨站语句,DVBBS的showerrorasp存在的跨站漏洞。另一类则是来自外部的攻击, 主要是指自己构造xSS跨站漏洞网页或者寻找非目标机以外的有跨站漏洞的网页。如果发现某个网站存在跨站漏洞,如Q-Zone个 人空间名称跨站漏洞,黑客就可以通过编制一些窃取网页浏览用户的ookie内容代码,来获取Cookie中的各种论坛和网站的账号和密码。

反射性XSS,也就是被动的非持久性XSS。诱骗用户点击URL带攻击代码的链接,服务器解析后响应,在返回的响应内容中隐藏和嵌入攻击者的XSS代码,被浏览器执行,从而攻击用户。 URL可能被用户怀疑,但是可以通过短网址服务将之缩短,从而隐藏自己。

也叫存储型XSS——主动提交恶意数据到服务器,攻击者在数据中嵌入代码,这样当其他用户请求后,服务器从数据库中查询数据并发给用户,用户浏览此类页面时就可能受到攻击。可以描述为:恶意用户的HTML或JS输入服务器->进入数据库->服务器响应时查询数据库->用户浏览器。

基于DOM的XSS,通过对具体DOM代码进行分析,根据实际情况构造dom节点进行XSS跨站脚本攻击。

注:domxss取决于输出位置,并不取决于输出环境,因此domxss既有可能是反射型的,也有可能是存储型的。dom-based与非dom-based,反射和存储是两个不同的分类标准。

记住一句至理名言——“所有用户输入都是不可信的。”(注意: 攻击代码不一定在

中)

将重要的cookie标记为httponly,这样的话当浏览器向Web服务器发起请求的时就会带上cookie字段,但是在js脚本中却不能访问这个cookie,这样就避免了XSS攻击利用JavaScript的document.cookie获取cookie。

真正麻烦的是,在一些场合我们要允许用户输入HTML,又要过滤其中的脚本。这就要求我们对代码小心地进行转义。否则,我们可能既获取不了用户的正确输入,又被XSS攻击。 幸好,由于XSS臭名昭著历史悠久又极其危险,现代web开发框架如vue.js、react.js等,在设计的时候就考虑了XSS攻击对html插值进行了更进一步的抽象、过滤和转义,我们只要熟练正确地使用他们,就可以在大部分情况下避免XSS攻击。 同时,许多基于MVVM框架的SPA(单页应用)不需要刷新URL来控制view,这样大大防止了XSS隐患。另外,我们还可以用一些防火墙来阻止XSS的运行。

相关资料:动态网站建设时如何防范跨站攻击

上一篇:教育培训学校网络招生报名系统网站建设解决方案
下一篇:校园网站设计解决方案