我打算在我的网页上使用Markdown syntax.我会在数据库中保留用户输入(原始,没有转义或其他),然后像往常一样打印出来并使用htmlspecialchars()即时逃脱.
这是它的外观:
echo markdown(htmlspecialchars($content));
通过这样做,我可以防止XSS漏洞和Markdown工作.或者,至少,有点工作.
问题是,让我们说,>语法(我认为还有其他情况).
简而言之,引用你做这样的事情:
>这是我的报价.
转义并解析为Markdown之后我得到了这个:
&安培; GT;这是我的报价.
当然,Markdown解析器无法识别& gt;作为“引用的符号”,它不起作用!