Django XFrameOptionsMiddleware(X-Frame-Options) - 通过客户端IP允许iframe

时间:2014-09-10 18:56:26

标签: django iframe x-frame-options clickjacking

我使用Django XFrameOptionsMiddleware来控制点击劫持,但我有一个客户需要能够从他们的网络中的iframe中浏览应用程序。我希望能够在view方法中应用(或删除)xframe_options_exempt装饰器。

1 个答案:

答案 0 :(得分:5)

最佳方法是覆盖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()