middleware.py 文件源码

python
阅读 18 收藏 0 点赞 0 评论 0

项目:perimeterx-python-wsgi 作者: PerimeterX 项目源码 文件源码
def _verify(self, environ, start_response):
        logger = self.config['logger']
        ctx = px_context.build_context(environ, self.config)

        if ctx.get('module_mode') == 'inactive' or is_static_file(ctx):
            logger.debug('Filter static file request. uri: ' + ctx.get('uri'))
            return self.app(environ, start_response)

        cookies = Cookie.SimpleCookie(environ.get('HTTP_COOKIE'))
        if self.config.get('captcha_enabled') and cookies.get('_pxCaptcha') and cookies.get('_pxCaptcha').value:
            pxCaptcha = cookies.get('_pxCaptcha').value
            if px_captcha.verify(ctx, self.config, pxCaptcha):
                logger.debug('User passed captcha verification. user ip: ' + ctx.get('socket_ip'))
                return self.app(environ, start_response)

        # PX Cookie verification
        if not px_cookie.verify(ctx, self.config) and self.config.get('server_calls_enabled', True):
            # Server-to-Server verification fallback
            if not px_api.verify(ctx, self.config):
                return self.app(environ, start_response)

        return self.handle_verification(ctx, self.config, environ, start_response)
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号