tornado------防止跨站攻击------用户身份验证框架
CSRF攻击原理
用tornado防范CSRF攻击
为了防CSEF攻击,要求每个请求包括一个参数值作为令牌来匹配储存在cookie中的对应值。
Tornado应用可以通过一个Cookie头和一个HTML表单元素向页面提供令牌。开启Tornado的CSR防范功能需要两个步骤:
1、在实例化tornodo.web.Application时传入xsrf_cookies=True参数,如:
1 application = tornado.web.Application([ 2 (r"/", MainHandler), 3 (r"/purchase", PurchaseHandler), 4 ], cookie_secret="DONT_LEAK_SECRET", xsrf_cookies=True,)
或者:
1 settings = { 2 "cookie_secret": "DONT_LEAK_SECRET", 3 "xsrf_cookies": True, 4 } 5 6 application = tornado.web.Application([ 7 (r"/", MainHandler), 8 (r"/purchase", PurchaseHandler), 9 ], **settings)
2、在每个具有HTML表单的模板文件中,为所有表单添加xsrf_form_html()函数标签,如:
1 <form action="/login" method="post"> 2 {% module xsrf_form_html() %} 3 <input type="text" name="message"/> 4 <input type="submit" value="Post"/> 5 </form>
清澈的爱,只为中国