Bảo mật là một trong những tính năng quan trọng nhất trong việc xây dựng ứng dụng web. Nó cho người dùng thấy được dữ liệu của họ đang được an toàn khi truy cập vào web. Laravel cung cấp rất nhiều cơ chế để bảo vệ website. Một vài tính năng như sau:
- Lưu trữ mật khẩu – Laravel cung cấp một lớp gọi là “Hash”, lớp này cung cấp việc bảo vệ Bcrypt. Mật khẩu có thể được lưu trữ thao cách sau:
1
|
$password = Hash::make(‘secret’);
|
- Chức năng make() sẽ tạo giá trị như một đối số và trả về các giá trị đã được lưu trữ. Giá trị đã được lưu trữ có thể được kiểm tra bằng chức năng check() theo cách sau:
1
|
Hash::check(‘secret’, $hashedPassword)
|
Chức năng trên sẽ trả về giá trị Boolean. Nó sẽ trả về true nếu như pass trùng khớp và false nếu không trùng.
>>> Xem full Series về Laravel Framework <<<
- Xác nhận người dùng – Một trong những chức năng bảo mật khác của Laravel đó là “authenticate” người dùng và thực hiện một vài hành động. Laravel đã tạo ra tác vụ này cực dễ dàng và để thực hiện, ta có thể dùng phương thức Auth::attempt theo cách sau:
1
2
3
|
if (Auth::attempt(array(’email’ => $email, ‘password’ => $password))) {
return Redirect::intended(‘home’);
}
|
Phương thức Auth::attempt sẽ lấy những thông tin như là đối số và xác nhận nó với những thông tin đó ngược lại với các thông tin được lưu trữ trong cơ sở dữ liệu và trả về giá trị True nếu như trùng khớp và False nếu ngược lại.
- CSRF Protection/Cross-site request forgery (XSS) − Cross-site scripting (XSS) các cuộc tấn công xảy ra khi kẻ tấn công có thể ở phía người dùng JavaScript trong một trang đang được xem bởi những người dùng khác. Để tránh những loại tấn công này, bạn không bao giờ nên tin tưởng bất kỳ dữ liệu người dùng gửi hoặc phải thoát khỏi bất kì một yếu tố nào gây nguy hiểm. Bạn nên ưu tiên cho các cú pháp hai dấu ngoặc ({{$ value}}) trong các mẫu Blade của bạn, và chỉ sử dụng cú pháp {!! $ Value !!}, nơi mà bạn chắc chắn dữ liệu an toàn để hiển thị trong định dạng thô của nó.
- Tránh SQL injection − Việc xâm nhập SQL tồn tại khi một ứng dụng chưa được lọc áp dụng tùy tiện vào người dùng trong một truy vấn SQL. Theo mặc định, Laravel sẽ bảo vệ bạn chống lại kiểu tấn công này cho cả query builder và người dùng PDO sau đó. PDO sử dụng các câu lệnh đã cho sẵn để cho phép bạn có thể vượt qua một cách an toàn và bảo vệ mọi thông số mà không cần phải thoát ra và dọn dẹp chúng.
- Cookies – Hệ thống bảo mật mặc định – Laravel khiến mọi thứ như tạo, đọc, xóa cookies với lớp Cookie của nó. Trong Laravel tất cả các cookie đều được tự động đăng nhập và mã hóa. Điều này có nghĩa rằng nếu chúng được giả mạo, Laravel sẽ tự động loại bỏ chúng. Điều này cũng có nghĩa là bạn sẽ không thể đọc chúng từ phía khách hàng sử dụng JavaScript.
- Bắt buộc dùng HTTPS khi trao đổi các dữ liệu nhạy cảm − HTTPS Ngăn chặn những kẻ tấn công từ cùng một mạng lưới để đánh chặn hết các thông tin như là các biến trong phiên, và đăng nhập như là một đối tượng.
Lời khuyên từ Vietpro: Hãy thông thạo kiến thức PHP cơ bản trước khi quyết định học Laravel Framework.