XSS及CSRF攻击防御

一、概念:

XSS攻击全称跨站脚本攻击(Cross Site Scripting);

CSRF(Cross-site request forgery)跨站请求伪造,也被称为“One Click Attack”或者Session Riding,通常缩写为CSRF或者XSRF;

二、XSS

什么是 XSS ?

XSS (Cross Site Scripting),即跨站脚本攻击,是一种常见于 Web 应用中的计算机安全漏洞。恶意攻击者往 Web 页面里嵌入恶意的客户端脚本,当用户浏览此网页时,脚本就会在用户的浏览器上执行,进而达到攻击者的目的。比如获取用户的 Cookie、导航到恶意网站、携带木马等。借助安全圈里面非常有名的一句话:

所有的输入都是有害的。

这句话把 XSS 漏洞的本质体现的淋漓尽致。大部分的 XSS 漏洞都是由于没有处理好用户的输入,导致恶意脚本在浏览器中执行。任何输入提交数据的地方都有可能存在 XSS。 
XSS 脚本攻击案例: 
新浪微博遭受 XSS 攻击 
人人网遭受 XSS 攻击 
在这里使用一个简单的例子测试XSS:






测试是否存在xss漏洞


输入评论:


您的评论:

注意:使用innerHtml插入代码,只是当作普通的html执行,js解析器不会执行js脚本。

 

XSS 攻击分类






xss漏洞广告页面






敏感词汇



反射型

用户在页面输入框中输入数据,通过 get 或者 post 方法向服务器端传递数据,输入的数据一般是放在 URL 的 query string 中,或者是 form 表单中,如果服务端没有对这些数据进行过滤、验证或者编码,直接将用户输入的数据呈现出来,就可能会造成反射型 XSS。反射型 XSS 是非常普遍的,其危害程度通常较小,但是某些反射型 XSS 还是会造成严重后果的。 
黑客通常通过构造一个包含 XSS 代码的 URL,诱导用户点击链接,触发 XSS 代码,达到劫持访问、获取 cookies 的目的。

持久型

通常是因为服务器端将用户输入的恶意脚本没有经过验证就存储在数据库中,并且通过调用数据库的方式,将数据呈现在浏览器上,当页面被用户打开的时候执行,每当用户打开浏览器,恶意脚本就会执行。持久型的 XSS 攻击相比非持久型的危害性更大,因为每当用户打开页面,恶意脚本都会执行。 
例如一个评论功能,在提交评论的表单里面:

 

正常情况下,用户填入评论内容提交,服务端将评论内容保存到数据库,其他用户查看评论时,从后台提供的接口中取出数据展示。非正常情况下,恶意攻击者在 value 中填写恶意代码:

 

后台保存到数据库中,其他用户查看评论的时候就会执行这些恶意攻击代码。

 

DOM 型( DOM Based XSS )

cmd-markdown-logo

DOM 是一个树形结构,我们可以通过写 js 代码来修改节点,对象和值。DOM XSS 简单理解就是它的输出点在 DOM 。XSS 代码可能是插入简单的

你可能感兴趣的:(安全攻防)