Я знаю, что этот вопрос задан много раз, но у меня немного другое отношение к нему. Это вопрос из двух частей.Автоматическая безопасность входа в систему с PHP, как и почему
Во-первых, я внедряю автоматический логин, и я хотел бы знать, где в моем рабочем процессе есть какие-либо дыры.
Во-вторых, я не понимаю, как хакер использовал информацию, которую они украли, чтобы скомпрометировать систему.
Первая часть, вот мой рабочий процесс, какие части уязвимы. Вот несколько вещей, которые могут или не могут быть полезными, я использую PHP 5.6.21. Я буду использовать их новый хэш-API, который использует новейшую технологию хэширования и автоматически солит ее. Я использую архитектуру MVC, поэтому почти все, кроме моего фронтального контроллера и личных активов, находится за пределами корня веб-сервера.
журналы член в и выбирает авто Логин CheckBox
печенье с хэш-значением, которое соответствует хэш-значения в таблице членов, записывается в их браузере. Файл cookie доступен только из каталога участников на сервере, который находится за пределами корневого каталога. Также устанавливается атрибут httpOnly.
В следующий раз, когда участник входит в систему, есть проверка, чтобы увидеть, существует ли этот файл cookie, если он использует значение хэша в качестве ключа для поиска члена в таблице-члене.
Если они найдены, войдите в систему. Если файл cookie установлен, но соответствующая запись не найдена, тогда возможно, что cookie был подделан. В этом случае создайте новый автоматический логин входа в базу данных и удалите файл cookie в браузере участников. Затем заставьте их войти в систему вручную. Если они снова выбирают автоматический логин, он возвращается к шагу 1, на этот раз используя новый хеш.
Таким образом, его довольно прямолинейно, и никакие пользовательские данные не хранятся в файле cookie, просто бессмысленный хеш.
Вторая часть моего вопроса является более общей. Предположим, что хакер каким-то образом компрометирует автоматический файл cookie для входа и получает код. Что они могут с этим сделать? Как они могут использовать это для компрометации моей системы?
В случае SQL Injection я понимаю, что дамп данных может быть возможен, и хакер может получить представление только для вашей базы данных. В этом случае необходимо иметь хэшированные и соленые пароли! Они могут запускать эти хэши через свои злые машины и, возможно, получить ваши учетные данные.
Я читал специальную бумагу о том, почему важно принимать все эти меры. Он продолжал говорить, что если хакер получит доступ к вашей базе данных ... Но, если хакер получает доступ к вашей базе данных (с привилегиями на запись), ничто из этого не имеет значения, потому что вы ввернуты независимо от того, насколько сильны ваши хэши.
Спасибо за ваше время!
Я принимаю все сообщения в части 1 через HTTPS? – Ray
Я предполагаю, что ваш логин полностью находится под защищенной оболочкой и что сам файл cookie доступен только через HTTPS - в противном случае передача данных cookie не зашифрована между клиентом и сервером, и файл cookie может быть перехвачен (например, если он используется в общедоступной точке доступа Wi-Fi). – CD001
Я не думаю, что этот вопрос не в тему, * но * вы можете получить более качественные ответы на http://security.stackexchange.com/. –