首页 > 解决方案 > 无论payload在哪里注入,我不应该遵循基于OWASP DOM的XSS建议吗?

问题描述

我在各种情况下听说/读到基于 DOM 的 XSS 是由不受信任的客户端输入引起的,开发人员需要遵循 OWASP“基于 DOM 的 XSS 预防备忘单”中的说明来缓解它。

我的问题是:如果您要插入不受信任的数据,那么无论恶意负载注入的位置(客户端可以来自 URL 等 DOM 元素,或者服务器端可以来自前一个请求的参数),是否都应该使用本指南进入javascript执行上下文?

让我们先搁置在后一种情况下是否将其称为基于 DOM 的 XSS 的争论,因为我更想知道是否应该应用本指南,而不管有效负载来自何处(服务器/客户端),如果您正在放置执行上下文中的不可信数据。

标签: javascripthtmldomxss

解决方案


作为一般规则,您永远不应该将未经处理的用户输入放在您网站的任何位置。你不应该显示它,你不应该用它来形成任何查询,你当然不应该包含它。用户或第三方在任何地方输入任何形式的数据,您都应该对其进行清理,并问自己:

这怎么可能被恶意使用?

SQL 注入是一个值得关注的问题,当然 XSS 也是一个大问题,正如您所提到的。XSS 正在注入代码,然后将其输出,当然 SQLi 正在使用输入来形成 SQL 查询,这可能是灾难性的。当然,还有很多其他的攻击不是基于注入并且不依赖于用户输入,而只是彻底清理所有内容以避免以后出现任何问题。

希望能回答你的问题,有点难以理解你在问什么。


推荐阅读