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防止在同一網絡上攔截私人信息,如會話變量,並使用受害者這些信息來登錄。