module

ActionController::RequestForgeryProtection

Constants

AUTHENTICITY_TOKEN_LENGTH = 32
CSRF_PARAM_NAME = "authenticity_token"
GLOBAL_CSRF_TOKEN_IDENTIFIER = "!real_csrf_token"

Class methods

allow_forgery_protection

Глобальный конфиг (аналог config.action_controller.*). Логирование провала — на railties-слое (422 в лестнице ShowExceptions), у шарда нет своего логгера.

Source
allow_forgery_protection=(allow_forgery_protection : Bool)

Глобальный конфиг (аналог config.action_controller.*). Логирование провала — на railties-слое (422 в лестнице ShowExceptions), у шарда нет своего логгера.

Source
force_secure_protocol

Аналог ActionDispatch::Http::URL.secure_protocol: запрос без Sec-Fetch-Site заголовка (header_only) разрешён только по plain HTTP.

Source
force_secure_protocol=(force_secure_protocol : Bool)

Аналог ActionDispatch::Http::URL.secure_protocol: запрос без Sec-Fetch-Site заголовка (header_only) разрешён только по plain HTTP.

Source
forgery_protection_origin_check
Source
forgery_protection_origin_check=(forgery_protection_origin_check : Bool)
Source
forgery_protection_trusted_origins

Разрешённые кросс-сайт источники (Origin-строки) — OAuth/SSO-колбэки.

Source
forgery_protection_trusted_origins=(forgery_protection_trusted_origins : Array(String))

Разрешённые кросс-сайт источники (Origin-строки) — OAuth/SSO-колбэки.

Source
forgery_protection_verification_strategy

Rails 8.2: :header_only | :header_or_legacy_token (дефолт гема — гибрид; приложение Campfire ставит :header_only через using:).

Source
forgery_protection_verification_strategy=(forgery_protection_verification_strategy : Symbol)

Rails 8.2: :header_only | :header_or_legacy_token (дефолт гема — гибрид; приложение Campfire ставит :header_only через using:).

Source
per_form_csrf_tokens
Source
per_form_csrf_tokens=(per_form_csrf_tokens : Bool)
Source

Instance methods

__mark_for_same_origin_verification
Source
__valid_authenticity_token?(encoded : String | Nil) : Bool

Маскированный (64 байта после декода) или немаскированный (32) токен: глобальный HMAC | real | per-form — порядок как в 8.1.4.

Source
form_authenticity_token(action : String | Nil = nil, method : String | Nil = nil) : String

Глобальный токен (глобальный HMAC) или per-form для action/method.

Source

Macros

protect_from_forgery(only = nil, except = nil, using = nil, **opts)

protect_from_forgery with: :exception, using: :header_only, only: [...], except: [...], if:, unless: with: — Crystal-ключевое слово, читается из **opts (как в rate_limit). Дефолт — :null_session, как в геме. Неизвестные ключи — compile error: молчаливое игнорирование (как using: до 0.1.2) маскирует неработающую защиту.

Source
skip_forgery_protection

skip_forgery_protection — обёртка skip_before_action :verify_authenticity_token, как в геме.

Source