用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...}这么做虽然说是解决了,但是可能不是最完美的解决方案,还请各位大大继续提供更好的方案~
添加回答
举报
0/150
提交
取消