px普贤教程PuXian
普贤教程 › 包参考

htmlsanitizer 包

HTML 清洗 / XSS 防护

项值
包名htmlsanitizer
版本0.2.0
可用版本0.1.0 / 0.2.0
入口htmlsanitizer.px
分类认证与安全
文件数 / 行数1 / 440

安装与引入

bash
pxpkg init          # 首次
pxpkg add htmlsanitizer@0.2.0
pxpkg install
px
import htmlsanitizer
所属分类教程:认证与安全

公开接口

函数参数
hs_escapetext
hs_encode_attrtext
hs_unescapetext
hs_remove_commentstext
hs_remove_scriptstext
hs_remove_stylestext
hs_strip_tagstext, allowed = []
hs_url_probeurl
hs_is_safe_urlurl
hs_clean_urlurl
hs_strip_attrstext, banned = []
hs_sanitizetext, options = {}
其余 12 个 def(内部与辅助,可直接调用但不属稳定接口)
函数参数
hs_replace_alltext, old, new
hs_to_lowers
hs_is_spacec
hs_find_chars, ch, start
hs_find_strs, sub, start
hs_remove_tag_contenttext, tag
hs_extract_tag_namecontent
hs_is_attr_bannedname, banned
hs_entity_charent
hs_url_schemeurl
hs_value_hazardvalue, banned
hs_rebuild_taginner, banned

包内说明(源码头注释)

text
============================================================
普贤生态库:registry/htmlsanitizer — HTML 清洗 / XSS 防护
------------------------------------------------------------
纯函数库,双模式一致。

实现要点:
- 标签按结构解析:取标签名、逐个解析属性(引号值 / 无引号值 / 布尔属性),
命中黑名单的属性整条丢掉,其余原样重建 —— 不再有 "=" 残渣。
- URL 判定先归一化(去空白与控制字符、解 &#NN; / &#xNN; / : 实体)再看协议。
- 未闭合的 <script> 只丢开标签,不再吞掉剩余文档。
- hs_sanitize 支持更多选项(见函数注释)。

公开函数:
hs_escape / hs_unescape / hs_encode_attr
hs_strip_tags(text, allowed)
hs_strip_attrs(text, banned)        ← 结构化解析
hs_remove_scripts / hs_remove_styles / hs_remove_comments
hs_is_safe_url / hs_clean_url / hs_url_probe
hs_sanitize(text, options)
============================================================