按教程配置好 HTMLPurifier 后不能过滤<script>标签?

return [
    'encoding'      => 'UTF-8',
    'finalize'      => true,
    'cachePath'     => storage_path('app/purifier'),
    'cacheFileMode' => 0755,
    'settings'      => [
        'user_topic_body' => [
            'HTML.Doctype'             => 'XHTML 1.0 Transitional',
            'HTML.Allowed'             => 'div,b,strong,i,em,a[href|title],ul,ol,ol[start],li,p[style],br,span[style],img[width|height|alt|src],*[style|class],pre,hr,code,h2,h3,h4,h5,h6,blockquote,del,table,thead,tbody,tr,th,td',
            'CSS.AllowedProperties'    => 'font,font-size,font-weight,font-style,margin,width,height,font-family,text-decoration,padding-left,color,background-color,text-align',
            'AutoFormat.AutoParagraph' => true,
            'AutoFormat.RemoveEmpty'   => true,
        ],
    ],
];
class TopicObserver
{
    public function saving(Topic $topic)
    {
        $topic->body = clean($topic->body, 'user_topic_body');

        $topic->excerpt = make_excerpt($topic->body);
    }
}

file
数据库存入的是转义后的内容
file
而且注释掉simditor相关js文件也没有发生变化

《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
leo
最佳答案

很明显你这个代码并不存在威胁,因为 <> 已经被转义了

6年前 评论
讨论数量: 9

注意你的编辑器在按 Ctrl + / 注释 create_and_edit.blade.php 文件中的代码的时候可能是 <!-- -->,需要手动改成 {{-- --}} 才能注释成功。

5年前 评论
leo

很明显你这个代码并不存在威胁,因为 <> 已经被转义了

6年前 评论

@leo 谢谢,因为看教程是整个标签和里面的内容一起过滤掉的,还以为没生效

6年前 评论

注意你的编辑器在按 Ctrl + / 注释 create_and_edit.blade.php 文件中的代码的时候可能是 <!-- -->,需要手动改成 {{-- --}} 才能注释成功。

5年前 评论

@LiLiKiLL 怪不得有时注释掉的js代码也会运行 谢谢提醒

5年前 评论

file
我今天测试也出现一样的问题,转义功能这章上半节已经实现,至于 htmlpurifier 的过滤功能并未实现,每次重做项目都会发现新问题,只要自己勤于测试。

5年前 评论

测试XSS的时候, 前端先不要用 Simditor 编辑器, 就用单纯的 <textarea>.

因为 Simditor 默认会自动帮你转义 <script> 之类的文本.

5年前 评论

观察器需要注册。config\AppserverProvider.php注册

5年前 评论

我也碰到同样的问题了,谢谢前人的指导,的确是注释 出的问题。

4年前 评论

注释问题 已解决 感谢

4年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!