PHP 安全三板斧(五):过滤、验证和转义之转义篇 & Blade 模板引擎避免 XSS 攻击原理探究

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

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

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

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

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

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

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

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

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