Атрибуты secure и httponly не содержат значений и играют роль флагов. Сookie с атрибутом secure будет отправляться браузером только при посещении зашифрованных HTTPS-сайтов, а httponly (глава 7) сделает куки недоступным для скриптовых языков.
Атрибуты expires и max-age сообщают браузеру время уничтожения куки. expires содержит «срок годности»
куки (например, expires=Wed, 18 Dec 2019 12:00:00 UTC), а max-age определяет количество секунд, остающихся до уничтожения куки; он представлен целым числом (max-age=300).
Куки (cookie) — это небольшие файлы, которые веб-сайты создают и хранят в браузере пользователя. Они нужны, например, для хранения пользовательских настроек или истории посещений. Их атрибуты представляют собой стандартизованные значения, которые описывают сами куки и правила работы с ними. С атрибутами domain, expires, max-age, secure и httponly вы познакомитесь в этой главе. Помимо этого, в куки может храниться пара
ключ — значение, состоящая из идентификатора и связанной с ним информации, которая передается веб-сайту, выбранному атрибутом domain
При уязвимости к межсайтовой подделке запросов (cross-site request forgery, или CSRF) злоумышленник заставляет браузер жертвы послать HTTP-запрос другому веб-сайту, чтобы тот выполнил действие, исходя из доверия отправителю запроса. Обычно для этого нужно, чтобы жертва была аутентифицирована на атакуемом сайте. В случае успеха CSRF-атаки злоумышленник получает возможность изменить информацию на серверной стороне или даже захватить учетную запись жертвы.
Если веб-сайт принимает какой-то контент, взаимодействует с другими веб-сервисами и генерирует публикуемый
текст на основе текущего URL-адреса, значит, потенциально он содержит уязвимости.
Отсутствие надлежащих проверок безопасности делает сайт уязвимым к засорению HTTP-параметров.
Серверное HPP может произойти, если для выполнения денежных переводов на веб-сайте банк принимает пара
параметры URL-адреса (например, from, to и amount), которые затем обрабатываются на его серверах. То есть, если нужно перевести 5000 долларов со счета 12345 на счет 67890, URL-адрес будет выглядеть так:
https://www.bank.com/transfer?from=12345&to=67890&amount=5000
Банк рассчитывает получить один параметр from. Но что, если он получит два, как показано ниже:
https://www.bank.com/transfer?from=12345&to=67890&amount=5000&from=ABCDEF
Вводя дополнительный параметр from со счетом отправителя ABCDEF, злоумышленник надеется, что приложение проверит корректность перевода по первому параметру from, но деньги снимет со второго.
у. Например, PHP и Apache используют последнее значение, Apache Tomcat берет первый параметр, ASP и IIS учитывают все значения и т.д.
