# Cookies Hacking {{#include ../../banners/hacktricks-training.md}} ## Cookie Attributes Cookies мають кілька атрибутів, які контролюють їх поведінку в браузері користувача. Ось огляд цих атрибутів у більш пасивному стилі: ### Expires and Max-Age Дата закінчення терміну дії cookie визначається атрибутом `Expires`. Натомість атрибут `Max-age` визначає час у секундах, протягом якого cookie буде видалено. **Вибирайте `Max-age`, оскільки це відображає більш сучасні практики.** ### Domain Хости, які отримують cookie, вказуються атрибутом `Domain`. За замовчуванням це встановлено на хост, який видав cookie, не включаючи його піддомени. Однак, коли атрибут `Domain` явно встановлений, він охоплює також піддомени. Це робить специфікацію атрибута `Domain` менш обмежувальним варіантом, корисним для сценаріїв, де необхідно ділитися cookie між піддоменами. Наприклад, встановлення `Domain=mozilla.org` робить cookie доступними на його піддоменах, таких як `developer.mozilla.org`. ### Path Конкретний URL шлях, який повинен бути присутнім у запитуваному URL, щоб заголовок `Cookie` був надісланий, вказується атрибутом `Path`. Цей атрибут розглядає символ `/` як роздільник директорій, що дозволяє відповідності в підкаталогах. ### Ordering Rules Коли два cookie мають однакову назву, вибір того, який буде надіслано, базується на: - Cookie, що відповідає найдовшому шляху в запитуваному URL. - Найновішому встановленому cookie, якщо шляхи ідентичні. ### SameSite - Атрибут `SameSite` визначає, чи надсилаються cookie на запити, що походять з доменів третіх сторін. Він пропонує три налаштування: - **Strict**: Обмежує надсилання cookie на запити з третіх сторін. - **Lax**: Дозволяє надсилати cookie з GET запитами, ініційованими веб-сайтами третіх сторін. - **None**: Дозволяє надсилати cookie з будь-якого домену третьої сторони. Пам'ятайте, що під час налаштування cookie розуміння цих атрибутів може допомогти забезпечити їх очікувану поведінку в різних сценаріях. | **Request Type** | **Example Code** | **Cookies Sent When** | | ---------------- | ---------------------------------- | --------------------- | | Link | \\ | NotSet\*, Lax, None | | Prerender | \ | NotSet\*, Lax, None | | Form GET | \