Laravel – Bảo mật

Laravel cung cấp nhiều cơ chế bảo mật dữ liệu khác nhau nhằm bảo vệ dữ liệu người dùng. Một số trong những cơ chế đó là:

Lưu trữ password

Laravel Hash facade cung cấp phương thức bảo mật BcryptArgon2 cho việc lưu trữ password user.
Nếu bạn sử dụng class LoginControllerRegisterController, nó sẽ sử dụng Bcrypt trong việc đăng ký và xác thực.

Để thay đổi phương thức bảo mật bạn vào config\hashing.php thay đổi giá trị driver (Ví dụ: ‘driver’ => ‘argon’,)

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

function make() sẽ trả về giá trị hash từ tham số truyền vào. Giá trị này có thế sử dụng function check() để so sánh với một tham số.

Hash::check('password', $hashedPassword);

check() sẽ trả về true hoặc false nếu mã hash đúng với giá trị tham số.

Auth::attempt : phương thức attempt sẽ so sánh các cập key/value với giá trị lưu trữ trong bảng user database.

$email = 'admin@gmail.com';
$password = '123456';
if (Auth::attempt(array('email' => $email, 'password' => $password))) {
return Redirect::intended('home');
}

Nếu tồn tại email admin@gmail.com mà mã hash password trong database sẽ trả về true.

CSRF Protection/Cross-site request forgery (XSS)

Mặc định, Laravel sử dụng token để ngăn chặn CSRF.

SQL injection

Mặc định, Laravel sẽ bảo vệ chống lại tấn công SQL injection cả query builderEloquent dùng PHP Data Objects (PDO) class.

Cookies

Laravel có thể tạo, đọc, và xóa cookies với class Cookie một cách đơn giản. Tất cả cookie được tự động đăng ký và mã hóa để ngăn giả mạo.

Bắt buộc dùng HTTPS cho dữ liệu nhạy cảm

HTTPS bảo vệ dữ liệu session, thông tin… trong cùng một mạng.