Laravel安全


安全性在設計Web應用程式是非常重要的特性。它確保了網站的使用者資料的安全。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程式碼放頁面在其他使用者檢視的頁面時,跨站點指令碼(XSS)攻擊發生。 為了避免這種攻擊,千萬不要相信任何使用者提交的資料並跳脫任何危險的字元。在Blade模板應該使用雙括號語法({{$value}}),

    如果使用 {!! $value !!} 語法,資料會其原始格式來顯示所以一定是安全的。
  • 避免SQL隱碼攻擊- SQL隱碼攻擊漏洞當應用程式插入任意和未經過濾的使用者輸入的SQL查詢時存在的。預設情況下,Laravel會保護免受這種型別的攻擊,因為在後台查詢生成器使用PHP資料物件(PDO)類。 PDO使用prepared語句,它允許您安全地傳遞任何引數,而無需跳脫它們。

  • Cookies - 預設情況下安全 ? Laravel使用Cookie類使得它很容易建立,讀取和過期的cookies。在Laravel所有的Cookie是自動簽名和加密。這意味著,如果它們被篡改,Laravel將自動丟棄它們。這也表示你將不能夠從用戶端使用 JavaScript 讀取。

  • 交換敏感資料時強制HTTPS ? HTTPS防止在同一網路上攔截私人資訊,如對談變數,並使用受害者這些資訊來登入。