Лучший способ защитить данные PHP + MYSQL [закрыто]
-
23-08-2019 - |
Вопрос
Я создаю приложение, которое будет хранить некоторые данные наших клиентов, такие вещи, как имена пользователей / пароли, информацию, которую нам нужно запомнить и сохранить в безопасности.
Каков наилучший способ безопасного хранения этой информации?
Решение
Такой открытый вопрос, в котором не так много подробностей для продолжения.Я бы посоветовал прочитать превосходную книгу Криса Шифлетта "Необходимая безопасность PHP" прежде чем ты пойдешь дальше.Оно короткое, по существу и очень практичное.
Также разумное количество советов доступно на веб-сайте книги по адресу http://phpsecurity.org/
Другие советы
У Devlounge есть очень хорошая статья о безопасности.
Использование PHP-фреймворка для обеспечения безопасности
Если вы хотите быстро настроить безопасность PHP, не проводя много исследований, фреймворк PHP был бы хорошей идеей.
Я фанат Инициатор кодирования но другие варианты включают в себя КакеФФП и Зенд.
Использование фреймворка для обеспечения безопасности будет означать, что вы сразу получите испытанный метод, однако для изучения фреймворка может потребоваться некоторое время и усилия.
В общей сложности список фреймворков PHP можно найти в википедии.
На самом деле довольно просто.Настройте быструю базу данных MySQL и пользовательскую таблицу.В этой таблице пользователей сохраните имена пользователей в столбце, а хэшированную версию пароля - в другом столбце.
В качестве дополнительной безопасности мне нравится генерировать случайную строку из 8 символов и сохранять ее также в каждой строке - я называю этот столбец "Keycode".Когда пользователь входит в систему с правильным именем пользователя / паролем, я сохраняю его аутентификацию в переменных сеанса, а также соответствующий "Код ключа".
Таким образом, сеансовая аутентификация может не только искать правильное имя пользователя / пароль, но и быстро запрашивать базу данных и проверять, совпадает ли "Код ключа", хранящийся в переменной сеанса, с кодом ключа в строке.
Это работает хорошо, потому что даже пользователь не знает свой код ключа.
Что касается паролей, вы должны хранить хэш пароля.Всякий раз, когда вы аутентифицируете пользователя, вы хэшируете введенный им пароль и сравниваете результат с тем, что вы сохранили.Таким образом, вы не сохраняете фактический пароль.