03
Ноя
2017

Laravel — Функции безопасности

Laravel — Функции безопасности

От автора: безопасность является важным аспектом при разработке веб-приложений. Разработчики должны обеспечить защиту данных пользователей. Поэтому в Laravel функции безопасности очень важны. Они предоставляют собой различные механизмы для защиты веб-сайта. Ниже перечислены некоторые из них.

Хранение паролей — Laravel предоставляет класс с именем «Hash», который обеспечивает безопасное кэширование Bcrypt. Пароль может быть закэширован следующим образом.

$password = Hash::make('secret');

Функция make() принимает значение в качестве аргумента и возвращает хешированное значение. Хешированное значение можно проверить с помощью функции check() следующим образом.

Hash::check('secret', $hashedPassword)

Вышеуказанная функция возвращает логическое значение. Если пароль совпадает, возвращается true, в противном случае — false.

Аутентификация пользователей. Еще одна основная функция безопасности в Laravel — аутентификация пользователя и выполнение определенных действий. Laravel позволяет выполнить эту задачу значительно проще, для этого мы можем использовать метод Auth::attempt следующим образом.

if (Auth::attempt(array('email' => $email, 'password' => $password))) {
  return Redirect::intended('home');
}

Метод Auth::attempt принимает в качестве аргумента учетные данные и сравнивает их с учетными данными хранящимися в базе данных. Если данные совпадают, возвращается true, в противном случае — false.

Защита от CSRF (межсайтовой подделки запроса)/XSS кросс-сайтового скриптинга — атаки с использованием кросс-сайтового скриптинга осуществляются, когда злоумышленник имеет возможность разместить код JavaScript на стороне клиента на странице, просматриваемой другими пользователями. Чтобы защититься от подобного типа атак, вы всегда должны проверять пользовательские данные и не допускать добавления опасных сигнатур. В шаблонах Blade следует использовать синтаксис двойной привязки ({{$value}}), {!!$value!!} следует применять, когда вы уверены, что данные безопасны для отображения без обработки.

Противодействие SQL-инъекциям — уязвимость к SQL-инъекциям связана с вставкой нефильтрованных произвольных данных пользователя в SQL-запрос. По умолчанию Laravel защищает вас от такого типа атак, поскольку и конструктор запросов, и Eloquent используют класс объектов данных PHP (PDO). PDO использует подготовленные операторы, которые позволяют безопасно передавать любые параметры без необходимости их удаления и санации.

Cookies — безопасны по умолчанию — Laravel позволяет просто создавать, читать и отключать файлы cookie с помощью класса Cookie. В Laravel все файлы cookie автоматически подписываются и шифруются. Это означает, что если они будут подделаны, Laravel автоматически отвергнет их. Это также означает, что вы не сможете считать их на стороне клиента с помощью JavaScript.

Принудительное использование HTTPS при обмене конфиденциальными данными — HTTPS блокирует перехват злоумышленникам в одной сети конфиденциальной информации, такой как переменные сеанса, и регистрацию с ее помощью от имени жертвы.

Источник: https://www.tutorialspoint.com/

Редакция: Команда webformyself.

Share

Тебе может это понравится...