接上一篇编辑器的使用,自己尝试着写了一段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>
看起来一点问题也没有对不对!!
然而当渲染的时候缺弹出了一个框框······
查看代码发现变成了整个样子
阅读全文
假期写代码,整理一些关于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>
...
阅读全文