为了安全起见,我在客户端使用 Google Caja 来清理 HTML。但是,不同元素的样式与我在消毒之前收到的样式不同。我需要保留标签中的内容,并且我正在尝试弄清楚如何。
例如,我收到以下 HTML:
<div>
<style>
.btn-active {
background-color: green;
}
</style>
<script> alert('Blah');</script>
<a class="btn-active"></a>
</div>
并html_sanitize(bodyHtml, urlX, idX);
返回:
<div>
<a class="btn-active"></a>
</div>
理想情况下,我想保持样式标签与其他所有内容相同。像这样。
<div>
<style>
.btn-active {
background-color: green;
}
</style>
<a class="btn-active"></a>
</div>
我一直在尝试到处寻找解决方案,但我做不到。我还查看了文档,实施了自定义策略,但即便如此我也无法控制脚本标签被删除。
有没有办法用 Google Caja 做到这一点?