3
­©Þ[Å  ã               @   s0   d Z ddlmZ ddlmZ G d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Ó  
    Set the X-Frame-Options HTTP header in HTTP responses.

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

    By default, set 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'.
    c             C   s6   |j dƒd k	r|S t|ddƒr"|S | j||ƒ|d< |S )NzX-Frame-OptionsZxframe_options_exemptF)ÚgetÚgetattrÚget_xframe_options_value)ÚselfÚrequestÚresponse© r   úB/tmp/pip-install-j7i95hgp/django/django/middleware/clickjacking.pyÚprocess_response   s    
z(XFrameOptionsMiddleware.process_responsec             C   s   t tddƒjƒ S )a
  
        Get the value to set for the X_FRAME_OPTIONS header. Use the value from
        the X_FRAME_OPTIONS setting, or 'SAMEORIGIN' if not set.

        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   