为了账号安全,请及时绑定邮箱和手机立即绑定

Parsedown 解析 Markdown 过滤 XSS 时应如何处理 html 转义

Parsedown 解析 Markdown 过滤 XSS 时应如何处理 html 转义

回首忆惘然 2019-04-16 16:58:47
用Parsedown对Markdown进行解析的时候,遇到了一些XSS过滤方面的问题。发现Parsedown会对代码区域内的html代码进行转义,代码区域外的却不进行转义,如以下代码所示PHP
查看完整描述

2 回答

?
湖上湖

TA贡献2003条经验 获得超2个赞

刚刚把Parsedown源码里所有(共三处)转义用的语句(如下所示)给注释掉,
PHP$text=htmlspecialchars($text,ENT_NOQUOTES,'UTF-8');
这句出现在了以下三个方法中:protectedfunctionblockCodeComplete($Block)、protectedfunctionblockFencedCodeComplete($Block)、protectedfunctioninlineCode($Excerpt)
然后再修改一下functiontext($text):
functiontext($text)
{
#添加下面这行
$text=htmlspecialchars($text,ENT_NOQUOTES,'UTF-8');
#Code...
}
这么做虽然说是解决了,但是可能不是最完美的解决方案,还请各位大大继续提供更好的方案~
                            
查看完整回答
反对 回复 2019-04-16
?
叮当猫咪

TA贡献1776条经验 获得超12个赞

我也遇到这个问题了,后来发现,只要把代码块外面的写成即可,这样就会转换成文字了。
                            
查看完整回答
反对 回复 2019-04-16
  • 2 回答
  • 0 关注
  • 783 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信