【问题标题】:Can xss attacks bypass InnerText?xss攻击可以绕过InnerText吗?
【发布时间】:2021-11-07 06:46:05
【问题描述】:

我朋友的所有网站 DOM 都使用 innerText 而不是 innerHTML。我尝试了所有可能的方法,但它们都不起作用。 无论如何我可以绕过innerText并使标签像innerHTML标签一样工作吗?

谢谢

【问题讨论】:

  • 不。 innerText 是安全的(尽管 .textContent 的行为更加一致,在大多数情况下应该是首选)
  • 请提供足够的代码,以便其他人更好地理解或重现问题。

标签: javascript html tags xss script


【解决方案1】:

为什么不直接使用 innerHTML 呢?然后使用DOMPurify 清理你的DOM。它发现用户可以添加数据的任何潜在方式,例如 javascript:alert('hacked');并将它们变成普通的 HTML。

DOMPurify 是一个纯 DOM、超快速、超容错的 XSS 清理工具,适用于 HTML、MathML 和 SVG。

看下面的例子:

DOMPurify.sanitize('<img src=x onerror=alert(1)//>'); // becomes <img src="x">

您可以使用 sanitize 方法然后包装您的 html 字段或在本例中为图像以避免 xss

另一个例子,

const html = `<input type="text" name="text" />`;

ELEMENT.innerHTML = DOMPurify.sanitize(html, { // optional configurations // })

因此,如果用户尝试在输入中添加例如图像,例如

DOMpurify 通知图像上的加载并将其从提交中删除

【讨论】:

  • 您的答案可以通过额外的支持信息得到改进。请edit 添加更多详细信息,例如引用或文档,以便其他人可以确认您的答案是正确的。你可以找到更多关于如何写好答案的信息in the help center
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-12-11
  • 2019-03-13
  • 2022-01-08
  • 2011-02-16
  • 1970-01-01
相关资源
最近更新 更多