CSRFConfig¶
CSRF ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ Cross-Site Request Forgery (ΠΌΠ΅ΠΆΡΠ°ΠΉΡΠΎΠ²Π°Ρ ΠΏΠΎΠ΄Π΄Π΅Π»ΠΊΠ° Π·Π°ΠΏΡΠΎΡΠ°) ΠΈ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· Π²ΡΡΡΠΎΠ΅Π½Π½ΡΡ
middleware Π² Ravyn. ΠΠΎΠ³Π΄Π° ΠΎΠ±ΡΠ΅ΠΊΡ CSRFConfig ΠΏΠ΅ΡΠ΅Π΄Π°Π΅ΡΡΡ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ Π·Π°ΠΏΡΡΠΊΠ°Π΅ΡΡΡ
CSRFMiddleware.
Tip
ΠΠΎΠ»ΡΡΠ΅ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΎ CSRF ΡΡΡ.
CSRFConfig ΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅¶
ΠΠ»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ CSRFConfig Π² ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
from ravyn import CSRFConfig, Ravyn, settings
csrf_config = CSRFConfig(
secret=settings.secret_key,
cookie_name="csrftoken",
)
app = Ravyn(csrf_config=csrf_config)
ΠΡΠ΅ ΠΏΡΠΈΠΌΠ΅Ρ
from ravyn import CSRFConfig, Ravyn, settings
csrf_config = CSRFConfig(
secret_key=settings.secret_key, session_cookie="csrftoken", header_name="x-csrftoken"
)
app = Ravyn(csrf_config=csrf_config)
ΠΠ°ΡΠ°ΠΌΠ΅ΡΡΡ¶
ΠΡΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π΄ΠΎΡΡΡΠΏΠ½Ρ Π² ΡΠΏΡΠ°Π²ΠΎΡΠ½ΠΈΠΊΠ΅ CSRFConfig.
CSRFConfig ΠΈ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ¶
CSRFConfig ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Π΄Π°ΡΡ Π½Π°ΠΏΡΡΠΌΡΡ ΠΏΡΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, Π° ΡΠ°ΠΊΠΆΠ΅ ΡΠ΅ΡΠ΅Π· Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ.
from ravyn import CSRFConfig, RavynSettings, ImproperlyConfigured
class CustomSettings(RavynSettings):
@property
def csrf_config(self) -> CSRFConfig:
"""
Initial Default configuration for the CSRF.
This can be overwritten in another setting or simply override `secret`
or then override the `def csrf_config()` property to change the behavior
of the whole csrf_config.
"""
if not self.secret_key:
raise ImproperlyConfigured("`secret` setting not configured.")
return CSRFConfig(secret=self.secret_key)
ΠΡΠΎ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ Π²Π°ΠΌ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ Π² ΡΠΈΡΡΠΎΡΠ΅, Π±Π΅Π· ΠΏΠ΅ΡΠ΅Π³ΡΡΠΆΠ΅Π½Π½ΠΎΠ³ΠΎ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠ° Ravyn.