码迷,mamicode.com
首页 > 编程语言 > 详细

python,django做中间件屏蔽非法访问

时间:2016-02-21 14:20:34      阅读:229      评论:0      收藏:0      [点我收藏+]

标签:

我使用django1.6.

django框架没有urlfilter这样的原生中间件,但是灵活的django设计者为我们留下了更自由的渠道。

在没有使用django以前,我没有接触过如此潇洒的编程方式,中间件就是MIDDLEWARE_CLASSES,这个配置在你的settings文件中,当然所有的中间件,包括django的session,cookie中间件,CsrfViewMiddleware中间件,她们都是人家设计大妈为我们写好了类,我们只需要配置一下settings,run server一下就成功驻军我们web应用了。

  如果自己不写一次中间件,怎么会了解设计者,django是怎么运行的呢???

 

废话不说了。

 

新建一个应用,叫management,然和在此应用下,自己新建一个文件叫:statisti_user_activity.py

 

中间件的秘密在于 继承和重写方法,然和配置。

 

三步骤:1创建类

class RqsStatistcsMiddleware(object):
  def process_request(self,request):重写方法

 

然后去settings下配置你这个类。在MIDDLEWARE_CLASSES里写上你的类的应用+类名即可。如我们这个: management.statisti_uset_activity.RqsStatistcsMiddleware

 runserver 看看吧。记住MIDDLEWARE_CLASSES的顺序是按照你的配置先后顺序的哦。

 

中间件的作用:

    我平生最恨那些只讲原理不讲试用场景的人,哈哈,做人嘛要给被人一些功夫的适用场景。

    一句话行如中间件作用:你最想在别人访问你的程序前作些什么,那么它可以帮你实现。

    场景一:你要查看所有request是否是你指定的ip访问:那ok咯

    def process_request(self,request):

    if request.META.has_key(‘HTTP_X_FORWARDED_FOR‘):

      if request.META[‘HTTP_X_FORWARDED_FOR‘] ! = ‘你想要的妹子的ip‘:

        return HttpResponseForbidden(‘<h1 style="text-align:center;margin-top:20px;">不好意思,你不是我们蒙娜丽莎!</h1>‘)

    else:

      return HttpResponseForbidden(‘<h1 style="text-align:center;margin-top:20px;">不好意思,你不是我们蒙娜丽莎!</h1>‘)

    可以指定访问,当然可以禁止某些访问了。

场景二:

  检查用户访问的行为:比如某些url,是网站权限url,需要验证口令,验证是否付费等等。

场景三:

     统计用户访问:以后做定点推送准备

场景四:

    统计非法访问,适用新进程计时器,或者redis等发现异常访问次数,做相应操作

总之太多太多,,,还是那句话:你最想在别人访问你的程序前作些什么,那么它可以帮你实现。

 

哈哈:我是老银,喜欢的大家一起学习,一起讨论。

python,django做中间件屏蔽非法访问

标签:

原文地址:http://www.cnblogs.com/yinxingpan/p/5204802.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!