
 X                 @   s  d  d l  m Z d d l m Z m Z m Z d d l m Z d Z d Z	 e d d d	 Z
 e d
 d d Z e d d d Z e d d d Z e d d d Z e d d d Z e d d d Z e d i e d 6e	 d 6d d Z e d d d Z e d d d Z e d d d Z d  d!   Z d" d#   Z e e j d$ d% d& d'    Z e e j d$ d% d( d)    Z e e j d$ d% d* d+    Z e e j d$ d% d, d-    Z e e j d$ d% d. d/    Z e e j d$ d% d0 d1    Z e e j d$ d% d2 d3    Z e e j d$ d% d4 d5    Z e e j d$ d% d6 d7    Z  e e j d$ d% d8 d9    Z! e e j d$ d% d: d;    Z" d< S)=    )settings   )TagsWarningregister)patch_middleware_message2      zYou do not have 'django.middleware.security.SecurityMiddleware' in your MIDDLEWARE so the SECURE_HSTS_SECONDS, SECURE_CONTENT_TYPE_NOSNIFF, SECURE_BROWSER_XSS_FILTER, and SECURE_SSL_REDIRECT settings will have no effect.idzsecurity.W001a3  You do not have 'django.middleware.clickjacking.XFrameOptionsMiddleware' in your MIDDLEWARE, so your pages will not be served with an 'x-frame-options' header. Unless there is a good reason for your site to be served in a frame, you should consider enabling this header to help prevent clickjacking attacks.zsecurity.W002a,  You have not set a value for the SECURE_HSTS_SECONDS setting. If your entire site is served only over SSL, you may want to consider setting a value and enabling HTTP Strict Transport Security. Be sure to read the documentation first; enabling HSTS carelessly can cause serious, irreversible problems.zsecurity.W004a  You have not set the SECURE_HSTS_INCLUDE_SUBDOMAINS setting to True. Without this, your site is potentially vulnerable to attack via an insecure connection to a subdomain. Only set this to True if you are certain that all subdomains of your domain should be served exclusively via SSL.zsecurity.W005zYour SECURE_CONTENT_TYPE_NOSNIFF setting is not set to True, so your pages will not be served with an 'x-content-type-options: nosniff' header. You should consider enabling this header to prevent the browser from identifying content types incorrectly.zsecurity.W006zYour SECURE_BROWSER_XSS_FILTER setting is not set to True, so your pages will not be served with an 'x-xss-protection: 1; mode=block' header. You should consider enabling this header to activate the browser's XSS filtering and help prevent XSS attacks.zsecurity.W007a  Your SECURE_SSL_REDIRECT setting is not set to True. Unless your site should be available over both SSL and non-SSL connections, you may want to either set this setting True or configure a load balancer or reverse-proxy server to redirect all connections to HTTPS.zsecurity.W008zYour SECRET_KEY has less than %(min_length)s characters or less than %(min_unique_chars)s unique characters. Please generate a long and random SECRET_KEY, otherwise many of Django's security-critical features will be vulnerable to attack.Z
min_lengthZmin_unique_charszsecurity.W009z4You should not have DEBUG set to True in deployment.zsecurity.W018a  You have 'django.middleware.clickjacking.XFrameOptionsMiddleware' in your MIDDLEWARE, but X_FRAME_OPTIONS is not set to 'DENY'. The default is 'SAMEORIGIN', but unless there is a good reason for your site to serve other parts of itself in a frame, you should change it to 'DENY'.zsecurity.W019z.ALLOWED_HOSTS must not be empty in deployment.zsecurity.W020c               C   s%   d t  j k p$ t  j o$ d t  j k S)Nz-django.middleware.security.SecurityMiddleware)r   MIDDLEWARE_CLASSES
MIDDLEWARE r   r   N/home/ubuntu/projects/ifolica/build/django/django/core/checks/security/base.py_security_middlewarei   s    r   c               C   s%   d t  j k p$ t  j o$ d t  j k S)Nz6django.middleware.clickjacking.XFrameOptionsMiddleware)r   r   r   r   r   r   r   _xframe_middlewaren   s    r   ZdeployTc             K   s    t    } | r g  St t  g S)N)r   r   W001)app_configskwargspassed_checkr   r   r   check_security_middlewares   s    	r   c             K   s    t    } | r g  St t  g S)N)r   r   W002)r   r   r   r   r   r   check_xframe_options_middlewarey   s    	r   c             K   s$   t    p t j } | r g  St g S)N)r   r   SECURE_HSTS_SECONDSW004)r   r   r   r   r   r   	check_sts   s    r   c             K   s4   t    p  t j p  t j d k } | r- g  St g S)NT)r   r   r   ZSECURE_HSTS_INCLUDE_SUBDOMAINSW005)r   r   r   r   r   r   check_sts_include_subdomains   s    

r   c             K   s*   t    p t j d k } | r# g  St g S)NT)r   r   ZSECURE_CONTENT_TYPE_NOSNIFFW006)r   r   r   r   r   r   check_content_type_nosniff   s    
r   c             K   s*   t    p t j d k } | r# g  St g S)NT)r   r   ZSECURE_BROWSER_XSS_FILTERW007)r   r   r   r   r   r   check_xss_filter   s    
r    c             K   s*   t    p t j d k } | r# g  St g S)NT)r   r   ZSECURE_SSL_REDIRECTW008)r   r   r   r   r   r   check_ssl_redirect   s    
r"   c             K   sS   t  t d d   o? t t t j   t k o? t t j  t k } | rL g  St g S)N
SECRET_KEY)getattrr   lensetr#    SECRET_KEY_MIN_UNIQUE_CHARACTERSSECRET_KEY_MIN_LENGTHW009)r   r   r   r   r   r   check_secret_key   s    r*   c             K   s   t  j } | r g  St g S)N)r   DEBUGW018)r   r   r   r   r   r   check_debug   s    
r-   c             K   s0   t    p t j d k } | r# g  St t  g S)NZDENY)r   r   ZX_FRAME_OPTIONSr   W019)r   r   r   r   r   r   check_xframe_deny   s    
r/   c             K   s   t  j r g  St g S)N)r   ZALLOWED_HOSTSW020)r   r   r   r   r   check_allowed_hosts   s    r1   N)#Zdjango.confr    r   r   r   utilsr   r(   r'   r   r   r   r   r   r   r!   r)   r,   r.   r0   r   r   securityr   r   r   r   r   r    r"   r*   r-   r/   r1   r   r   r   r   <module>   sj   											!!!!
!	!	!	!
!!	