编辑器带来的XSS漏洞问题解决方案

接上一篇编辑器的使用,自己尝试着写了一段js代码,本以为laravel的 {{ $item }} 渲染可以完美的避免 XSS 的攻击(确实可以避免),但是由于 Editor 生成的时候,重新渲染了一遍,导致了可能出现的XSS漏洞。 可以看到,Editor已经帮助我们做了html的编码,于是我觉得不需要进行二次编码,就直接存到了数据库里,并且直接在前端进行了渲染。 Controller $res = Notification::updateById($notice_id, [ 'content' => $content, 'title' => $title, 'fileName' => $file_name, 'filePath' => $file_path ]); view <textarea id="editor" name="editor" rows="10" cols="80"> {{ $notice['content'] }} </textarea> 看起来一点问题也没有对不对!! 然而当渲染的时候缺弹出了一个框框······ 查看代码发现变成了整个样子     阅读全文
Liebes's avatar
Liebes 7月 11, 2017

Trumbowyg 轻量级的 WYSIWYG 编辑器(附带 Laravel 文件上传)

假期写代码,整理一些关于Editor,文件上传相关的东西。 editor 文件上传(Laravel) Trumbowyg Editor Trumbowyg 是一款轻量级的编辑器,可以高度DIY,界面也很简洁。 官方网站:Trumbowyg 首先下载官方包,在官网可以直接下载。 目录结构如下: 其中只需要留下 dist 文件夹即可,其余的是文档,例子,直接删除即可。 使用方法很简单,在 view 界面引用相关的 css 文件与 js 文件,这里默认已经引用了Jquery <link rel="stylesheet" href="/Trumbowyg/dist/ui/trumbowyg.min.css"> <script src="/Trumbowyg/dist/trumbowyg.js"></script> 同时需要创建一个 textarea 作为 editor 的容器 <textarea id="editor" name="editor" rows="10" cols="80"></textarea> 接下来就可以使用Trumbowyg 创建一个编辑器出来 <script> ...     阅读全文
Liebes's avatar
Liebes 7月 10, 2017