一、XSS(也叫CSS):跨站脚本攻击
指攻击者往web页面里添加恶意的html代码,当用户浏览网页时,恶意添加的代码被执行,达到恶意用户的目的。
tornado框架已经对XSS进行了处理,将代码语句自动转换成了字符串,
如果需要在tornado的web页面中强行加入可执行的html代码,使用语句:{% raw XXXXXX %},
二、XSRF(也叫CSRF):跨站请求伪造
XSRF,是通过伪装成来自受信任用户的请求,来利用受信任的网站,
XSRF认证,是通过限制POST请求实现对XSRF的控制,其基本原理和步骤如下:
(一)settings中添加代码:"xsrf_cookies":True, 开启XSRF安全认证,

(二)当客户端首次GET请求服务器时,服务器后台生成唯一识别码给客户端,
在get请求的html中添加代码:{% raw xsrf_form_html() %}。
此句代码:1、在后台自动生成验证码,2、在html中添加隐藏的input标签将验证码写入“_xsrf ”参数,3、将验证码写入cookie:“_xsrf ”,

(三)当客户端发起POST请求时,如果没有服务器提供的识别码,验证失败,拒绝访问,
1、FORM表单提交POST请求时
· 服务器端自动验证“_xsrf”参数,而且通过self.get_argument("_xsrf",None),可以获取验证码的具体内容,

2、AJAX方式提交POST请求时
首先,通过正则在cookies中提取“_xsrf”的值(即:验证码的具体内容),然后在ajax请求的data中人为添加:“_xsrf”:验证码,

浙公网安备 33010602011771号