我正在使用 Django XFrameOptionsMiddleware 来控制点击劫持,但我有一个客户需要能够从他们的网络中浏览 iframe 中的应用程序。我希望能够从视图方法中应用(或删除) xframe_options_exempt 装饰器。
问问题
3375 次
1 回答
8
最好的方法是覆盖 get_xframe_options_value。在我的情况下,XFRAME_EXEMPT_IPS 是一个 glob_list,用于使用 fnmatch (192.168.*) 检测允许的网络。
class TFXFrameOptionsMiddleware(XFrameOptionsMiddleware):
def get_xframe_options_value(self, request, response):
if request.META['REMOTE_ADDR'] in settings.XFRAME_EXEMPT_IPS:
return 'ALLOWALL' # non standard, equivalent to omitting
return getattr(settings, 'X_FRAME_OPTIONS', 'SAMEORIGIN').upper()
于 2014-09-10T20:09:35.437 回答