2013-08-03 47 views

回答

8

該軟件包看起來並不是最新的 - 實際的清理文件至少有三年(根據git時間戳)。我不會推薦使用該版本。

不幸的是,目前沒有消毒劑的參數,只是提供一個備用白名單。 (有此可能會在未來改變的原因,但是這並沒有發生。)

  • 最直接的方法來修改內置白名單是獲得卡哈源代碼樹,修改src/com/google/caja/lang/html/*-whitelist.json和重建($ ant);與您發現的相同形式的消毒劑是建在ant-lib/com/google/caja/plugin/html-sanitizer-bundle.js

  • 您還可以使用標記策略直接自定義行爲。與其說sanitize(html)的,使用sanitizeWithPolicy

    var basicPolicy = html.makeTagPolicy(); 
    function customPolicy(tagName, attribs) { 
        if (/* whatever additional condition you want */) { 
         return basicPolicy(tagName, attribs); 
        } 
    } 
    
    ... 
    
    return html.sanitizeWithPolicy(input, customPolicy); 
    

    然而,這需要你,而你的編程所需的限制比使用現有的白名單中的邏輯與現有數據。它對未來對消毒劑API的可能更改也更爲敏感。

相關問題