【问题标题】:How to sanitze the row data in the slick-grid?如何清理 slickgrid 中的行数据?
【发布时间】:2023-04-02 10:59:01
【问题描述】:
我们正在使用 slick-grid 在 angularJS 中显示我们应用程序中的数据,我们有来自后端的数据可能包含<,>,它以“&lt;&gt;”的形式发送。这需要在光滑的网格中进行清理,因为由于我们拥有的数据大小,我无法在控制器中执行此操作。那么我们如何在光滑网格中使用 show &lt;&gt; as 呢?有什么办法吗?
通常在其他地方如果我使用ng-bind-html=value 将使&lt;&gt; 变为 在 span 或 div 中。无法在光滑网格数据行中执行此操作。
【问题讨论】:
标签:
angularjs
slickgrid
sanitization
ng-bind-html
html-sanitizing
【解决方案1】:
您可以使用自定义格式化程序做任何您想做的事情,您可以在其中取消转义,但默认情况下格式化程序采用 html 字符串,因此只需声明格式化程序并返回值即可解决您的问题。
this.columnDefinitions = [
{ id: 'test', field: 'test', formatter: (row, cell, value) => value, },
];
顺便说一句,我认为您的意思不是 Sanitize,因为那是另一个概念(通常 sanitize 用于删除可能打开安全漏洞的脚本标签),在您的情况下,我认为您的意思是取消转义或取消编码 html 特殊字符作为常规 html。目前自定义格式化程序的 SlickGrid 中没有清理,所以也请注意...实际上最后一句话不再正确,我创建了一个 Pull Request 合并并发布以添加基本清理以限制 XSS 攻击。