用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
	提交
		取消
	