CSRF(Cross-site request forgery跨站請求偽造,也被稱為“one click attack”或者session riding,通常縮寫為CSRF或者XSRF,是一種對網站的惡意利用,盡管聽起來像跨站腳本(XSS),但它與XSS非常不同,并且攻擊方式幾乎相左,XSS利用站點內的信任用戶,而CSRF則通過偽裝來自受信任用戶的請求來利用受信任的網站。與XSS攻擊相比,CSRF攻擊往往不大流行,因此對其進行防范的資源也相當稀少,和難以防范,所以被認為比XSS更具危險性.
當前防范 XSRF 的一種通用的方法,是對每一個用戶都記錄一個無法預知的 cookie 數據,然后要求所有提交的請求中都必須帶有這個 cookie 數據,如果此數據不匹配,那么這個請求就可能是被偽造的.
Tornado 有內建的 XSRF 的防范機制,要使用此機制,你需要在應用配置中加上 xsrf_cookies 設定:
xsrf_cookies=True,
cookie_secret="__TODO:_GENERATE_YOUR_OWN_RANDOM_VALUE_HERE__",
配置完成后就可以使用xsrf_form_html(),代碼如下:
- <form action="/new_message" method="post">
- {% module xsrf_form_html() %}
- <input type="text" name="message"/>
- <input type="submit" value="Post"/>
- </form> //Vevb.com
之前我一直以為直接用{% xsrf_form_html() %}結果一直報錯“ParseError: unknown operator:‘xsrf_form_html()’”,加上module就行了.
新聞熱點
疑難解答