bra*_*ped 5 python django clickjacking
问题:如果已经通过我们的单点登录提供商进行身份验证,则用户不得查看登录页面。
解决方案:iframe 和 javascript 会显示加载 gif,直到 iframe 从单点登录提供商返回响应之后。如果 SSO 提供商响应用户当前已登录,Django 将对用户服务器端进行身份验证,并且 JavaScript 将用户重定向到 Web 应用程序。如果 SSO 提供商响应用户未登录,则 javascript 会将加载 gif 替换为登录表单。
使用 Django==1.9.9、Python 2:
我们的get调用用 装饰@xframe_options_sameorigin,但最近有时开始返回此错误:
2016-09-25 16:38:27,598 | django.request | ERROR | Internal Server Error: /accounts/open-id-finish/
Traceback (most recent call last):
File "/lib/python2.7/site-packages/django/core/handlers/base.py", line 149, in get_response
response = self.process_exception_by_middleware(e, request)
File "/lib/python2.7/site-packages/django/core/handlers/base.py", line 147, in get_response
response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "/opt/virtualenv/local/lib/python2.7/site-packages/django/views/generic/base.py", line 68, in view
return self.dispatch(request, *args, **kwargs)
File "/opt/virtualenv/local/lib/python2.7/site-packages/django/views/generic/base.py", line 88, in dispatch
return handler(request, *args, **kwargs)
File "/opt/virtualenv/local/lib/python2.7/site-packages/django/views/decorators/clickjacking.py", line 40, in wrapped_view
if resp.get('X-Frame-Options') is None:
AttributeError: 'NoneType' object has no attribute 'get'
Run Code Online (Sandbox Code Playgroud)
这个错误从何而来?@xframe_options_sameoriginDjango 1.9有变化吗?为什么我们的 get 函数有时是 NoneType 呢?
我认为这是中间件类定义的问题。
以前这可以工作:class myMiddleware(object):
我不确定发生了什么变化,但我认为你需要:class myMiddleware(MiddlewareMixin):。 MiddlewareMixen发现于from django.utils.deprecation import MiddlewareMixin
| 归档时间: |
|
| 查看次数: |
2193 次 |
| 最近记录: |