Проверка подлинности формы безопасности - PullRequest
2 голосов
/ 15 сентября 2009

Я использую VSTS 2008 + C # + .Net 3.5 + IIS 7.0 + ASP.Net. В моем понимании проверки подлинности с помощью форм переменная сеанса (используемая для идентификатора проверки подлинности - то есть когда пользователь прошел проверку подлинности, у пользователя будет такая переменная сеанса, а переменная сеанса реализована в виде файла cookie) устанавливается для прошедшего проверку пользователя. 1001 *

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

Если это угроза безопасности, то мы должны все время использовать https при проверке подлинности с помощью форм?

спасибо заранее, George

Ответы [ 5 ]

3 голосов
/ 15 сентября 2009

Идентификатор сеанса пользователя: , а не , используемый как часть куки-файла аутентификации - куки-файл аутентификации и куки-файл сессии являются отдельными. Таким образом, если части вашего веб-сайта требуют аутентификации, то для входа в систему недостаточно идентификатора сеанса.

Сказав, что, если хакер отслеживает трафик, он также увидит куки-файл аутентификации и может воссоздать оба.

2 голосов
/ 15 сентября 2009

Да, идентификатор сеанса может быть украден путем перехвата трафика, поэтому существует риск безопасности, связанный с использованием сеанса для идентификации. Обычно он считается достаточно безопасным для некритических сайтов, но если у вас есть сайт с критической безопасностью (банковские операции и т. Д.), Вам нужно использовать SSL, чтобы быть достаточно безопасным.

2 голосов
/ 15 сентября 2009

У меня были похожие проблемы в связи с запросом одного из наших партнеров ... (Подробнее см .: https://stackoverflow.com/questions/1367574/rewriting-urls-using-reverse-proxy)

Как оказалось, этот "законный" процесс на самом деле использует метод взлома, называемый "средний человек". Технически он притворяется пользователем, сохраняя идентификатор куки в своем собственном контексте сеанса при работе с сервером, и сохраняет спарат для клиентского компьютера.

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


Достаточно забавно в этой статье службы поддержки Microsoft http://support.microsoft.com/kb/910443 выражение заставляет вас верить, что оно фактически одинаково для каждого запроса ...

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

Файл cookie может быть зашифрован с использованием шифрования 3DES. Это можно включить, установив для атрибута защиты значение Проверка раздела аутентификации файла web.config. Используя этот параметр, сервер проверяет данные в файле cookie для каждой транзакции. Это добавляет немного накладных расходов, хотя ...

2 голосов
/ 15 сентября 2009

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

0 голосов
/ 07 августа 2012

Да! Просто убедитесь, что добавили: requireSSL = "true" в тэг формы web.config

<authentication mode="Forms">
    <forms loginUrl="~/Account/LogOn" timeout="2880" requireSSL="true" />
  </authentication>

Затем вы также можете использовать некоторую перезапись, чтобы убедиться, что https используется на страницах или в каталогах, требующих аутентификации. В MVC вы можете использовать атрибут фильтра [RequireHttps].

      <rewriteMap name="SSL_Required_pages" defaultValue="">
        <add key="/simulacao-seguro-automovel.aspx" value="/simulacao-seguro-automovel.aspx" />
      </rewriteMap>
      <rule name="Enforce SSL pages">
        <match url="(.*)" />
        <conditions>
          <add input="{SSL_Required_pages:{HTTP_URL}}" pattern="(.+)" />
          <add input="{HTTPS}" pattern="off" />
          <add input="{HTTP_HOST}" pattern="mysite\.com" />
        </conditions>
        <action type="Redirect" url="https://mysite.com/{R:1}" redirectType="Permanent" />
      </rule>
      <rule name="Enforce SSL to secure directories">
        <match url="(.*)" />
        <conditions>
          <add input="{PATH_INFO}" pattern="^/admin/|^/admin|^/fale-conosco/|^/fale-conosco" />
          <add input="{HTTPS}" pattern="off" />
          <add input="{HTTP_HOST}" pattern="mysite\.com" />
        </conditions>
        <action type="Redirect" url="https://www.mysite.com/{R:1}" redirectType="Permanent" />
      </rule>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...