Что я должен знать о домене cookie и области действия в целях безопасности? - PullRequest
3 голосов
/ 15 апреля 2011

Где я могу узнать (или что есть) об области применения cookie, чтобы избежать атак CSRF и XSS для аутентифицированных пользователей?

Например, если у меня мультитенантная система, где один пользователь может иметь доступ к одному или нескольким сайтам, что более безопасно:

  • company1.hoster.com
  • company2.hoster.com
  • company3.hoster.com

или

  • www.hoster.com / Company1
  • www.hoster.com / Общества2
  • www.hoster.com / company3

Что произойдет, если я установлю файл cookie на "hoster.com"?

Ответы [ 2 ]

3 голосов
/ 29 апреля 2011

Вы можете ограничить область действия cookie в домене и пути отдельно.Таким образом, вы можете установить cookie в обоих сценариях, которые действительны только для этой конкретной комбинации домен / путь:

  1. Чтобы установить cookie только для //company1.example.com/:

    Set-Cookie: name=value; Path=/
    

    Пропуск атрибута Domain делает файл cookie действительным только для домена, в котором он был установлен. А с Path=/ файл cookie действителен для любого пути с префиксом /.

  2. Чтобы установить cookie только для //example.com/company1/:

    Set-Cookie: name=value; Path=/company1/
    

    То же объяснение, что и в примере выше.Единственное ограничение заключается в том, что вам нужно использовать /company1/ вместо /company1, поскольку Path=/company1 будет эквивалентно Path=/ и, следовательно, сделает cookie также действительным для /company2 и /company3.

    * 1032.*

И чтобы куки не могли быть прочитаны с помощью JavaScript (сокращая ресурсы, доступные с помощью XSS), установите атрибут HttpOnly .

0 голосов
/ 29 апреля 2011

Проект защиты открытых веб-приложений публикует много ценной информации о разработке безопасных веб-приложений.

Файлы cookie имеют атрибуты области действия и пути, обычно вы не хотите выпускать файлы cookie для "/" или хостов с подстановочными знаками * .hoster.com может быть опрометчивым.

Это не так просто, как это решение, хорошо, что вы думали о безопасности в своем дизайне, но безопасность - это процесс на каждом этапе вашего развития.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...