Laravel 学院文本编辑器及 XSS 攻击防范 —— Markdown 编辑器篇

作为程序员群体,可能更偏爱使用 Markdown 来编辑文本,学院君也是其中的一员,我平时写文章、周报、技术方案和文档基本都是在 MWeb (Mac系统下一款值得推荐的 Markdown 编辑器)中完成,所以学院里自然也不能少了对 Markdown 编辑器的支持,目前学院发布主题支持富文本编辑器和 Markdown 编辑器二选一,发布评论为了简单起见,只支持 Markdown: 和富...

Laravel 学院文本编辑器及 XSS 攻击防范 —— 富文本编辑器 summernote 篇

接下来的几篇教程,学院君想就学院重构过程中用到的一些比较好的工具和扩展包做一些推介。先从编辑器和文本处理开始。 在本次学院重构过程中,一个重要的需求就是加入用户系统,并且让他们参与学院内容创作中来(UGC),那么这就需要为用户提供好的内容编辑器,这里由于老版学院基于 WordPress 构建,之前的内容都是通过富文本编辑器编辑的,那么很自然的,新学院为了兼容之前内容的编辑,就需要提供富文...

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

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

最佳实践系列(三)—— 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 文档 ] 基础 —— Blade 模板引擎

1、简介 Blade 是 Laravel 提供的一个非常简单但很强大的模板引擎,不同于其他流行的 PHP 模板引擎,Blade 在视图中并不约束你使用 PHP 原生代码。所有的 Blade 视图都会被编译成原生 PHP 代码并缓存起来直到被修改,这意味着对应用的性能而言 Blade 基本上是零开销。Blade 视图文件使用 .blade.php 文件扩展并存放在 resources/v...