【发布时间】:2014-10-13 13:07:26
【问题描述】:
我正在使用http://caja.appspot.com/html-css-sanitizer-minified.js 清理用户 html,但在某些情况下,我想将使用的标签限制为白名单。
我找到了https://code.google.com/p/google-caja/wiki/CajaWhitelists,它描述了如何定义白名单,但我不知道如何将其传递给 html-css-sanitizer-minified.js 提供的 html_sanitize 方法
我试过调用 html.sanitizeWithPolicy(the_html, white_list);但我得到一个错误:
TypeError: a is not a function
由于缩小而难以调试,但似乎 html-css-sanitizer-minified.js 不包含 html-sanitizer.js 文件中的所有内容。
我尝试使用 html-sanitizer.js 与 cssparser.js 结合而不是缩小版本,但在调用它之前出现错误,大概是因为我缺少其他依赖项。
我怎样才能做到这一点?
编辑:sanitizeWithPolicy 确实存在于缩小文件中,但在此过程中进一步缺少某些内容。这表明此文件不能与自定义白名单一起使用。我现在正在调查是否有可能找出我需要包含哪些未缩小的文件来制作我自己的版本。
Edit2:我缺少两个文件 https://code.google.com/p/google-caja/source/browse/trunk/src/com/google/caja/plugin/html4-defs.js?spec=svn1950&r=1950 和 https://code.google.com/p/google-caja/source/browse/trunk/src/com/google/caja/plugin/uri.js?r=5170
但是我现在收到一个错误,因为 sanitizeWithPolicy 需要一个函数而不是白名单对象。此外,html4-defs.js 文件非常旧,根据this,我必须构建 caja 项目才能获得更新的项目。
【问题讨论】: