Я пытаюсь написать веб-сайт с учетными записями пользователей. Существует не так много конфиденциальной информации, кроме пароля и адреса электронной почты. Но я не совсем понимаю, что я делаю; Я как бы взламываю его, когда иду. Есть ли что-нибудь, что я должен иметь в виду в отношении безопасности или любых других важных деталей?
Вам следует:
Рекомендуемое чтение:
Руководство по безопасности PHP
Сарфраз Ахмед поднял хорошие ресурсы для чтения. Вы также можете использовать класс PHP для аутентификации пользователей, их много. Я сам создал проект под названием userFlex на sourceForge http://uflex.sourceforge.net
userFlex имеет приличную документацию, и он делает больше, чем просто пользователей входа; это регистрация и проверка поля, сбрасывание пароля, коды подтверждения для регистрации, обработка сеансов и многое другое, как автолог.
Снова им просто поместив userFlex в качестве примера, вы также можете посмотреть http://www.phpclasses.org/browse/file/5269.html или много других хороших классов на PHPclasses.org .
Используйте функцию JanRain Engage (ранее rpxnow.com) для аутентификации. Их решение позволяет пользователям использовать свои учетные данные из Google, Yahoo, Microsoft, Facebook и других, чтобы войти в ваш сайт. Многие из этих провайдеров будут предоставлять действительный OpenID и часто действительный адрес электронной почты в качестве части процесса аутентификации.
Если вы используете JanRain, вам нужно только сохранить адрес электронной почты или OpenID для пользователя, и вам не нужно хранить пароли или хэши паролей . Кроме того, вам не нужно выполнять какие-либо функции сброса пароля или «забыть пароль». Кроме того, ваша функция регистрации пользователей может быть намного меньше, потому что вы начинаете ее с действительного адреса электронной почты или OpenID, предоставленного его владельцем.
Связь между вашим приложением и JanRain аутентифицирована и зашифрована, поэтому все это хорошо и безопасно.
Вы ДОЛЖНЫ использовать функцию MD5 php для паролей. Простой способ обеспечить его безопасность. Также убедитесь, что вы используете strip_tags в php, чтобы кто-то не мог выполнять команды в ваших вводах. Поскольку нет никаких чувствительных данных, я не думаю, что вам нужно зашифровать что угодно. Просто убедитесь, что система входа в систему идеальна, и у пользователя нет другого способа доступа к данным без входа в систему.
Shud достаточно для базового сценария входа.