一、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”:验证码,