javascript - 无论payload在哪里注入,我不应该遵循基于OWASP DOM的XSS建议吗?
问题描述
我在各种情况下听说/读到基于 DOM 的 XSS 是由不受信任的客户端输入引起的,开发人员需要遵循 OWASP“基于 DOM 的 XSS 预防备忘单”中的说明来缓解它。
我的问题是:如果您要插入不受信任的数据,那么无论恶意负载注入的位置(客户端可以来自 URL 等 DOM 元素,或者服务器端可以来自前一个请求的参数),是否都应该使用本指南进入javascript执行上下文?
让我们先搁置在后一种情况下是否将其称为基于 DOM 的 XSS 的争论,因为我更想知道是否应该应用本指南,而不管有效负载来自何处(服务器/客户端),如果您正在放置执行上下文中的不可信数据。
解决方案
作为一般规则,您永远不应该将未经处理的用户输入放在您网站的任何位置。你不应该显示它,你不应该用它来形成任何查询,你当然不应该包含它。用户或第三方在任何地方输入任何形式的数据,您都应该对其进行清理,并问自己:
这怎么可能被恶意使用?
SQL 注入是一个值得关注的问题,当然 XSS 也是一个大问题,正如您所提到的。XSS 正在注入代码,然后将其输出,当然 SQLi 正在使用输入来形成 SQL 查询,这可能是灾难性的。当然,还有很多其他的攻击不是基于注入并且不依赖于用户输入,而只是彻底清理所有内容以避免以后出现任何问题。
希望能回答你的问题,有点难以理解你在问什么。
推荐阅读
- svg - VueJs 不显示 SVG
- python - 在 Django 中,如何创建可重用的接收器函数?
- angular - 如何在 Angular 中使用嵌套的休息资源?
- python - 如何创建新实体并使用它在我的测试数据中查找实体?如何使我的标记化工作?
- java - Java + Android Jetpack + Dagger 2 在 ViewModel 中注入
- macos - 对 macOS 系统库的符号化调用?
- javascript - 更新 mongo db 文档中另一个数组内的嵌套数组字段
- python - 通过 pod 访问 kubernetes python api
- node.js - Node.js Streams:有没有办法将 fs 写入流转换或包装成 Transform 流?
- excel - Excel - NotBlank 中的公式