Налаштування HTTP
Огляд опцій конфігурації для Nette HTTP.
Якщо ви використовуєте не весь фреймворк, а тільки цю бібліотеку, прочитайте, як завантажити конфігурацію.
HTTP-заголовки
З метою безпеки фреймворк надсилає заголовок X-Frame-Options: SAMEORIGIN
,
в якому йдеться про те, що сторінка може бути відображена всередині
іншої сторінки (в елементі <iframe>
) тільки в тому випадку, якщо
вона знаходиться на тому ж домені. Це може бути небажано в деяких
ситуаціях (наприклад, якщо ви розробляєте додаток для Facebook), тому
поведінку можна змінити, встановивши фрейми
frames: http://allowed-host.com
.
Політика безпеки контенту
Заголовки Content-Security-Policy
(далі CSP) можуть бути легко зібрані, їх
опис можна знайти в описі CSP. Директиви CSP
(такі як script-src
) можуть бути записані або як рядки відповідно до
специфікації, або як масиви значень для кращої читабельності. Тоді
немає необхідності писати лапки навколо ключових слів, таких як
'self'
. Nette також автоматично генерує значення nonce
, тому
'nonce-y4PopTLM=='
буде надіслано в заголовку.
Використовуйте <script n:nonce>...</script>
у шаблонах, і значення
nonce буде заповнено автоматично. Створювати захищені веб-сайти в Nette
дуже просто.
Аналогічним чином можна додати заголовки Content-Security-Policy-Report-Only
(який можна використовувати паралельно з CSP) і Feature Policy:
HTTP Cookie
Ви можете змінити значення за замовчуванням деяких параметрів методів Nette\Http\Response::setCookie() і session.
Параметр cookieDomain
визначає, які домени (origin) можуть приймати
куки. Якщо його не вказано, то cookie приймається тим самим (під)доменом,
який ним задано, виключаючи їхні піддомени. Якщо вказано
cookieDomain
, то субдомени також будуть включені. Тому вказівка
cookieDomain
є менш обмежувальною, ніж опущення.
Наприклад, якщо задано cookieDomain: nette.org
, то cookie також доступний на
всіх піддоменах, таких як doc.nette.org
. Цього також можна досягти за
допомогою спеціального значення domain
, тобто
cookieDomain: domain
.
Значення за замовчуванням cookieSecure
дорівнює auto
, що
означає, що якщо сайт працює на HTTPS, cookie надсилатимуться з прапором
Secure
і, отже, будуть доступні тільки через HTTPS.
HTTP-проксі
Якщо сайт працює за HTTP-проксі, введіть IP-адресу проксі, щоб виявлення
HTTPS-з'єднань працювало правильно, а також IP-адресу клієнта. Тобто, щоб Nette\Http\Request::getRemoteAddress() та isSecured() повертали правильні значення і в шаблонах
генерувалися посилання з протоколом https:
.
Сесія
Основні налаштування сеансів:
Параметр autoStart
визначає, коли починати сеанс. Значення
always
означає, що сесія завжди запускається під час запуску
програми. Значення smart
означає, що сесія буде запускатися під
час запуску програми, тільки якщо вона вже існує, або в той момент, коли
ми хочемо читати з неї або писати в неї. Нарешті, значення never
відключає автоматичний запуск сесії.
Ви також можете задати всі директиви PHP сесії (у форматі camelCase), а також readAndClose. Приклад:
Сесійний файл cookie
Сесійний cookie надсилається з тими самими параметрами, що й інші cookie, але ви можете змінити їх для нього:
Параметр cookieSamesite
впливає на те, чи надсилається cookie під час міжсайтових запитів, що
забезпечує деякий захист від атак Cross-Site Request Forgery.
Послуги з проведення розслідувань
Ці сервіси додаються до контейнера ІР:
Назва | Тип | Опис |
---|---|---|
http.request |
Nette\Http\Request | HTTP-запит |
http.response |
Nette\Http\Response | HTTP-відповідь |
session.session |
Nette\Http\Session | управління сесіями |