A!die Software Studio Welcome to A!Die Software Studio

Django 在某个 URL 上屏蔽 CRSF

by adie
2011-02-23 17:44:43

       CSRF是Cross Site Request Forgery的缩写,称其为“跨站请求伪造”。常与XSS想提并论,但它与XSS非常不同,并且攻击方式几乎相左。XSS利用站点内的信任用户,而 CSRF则通过伪装来自受信任用户的请求来利用受信任的网站。与XSS攻击相比,CSRF攻击往往不大流行(因此对其进行防范的资源也相当稀少)和难以防 范,所以有时候被认为比XSS更具危险性。Django 给每个form表单加的一个hidden 隐藏域, 发现没有这个csrfmiddlewaretoken 那么表单就提交不了了。

       但有时候某些地方时需要跨站提交 POST 请求的,比如 paypal 的 notify_url,这事可以同增加一个 Middleware 来让某个特定的 URL 跳过 CSRF。

 

  1. class Ignore_Crsf_Middleware(object):  
  2.    def process_request(self, request):  
  3.        if request.path == '/paypal/notify':  
  4.            request.csrf_processing_done = True  
  5.        return None  

 

        然后将这个 Middleware 添加到 Setting.py 中 MIDDLEWARE_CLASSES 的最前面就可以了。

 

▲评论

X 正在回复:
姓 名: 留下更多信息
性 别:
邮 件:
主 页:
Q Q:
来 自:
职 业:
评 论:


Valid HTML 4.01 Strict Valid CSS!
Copyleft.A!die Software Studio.ADSS
Power by webmaster@adintr.com