Purifier防止xss攻击,img标签里的style属性会被默认过滤的问题

问题重现,过滤以下img标签的时候

"<img class="img-fluid" src="/storage/uploads/abc.jpeg" alt="abc.jpeg" style="width: 25%;">\n"

  • 过滤后如下
    <p><img class="img-fluid" src="/storage/uploads/abc.jpeg" alt="abc.jpeg">\n</p>

这样的话就会导致前段渲染图片的时候会丢失样式导致图片显示问题,解决办法如下(注意CSS.AllowedProperties里添加了width,max-width)

 'default' => [
            'HTML.Doctype'             => 'HTML 4.01 Transitional',
            //HTML.Allowed 新增 img[style]
            'HTML.Allowed'             => 'div,b,strong,i,em,u,a[title],ul,ol,li,p[style],br,span[style],img[width|height|alt|src|style],video[width|height|src]',
            // CSS.AllowedProperties 新增 width,max-width
            'CSS.AllowedProperties'    => 'font,font-size,font-weight,font-style,font-family,text-decoration,padding-left,color,background-color,text-align,width,max-width',
            'AutoFormat.AutoParagraph' => false,
            'AutoFormat.RemoveEmpty'   => true,
            // 新增下边这两个
            'HTML.MaxImgLength'        => NULL,
            'CSS.MaxImgLength'         => NULL,
        ],

这样就ok了,点我查看参考资料