alt
关于是否需要对用户生成的 HTML 属性(例如图像的属性)进行编码、“转义”或“清理”它们,似乎有许多公认的答案。
我想知道:如果我为 img 元素呈现用户生成的 alt 属性,我应该如何对它们进行编码(如果有的话),我应该同时编码和清理吗?我应该消毒和逃跑吗?
如果我知道任何字符都有可能显示我应该如何处理这个用户生成的字符串,然后再将其设置为 alt 属性?
alt
关于是否需要对用户生成的 HTML 属性(例如图像的属性)进行编码、“转义”或“清理”它们,似乎有许多公认的答案。
我想知道:如果我为 img 元素呈现用户生成的 alt 属性,我应该如何对它们进行编码(如果有的话),我应该同时编码和清理吗?我应该消毒和逃跑吗?
如果我知道任何字符都有可能显示我应该如何处理这个用户生成的字符串,然后再将其设置为 alt 属性?
我正在使用 React.js 生成标记,在该标记中,这个用户生成的字符串被用作 img 标记的 alt 属性
假设您的意思是您有以下内容:
<img alt={this.props.alt} />
......那么不,你不需要做任何事情。React 适用于 DOM。您没有生成 HTML 源代码,因此数据中的特殊字符不能用于通过 XSS 漏洞注入 JavaScript。
需要进行消毒,因此显示字符串没有问题。如果您将 alt 属性存储在数据库中,那么您绝对应该转义该字符串。