î
ªÍ X  ã               @   s@   d  Z  d d l m Z d d l m Z Gd d „  d e ƒ Z d S)z°
Clickjacking Protection Middleware.

This module provides a middleware that implements protection against a
malicious site loading resources from your site in a hidden frame.
é    )Úsettings)ÚMiddlewareMixinc               @   s.   e  Z d  Z d Z d d „  Z d d „  Z d S)ÚXFrameOptionsMiddlewareaÖ  
    Middleware that sets the X-Frame-Options HTTP header in HTTP responses.

    Does not set the header if it's already set or if the response contains
    a xframe_options_exempt value set to True.

    By default, sets the X-Frame-Options header to 'SAMEORIGIN', meaning the
    response can only be loaded on a frame within the same site. To prevent the
    response from being loaded in a frame in any site, set X_FRAME_OPTIONS in
    your project's Django settings to 'DENY'.

    Note: older browsers will quietly ignore this header, thus other
    clickjacking protection techniques should be used if protection in those
    browsers is required.

    https://en.wikipedia.org/wiki/Clickjacking#Server_and_client
    c             C   sI   | j  d ƒ d  k	 r | St | d d ƒ r/ | S|  j | | ƒ | d <| S)NzX-Frame-OptionsZxframe_options_exemptF)ÚgetÚgetattrÚget_xframe_options_value)ÚselfÚrequestÚresponse© r   úL/home/ubuntu/projects/ifolica/build/django/django/middleware/clickjacking.pyÚprocess_response   s    	z(XFrameOptionsMiddleware.process_responsec             C   s   t  t d d ƒ j ƒ  S)aE  
        Gets the value to set for the X_FRAME_OPTIONS header.

        By default this uses the value from the X_FRAME_OPTIONS Django
        settings. If not found in settings, defaults to 'SAMEORIGIN'.

        This method can be overridden if needed, allowing it to vary based on
        the request or response.
        ZX_FRAME_OPTIONSZ
SAMEORIGIN)r   r   Úupper)r   r	   r
   r   r   r   r   +   s    
z0XFrameOptionsMiddleware.get_xframe_options_valueN)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r   r   r   r   r   r      s   r   N)r   Zdjango.confr   Zdjango.utils.deprecationr   r   r   r   r   r   Ú<module>   s   