Open Bistard opened 1 month ago
I asked the author of marked
, and the reply is here.
After the proposal gets updated, the HTML escaping process will be moved out of the tokenizer from the marked
. So that we can handle the HTML escaping process on our own.
我简单了解了一下为什么需要HTML Escaping这个过程:
因为它防止行内代码被当作实际的HTML或JavaScript执行,避免潜在的安全隐患如跨站脚本攻击 (XSS)。例如,若用户在行内代码中输入
<script>alert('XSS');</script>
,没有escaping时,浏览器会执行这个脚本,触发弹窗,造成攻击风险。但通过HTML escaping,将<
转义为<
,代码会显示为文本,避免执行。因此,escaping保护了用户的安全,防止恶意代码执行。
不过在我们的案例中, 并不需要担心此问题. 因为我们在使用prosemirror
来进行富文本渲染. 每个tokenizer产出的token都会被按照不同类型在prosemirror进行渲染, 而不是直接交给浏览器让它自动渲染. 因此在上述案例中的<script>alert('XSS');</script>
在没有HTML escaping的情况下, 也会被当作普通文本处理.
Describe the bug Characters like
&
,<
,>
will always get escaping and displays weird text.Screenshots The original text should be
<h1>
but it actually get rendered as