![]() |
1
2
使用Base64编码确实解决了返回注入攻击的直接问题,但它不一定解决了可能存在的注入攻击的问题。例如,此小提琴显示它确实可以防止立即出现的问题: https://jsfiddle.net/9prhkx74/
这不会显示警报框,只会抛出一个关于无效JSON的错误。但如果将其更改为文本字符串,则会显示警报框(注入易受攻击)
现在,如果您立即将其解析为JSON对象,它将爆炸,一切都将“安全”。但是如果你将它赋给一个值,因为你将要传递更多的值等等,你仍然有一个潜在的问题。 我建议在将数据传递回客户端或在服务器端进行处理之前,首先修复它并正确地转义数据,而不是在注射本身上使用bandaid。 有很多图书馆可以帮助我们做到这一点 https://www.npmjs.com/package/sanitize https://www.npmjs.com/package/express-sanitizer 这里有一篇相当不错的文章,重点介绍了为什么必须进行清理,而不仅仅是修补潜在的恶意数据: https://lockmedown.com/5-steps-handling-untrusted-node-js-data/ |
![]() |
Softly · 单选按钮未按预期取值 1 年前 |
|
SlickRed · 我无法使用JS关注HTML元素 1 年前 |
![]() |
assembler · Nextjs没有处理发布请求 1 年前 |
|
BADRUM · 执行两个获取功能后,如何导航回页面? 1 年前 |
![]() |
Toniq · javascript为php保存多维数组 1 年前 |