我知道Bleach会获取一个ALLOWED_TAGS
列表,并在执行clean()
时去掉该列表中没有的任何标签。
有没有办法扭转这种局面,并根据那些被定义为不允许的标签剥离标签?换句话说,首先假设所有内容都是允许的,然后去掉任何不允许的标签。
例如,如果存在DISALLOWED_TAGS
设置,则该列表中的任何内容都将被剥离。然而,我不知道有这样的选择。
我曾想过将ALLOWED_TAGS
设置为一个函数(ALLOWED_ATTRIBUTES
允许(,但它似乎只接受一个列表。
我同样感兴趣的是ALLOWED_STYLES
是否可以做到这一点。
我只是从理论的角度来看待这个问题,而不是它是否真的是最佳实践。
不,特别是对于Bleach,没有办法,将来也不会支持它。页面上第一个带有项目目标的条目说Bleach将。。。
始终采用允许的基于列表的方法
Bleach应该始终采用允许的基于列表的方法进行标记筛选。指定不允许的列表很容易出错,而且不适合将来使用。
例如,您应该选择允许onclick属性,而不是选择退出所有其他on*属性。HTML的未来版本可能会添加新的事件处理程序,比如ontouch,而旧的disallow不会阻止它。