Защита файла cookie веб-формы asp.net не работает - PullRequest
0 голосов
/ 05 сентября 2018

Я хочу обезопасить cookie-файлы, даже если cookie-файл для входа в систему украден, он все равно должен работать,

Я использую членство по умолчанию asp.net в веб-форме .net Framework 4.0 для защиты некоторых страниц на сайте, поэтому только зарегистрированные пользователи могут получить доступ к страницам после того, как они правильно войдут в систему. Но если средний человек украл печенье, он все равно может войти.

Как я могу защитить куки от кражи

Я следовал со своей стороны

  • Я сейчас использую https на сайте
  • Во-вторых, я добавил следующий код в web.config <httpCookies httpOnlyCookies="true" requireSSL="true" />

Даже после получения этого сообщения я смог войти на защищенный веб-сайт, просто добавив имя и значение cookie в другом браузере, фактически не используя форму входа. Если я предпринял два действия выше, то почему мой cookie не зашифрован, так что даже если cookie украден, он не должен работать ... я делаю что-то не так

1 Ответ

0 голосов
/ 05 сентября 2018

В настоящее время вы используете лучшую защиту куки в asp.net. Параметр httpOnlyCookies запрещает любому (возможно, внедренному) JavaScript на вашем сайте доступ к токену, а параметр requireSSL запрещает браузеру отправлять их через соединение, отличное от https.

Это обычно довольно хорошо, так же хорошо или лучше, чем большинство сайтов.

Любой, кто может подключиться через Man-In-the-Middle, или кто-то другой может получить доступ к значению cookie на вашем компьютере, может получить доступ к вашему сайту, но стандартной эффективной защиты от этого нет.

Предположительно, чтобы скопировать cookie-файл, вы обратились к инструментам разработчика и напрямую скопировали значение. Большинство злоумышленников не могут сделать это, не взломав компьютер конечного пользователя, например, с помощью расширения вредоносного браузера. Ваш флаг httpOnly не позволяет им делать это с помощью скрипта.

Аналогичным образом вы могли установить прокси-сервер, например Fiddler, для проверки трафика, или у компании может быть http-прокси, который фильтрует содержимое, но на вашем компьютере будет установлен доверенный сертификат, позволяющий проводить эту проверку. Без него браузер не позволил бы загрузить страницу.

Есть несколько вещей, которые вы можете сделать, чтобы улучшить его, вы можете посмотреть на HSTS , однако, это может иметь серьезные последствия, если вы ошибетесь. TLS 1.3 также содержит дополнительные средства защиты, но он совершенно новый, поэтому его поддержка очень разнообразна.

Любой обычный запрос ajax, направляемый на ваш домен, все равно будет отправлять cookie, но javascript не может получить доступ к содержимому cookie. Аналогично, платформы, в которых используется Fetch API , также можно настроить для отправки учетных данных. Любой сторонний плагин, которому нужно отправить ваш файл cookie для аутентификации в другой домен, делает что-то не так.

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