存储密码 − laravel提供了一个名为“hash”类来提供安全bcrypt散列。密码可以通过以下方式散列。
$password = hash::make('secret');
make() 函数将使用一个值作为参数,将返回其哈希值。散列值可以用check()函数进行检查如下所示。
hash::check('secret', $hashedpassword)
认证用户-在laravel其他主要安全功能是验证用户和执行某些操作。laravel使得此任务更容易,要做到这一点可以通过使用auth::attempt()方法。
if (auth::attempt(array('email' => $email, 'password' => $password))) { return redirect::intended('home'); }
csrf保护/跨站请求伪造 (xss) − 攻击者把客户端的javascript代码放页面在其他用户查看的页面时,跨站点脚本(xss)攻击发生。 为了避免这种攻击,千万不要相信任何用户提交的数据并转义任何危险的字符。在blade模板应该使用双括号语法({{$value}}),
避免sql注入- sql注入漏洞当应用程序插入任意和未经过滤的用户输入的sql查询时存在的。默认情况下,laravel会保护免受这种类型的攻击,因为在后台查询生成器使用php数据对象(pdo)类。 pdo使用prepared语句,它允许您安全地传递任何参数,而无需转义它们。
cookies - 默认情况下安全 − laravel使用cookie类使得它很容易创建,读取和过期的cookies。在laravel所有的cookie是自动签名和加密。这意味着,如果它们被篡改,laravel将自动丢弃它们。这也表示你将不能够从客户端使用 javascript 读取。
交换敏感数据时强制https − https防止在同一网络上拦截私人信息,如会话变量,并使用受害者这些信息来登录。