RegEx:HTML白名单

Der*_*k H 1 regex

由于对正则表达式的弱点,我一直在与他们合作改进.我一直试图做的一个概念是删除除允许列表之外的所有HTML元素.

我设法做了相反的事情 - 删除指定的元素列表:

<\/?(strong|em|a)[^>]*>
Run Code Online (Sandbox Code Playgroud)

但是我想要相反,并删除每个元素.

bob*_*nce 5

不要使用正则表达式来解析[X] HTML.

特别是绝对不要使用正则表达式来解析[X] HTML作为安全措施.

HTML解析器(或整数后跟XML解析器)是唯一可行的白名单方法.

/<(.|\n)*?>/g匹配所有HTML标记对,包括标记中的属性

没有.

<a href=">" onmouseover="attackCode()">
Run Code Online (Sandbox Code Playgroud)

还有其他一千种可能性,无论是有效的还是畸形的,但浏览器仍然可以理解它.