Laravel — Функції безпеки

16

Від автора: безпека є важливим аспектом при розробці веб-додатків. Розробники повинні забезпечити захист даних користувачів. Тому в Laravel функції безпеки дуже важливі. Вони надають собою різні механізми для захисту веб-сайту. Нижче перераховані деякі з них.

Зберігання паролів — Laravel надає клас з ім’ям «Hash», який забезпечує безпечне кешування Bcrypt. Пароль може бути закешований наступним чином.

$password = Hash::make(‘secret’);

Функція make() приймає значення як аргумент і повертає хешированное значення. Хешированное значення можна перевірити за допомогою функції check() наступним чином.

Hash::check(‘secret’, $hashedPassword)

Дана функція повертає логічне значення. Якщо пароль співпадає, повертається true, інакше — false.

Аутентифікація користувачів. Ще одна основна функція безпеки в Laravel — аутентифікація користувача та виконання певних дій. Laravel дозволяє виконати це завдання значно простіше, для цього ми можемо використовувати метод Аутентифікації::attempt наступним чином.

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

Метод Автентифікації::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 блокує перехоплення зловмисниками в мережі конфіденційної інформації, такої як змінні сеансу, та реєстрацію з її допомогою від імені жертви.