[ Lumen 5.3 文档 ] 更多特性 —— 加密

Lumen

1、配置 在使用Lumen的加密器之前,应该在.env文件中设置APP_KEY选项为32位随机字符串。如果这个值没有被设置,所有Lumen加密过的值都是不安全的。 2、基本使用 加密 你可以使用Crypt门面对数据进行加密,所有加密值都使用OpenSSL和AES-256-CBC密码进行加密。此外,所有加密值都通过一个消息认证码(MAC)来检测对加密字符串的任何修改。 例如,我们可以使用e…

[ Laravel 5.3 文档 ] 安全 —— 哈希(Hashing)

laravel文档

1、简介 Laravel 的 Hash 门面为存储用户密码提供了安全的 Bcrypt 哈希算法。如果你正在使用 Laravel 应用自带的LoginController和RegisterController控制器,它们将会自动在注册和认证时使用该 Bcrypt。 注:Bcrypt 是散列密码的绝佳选择,因为其“工作因子”是可调整的,这意味着随着硬件功能的提升,生成哈希所花费的时间也会增加…

[ Laravel 5.3 文档 ] 安全 —— 加密

laravel文档

1、简介 Laravel的加密器使用OpenSSL来提供AES-256和AES-128加密。强烈建议使用Laravel自带的加密设置,不要尝试推出自己“土生土长”的加密算法。所有Laravel加密过的值都使用消息授权码(MAC)进行签名以便底层值一经加密就不能修改。 2、配置 在使用Laravel的加密器之前,必须在配置文件config/app.php中设置key选项为32位随机字符串。…

[ Laravel 5.3 文档 ] HTTP层 —— CSRF保护

laravel文档

简介 跨站请求伪造是一种通过伪装授权用户的请求来利用授信网站的恶意漏洞。Laravel 使得防止应用遭到跨站请求伪造攻击变得简单。 Laravel 自动为每一个被应用管理的有效用户会话生成一个 CSRF “令牌”,该令牌用于验证授权用户和发起请求者是否是同一个人。 任何时候在 Laravel 应用中定义HTML表单,都需要在表单中引入CSRF令牌字段,这样CSRF保护中间件才能够正常验证…

【最佳实践系列】PHP 开发者如何做好密码保护 & Laravel 底层密码存储和验证实现

cwscrypto-php-hash-password-pbkdf2-bcrypt

随着在线攻击的增多,密码安全越来越重要。作为开发者我们要担负起安全管理、计算哈希和存储用户密码的责任,不管应用是简单的游戏还是绝密商业文件的仓库,都要做到这一点。PHP内置了一些工具,让保护密码变得更加容易,本节我们就来讨论如何根据现代的安全措施来使用这些工具。 1、密码保护三原则 绝对不能知道用户的密码 我们绝对不能知道用户的密码,也不能有获取用户密码的方式,如果应用的数据库被黑,你肯…

【最佳实践系列】PHP 安全三板斧:过滤、验证和转义之转义篇 & Blade模板引擎避免XSS攻击原理探究

PHP安全漫谈

PHP 转义实现 把输出渲染成网页或API响应时,一定要转义输出,这也是一种防护措施,能避免渲染恶意代码,造成XSS攻击,还能防止应用的用户无意中执行恶意代码。 我们可以使用前面提到的htmlentities函数转移输出,该函数的第二个参数一定要使用ENT_QUOTES,让这个函数转义单引号和双引号,而且,还要在第三个参数中指定合适的字符编码(通常是UTF-8),下面的例子演示了如何在渲…

最佳实践系列(四)—— PHP 安全三板斧:过滤、验证和转义之验证篇 & Laravel底层字段验证实现

PHP安全漫谈

2、验证数据 PHP原生实现 验证输入数据也很重要,与过滤不同,验证不会从输入数据中删除信息,而只是确认用户输入是否符合预期。如果输入的是电子邮件地址,则确保用户输入的是电子邮件地址;如果需要的是电话号码,则确保用户输入的是电话号码,这就是验证要做的事儿。 验证是为了保证在应用的存储层保存符合特定格式的正确数据,如果遇到无效数据,要中止数据存储操作,并显示相应的错误信息来提醒用户输入正确…

最佳实践系列(三)—— PHP 安全三板斧:过滤、验证和转义之过滤篇 & Laravel底层SQL注入规避

PHP安全漫谈

我们在开发应用时,一般有个约定:不要信任任何来自不受自己控制的数据源中的数据。例如以下这些外部源: $_GET $_POST $_REQUEST $_COOKIE $argv php://stdin php://input file_get_contents() 远程数据库 远程API 来自客户端的数据 所有这些外部源都可能是攻击媒介,可能会(有意或无意)把恶意数据注入PHP脚本。编写接…

在 Laravel 5 中使用 Purifier 扩展包集成 HTMLPurifier 防止 XSS 跨站攻击

HTML-Purifier

1、安装 HTMLPurifier 是基于 PHP 编写的富文本 HTML 过滤器,通常我们可以使用它来防止 XSS 跨站攻击,更多关于 HTMLPurifier的详情请参考其官网:http://htmlpurifier.org/。Purifier 是在 Laravel 5 中集成 HTMLPurifier 的扩展包,我们可以通过 Composer 来安装这个扩展包: composer …

[ Laravel 5.2 文档 ] 服务 —— 加密

laravel文档

1、配置 在使用Laravel的加密器之前,应该在配置文件config/app.php中设置key选项为32位随机字符串。如果这个值没有被设置,所有Laravel加密过的值都是不安全的。 2、基本使用 2.1 加密 你可以使用Crypt门面对数据进行加密,所有加密值都使用OpenSSL和AES-256-CBC密码进行加密。此外,所有加密值都通过一个消息认证码(MAC)来检测对加密字符串的…