Что делать, если ваши пользователи взломаны - PullRequest
4 голосов
/ 22 марта 2012

Недавно в моих файлах журналов наблюдалась тенденция к возникновению проблем с пользовательским агентом «Microsoft URL Control - 6.01.9782».Когда я отслеживаю IP, он приходит из Китая или Индии.Наш веб-сайт очень специфичен для местного населения, поэтому у нас очень мало посетителей из-за пределов города.

Интересно, что новинка заключается в том, что я вижу действительного пользователя, вошедшего в систему через openID.Я предполагаю, что происходит, что файлы cookie компьютеров пользователей клонируются и вирус захватывает сессию.Я использую встроенную проверку подлинности asp.net для обработки своих файлов cookie, и Microsoft не включает никаких проверок IP-адреса или агента пользователя, поэтому я знаю, что могу копировать файлы cookie и подделывать логин.

Я видел обаУчетные записи Google и Facebook входят в систему следующим образом.

Мои вопросы:

A) Существует ли простой способ сделать проверку подлинности asp.net более безопасной?

B) Чтоя должен делать с этими счетами?(лучшие практики) Я не собираю личную информацию и не могу связаться с некоторыми из моих пользователей.

Ответы [ 2 ]

1 голос
/ 23 марта 2012

Вы можете использовать HttpOnly, который запрещает клиентскому скрипту доступ к cookie через свойство document.cookie. Файлы cookie по-прежнему будут передаваться в обе стороны, но будут недоступны для сценариев и не будут украдены.

В ASP.NET 1.1 добавьте в Global.asax следующий код:

protected void Application_EndRequest(Object sender, EventArgs e)
{    
    foreach(string cookie in Response.Cookies)    
    {        
        const string HTTPONLY = ";HttpOnly";        
        string path = Response.Cookies[cookie].Path;       
        if (path.EndsWith(HTTPONLY) == false)       
        {            
            //force HttpOnly to be added to the cookie           
            Response.Cookies[cookie].Path += HTTPONLY;        
        }    
    }
}

С ASP.NET 2.0 и выше вы можете использовать web.config:

<system.web>
    <httpCookies httpOnlyCookies="true" />
</system.web>

Если безопасность является чем-то очень важным в вашей системе, лучшим подходом является инвестирование в SSL (Secure Sockets Layer) соединение с вашим сайтом. Затем вы можете установить свойство cookie, при котором cookie будет передаваться только при наличии SSL-соединения. SSL не защищает файл cookie от чтения или манипулирования им, пока он находится на компьютере пользователя, но он предотвращает чтение файла cookie во время передачи, поскольку файл cookie зашифрован. Этот подход требует получения сертификата SSL.

Это можно сделать в элементе httpcookies web.config.

<system.web>
    <httpCookies requireSSL="true" />
</system.web>

Если соединение не SSL, cookie не отправляется на сервер.

Подробнее:

FAQ по файлам cookie ASP.NET

Проектирование и развертывание защищенных веб-приложений с ASP.NET 2.0 и IIS 6.0

0 голосов
/ 23 марта 2012

Вам нужно подумать о границах безопасности здесь. Если компьютер конечного пользователя скомпрометирован, вы не можете сделать на своем сайте ничего , чтобы быть на 100% уверенными в том, что злоумышленник не может вести себя как этот пользователь. Хорошо спроектированная часть вредоносного ПО может полностью работать как пользователь, видеть все, что видит, и захватывать что угодно, включая пароли, которые они вводят.

ответственная вещь, которую нужно сделать, и на самом деле то, что делают такие сайты, как Google, - это уведомить пользователя о том, что к его аккаунту был получен доступ с подозрительного IP-адреса, и дать ему ссылки на информацию о том, как очистить свой ПК , измените их пароль на всех сайтах (особенно их поставщика электронной почты) и предотвратите кражу личных данных. Вы можете сделать это с помощью пакетного задания, отметив их учетные записи и высветив ярко-красный предупреждающий знак при следующем входе в систему, или даже отправив им электронное письмо, сообщающее им, что случилось.

...