JavaScript如何防止代码注入攻击?

admin 百科 14
JavaScript无法直接防止代码注入,核心是禁止执行不可信字符串:禁用eval()、Function()、setTimeout(string)等;插入HTML时用textContent或DOMPurify转义;JSON解析用JSON.parse()而非eval;启用CSP禁用'unsafe-eval'和'unsafe-inline'。

JavaScript如何防止代码注入攻击?-第1张图片-佛山资讯网

JavaScript本身不能直接防止代码注入攻击,关键在于不执行不可信的字符串作为代码。常见错误是用eval()Function()setTimeout(string)setInterval(string)动态运行用户输入的内容。

避免动态执行字符串代码

这是最核心的防护原则。任何来自用户、URL参数、表单、API响应或本地存储的数据,都不能直接传给以下函数:

  • eval()
  • new Function(...)
  • setTimeout(string, ...)setInterval(string, ...)
  • document.write()(尤其拼接用户数据时)

例如,不要这样写:

❌ 错误示例

const userInput = 'alert("xss")';
eval(userInput); // 危险!

登录后复制

安全处理HTML和DOM插入

向页面插入用户内容时,必须防止XSS(跨站脚本)——本质也是一种代码注入。

立即学习“Java免费学习笔记(深入)”;

标签: javascript java html js 前端 json app 后端

发布评论 0条评论)

还木有评论哦,快来抢沙发吧~