Ë
    ÄPi_  ã                   óD   — d dl Z d dlmZ d dlmZ d dlmZ  G d„ d«      Zy)é    N)ÚCORS)ÚFlask)Úenvc                   ó<   — e Zd ZdZedefd„«       Zedefd„«       Zy)ÚSecurityConfigu   ë³´ì•ˆ ì„¤ì • í´ëž˜ìŠ¤Úappc           
      ó
  — t        j                  dddg¬«      }t        j                  d«      dk(  r|j                  g d¢«       t	        | |t        j                  dg d	¢¬«      t        j                  d
g d¢¬«      dd¬«       y)u   CORS ì„¤ì •ÚALLOWED_ORIGINSzhttps://mlink.sellmall.co.krzhttps://www.sellmall.co.kr)ÚdefaultÚENVIRONMENTÚdevelopment)zhttp://localhost:3000zhttp://localhost:3001zhttp://127.0.0.1:3000zhttp://127.0.0.1:3001ÚALLOWED_METHODS)ÚGETÚPOSTÚPUTÚDELETEÚOPTIONSÚALLOWED_HEADERS)zContent-TypeÚAuthorizationzX-Requested-WithzX-CSRF-TokenTi  )ÚoriginsÚmethodsÚallow_headersÚsupports_credentialsÚmax_ageN)r   Úget_listÚgetÚextendr   )r   Úallowed_originss     úF/home/kdj-ubuntu1/mlink_AI_Server/mlink-backend/src/config/security.pyÚconfigure_corszSecurityConfig.configure_cors
   sŠ   € ô Ÿ,™,Ð'8Ø*Ø(ðC
ô ˆô 7‰7=Ó! ]Ò2Ø×"Ñ"ò $ô ô 	ØØ#Ü—L‘LÐ!2ò =ô ô Ÿ,™,Ð'8ò Cô ð "&Øö	
ó    c                 ó(   — | j                   d„ «       }y)u   ë³´ì•ˆ í—¤ë” ì„¤ì •c                 óÜ   — d| j                   d<   d| j                   d<   d| j                   d<   d| j                   d<   d	}|| j                   d
<   d| j                   d<   d| j                   d<   | S )NÚnosniffzX-Content-Type-OptionsÚDENYzX-Frame-Optionsz1; mode=blockzX-XSS-Protectionz#max-age=31536000; includeSubDomainszStrict-Transport-SecurityzÞdefault-src 'self'; script-src 'self' 'unsafe-inline' 'unsafe-eval'; style-src 'self' 'unsafe-inline'; img-src 'self' data: https:; connect-src 'self' https://api.openai.com https://media.tenor.com; frame-ancestors 'none';zContent-Security-Policyzstrict-origin-when-cross-originzReferrer-Policyzmgeolocation=(), microphone=(), camera=(), payment=(), usb=(), magnetometer=(), gyroscope=(), accelerometer=()zPermissions-Policy)Úheaders)ÚresponseÚcsps     r   Úadd_security_headerszGSecurityConfig.configure_security_headers.<locals>.add_security_headers/   sš   € ð :CˆH×ÑÐ5Ñ6Ø28ˆH×ÑÐ.Ñ/Ø3BˆH×ÑÐ/Ñ0ð =bˆH×ÑÐ8Ñ9ð*ð ð ;>ˆH×ÑÐ6Ñ7ð 3TˆH×ÑÐ.Ñ/ð#ð ×ÑÐ1Ñ2ð ˆOr!   N)Úafter_request)r   r)   s     r   Úconfigure_security_headersz)SecurityConfig.configure_security_headers,   s   € ð 
×	Ñ	ñ#	ó 
ñ#	r!   N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__Ústaticmethodr   r    r+   © r!   r   r   r      s:   „ Ù!àð
˜Eò 
ó ð
ðB ð&¨ò &ó ñ&r!   r   )ÚosÚ
flask_corsr   Úflaskr   Úsrc.config.env_loaderr   r   r1   r!   r   Ú<module>r6      s   ðã 	Ý Ý Ý %÷Lò Lr!   