当前位置:首页 > 修改聊天记录 > 正文内容

前端安全的输入验证和输出转义最佳实践

前端安全:输入验证 + 输出转义 最佳实践(全网最清晰)

这是前端面试必问、业务必守的安全准则,能直接防御:
XSS 攻击、SQL 注入、命令注入、CSRF、非法数据入侵。
我给你整理成能直接背、能直接用的最佳实践。

一、输入验证(Input Validation)最佳实践

1. 永远不要信任用户输入!

前端所有输入都可被篡改,前端验证只是体验,后端必须二次验证

2. 使用白名单校验(拒绝黑名单)

只允许合法内容,拒绝一切可疑内容
  • 手机号:/^1[3-9]\d{9}$/

  • 邮箱:标准正则

  • 用户名:只允许中文、字母、数字、下划线

  • 禁止输入:< > ' " \ / & * % 等特殊字符

3. 长度限制

所有输入框加最大长度,防止超长攻击、溢出攻击。

4. 数据类型强校验

  • 数字必须是数字

  • 日期必须是日期格式

  • 禁止字符串注入数字字段

5. 禁止直接拼接用户输入到 SQL / HTML / 请求头

这是最危险的行为!

6. 文件上传严格验证

  • 检查文件类型(MIME + 后缀)

  • 检查文件大小

  • 文件重命名存储

  • 上传目录不可执行

7. 框架自带验证优先使用

  • Vue:VeeValidate / Element 校验

  • React:Formik / Yup

  • 原生:HTML5 required pattern

8. 敏感关键词过滤

禁止:script iframe javascript onload onerror alert

二、输出转义(Output Escaping)最佳实践

核心:用户输入渲染到页面时必须转义!
防止 XSS 攻击。

1. HTML 转义(最重要)

把特殊字符转成安全实体:
  • <&lt;

  • >&gt;

  • "&quot;

  • '&#39;

  • &&amp;

2. 不要使用危险 API

禁止:
  • innerHTML

  • document.write

  • v-html(Vue)

  • dangerouslySetInnerHTML(React)

必须用时,必须先转义

3. JS 上下文转义

渲染到 JavaScript 变量时,转义:\ ' " \n \r

4. URL 转义

使用:encodeURIComponent()

5. CSS 转义

过滤:(){}*% 防止 CSS 注入

6. 框架默认安全机制

Vue、React 默认插值表达式是安全的,会自动转义。
危险的是 v-htmldangerouslySetInnerHTML

7. 第三方转义库(推荐)

  • DOMPurify 最安全(XSS 终极防御)


三、前端安全黄金口诀(背会)

  1. 用户输入不可信

  2. 前端验证是体验,后端验证才是安全

  3. 白名单校验,长度限制,类型强校验

  4. 输出必须转义,禁止直接渲染 HTML

  5. 不用 innerHTML、v-html、document.write

  6. 文件上传必须校验类型、大小、重命名

  7. 防御 XSS = 输入过滤 + 输出转义 + 安全渲染


四、极简总结(面试满分答案)

输入验证最佳实践

  1. 不信任任何用户输入,前后端双重校验

  2. 使用白名单规则,限制长度、类型、格式

  3. 过滤特殊字符与敏感关键词

  4. 文件上传严格校验

输出转义最佳实践

  1. 渲染到页面前必须 HTML 转义特殊字符

  2. 禁止使用危险的 HTML 插入 API

  3. 框架默认插值安全,慎用富文本渲染

  4. 使用 DOMPurify 做 XSS 过滤


扫描二维码推送至手机访问。

版权声明:本文由手机数据加工厂发布,如需转载请注明出处。

本文链接:https://www.gaijilu.com/?id=169

“前端安全的输入验证和输出转义最佳实践” 的相关文章

怎么修改搞笑的微信聊天记录的时间与内容,赶快看看这三种最有效的方法

怎么修改搞笑的微信聊天记录的时间与内容,赶快看看这三种最有效的方法

在日常生活中微信是使用越来越普遍的一款手机软件,如果想要修改微信聊天记录上的显示的时间或内容该如何实现呢?有一下几种方法供你参考,记得收藏。文字工具如果你只是要发一张聊天记录的截图给别人,那你截图后,在电脑上用图片编辑软件,先将真实聊天时间进行擦除,再用添加文字工具,添加上假的聊天时间就可以了。修改...

修改聊天记录效果展示

这个视频是通过软件剪辑合成的,只是表明是这种效果,实际操作远比这个复杂,且过程中没有这么快捷,有一些准备工作,比方说手机的设置等,手机设置完成连接网络后,可能需要5-10分钟。全新一代定制手机,支持通过远程方式修改和添加定制手机内任意类型的聊天记录。功能仅限于对定制手机上登录的微信账号进行操作,且仅...

以win10系统为例关闭病毒威胁及防火墙

以win10系统为例关闭病毒威胁及防火墙

关闭病毒威胁及防火墙,按下列步骤流程操作。第1步。在桌面点下图“开始”按钮第2步。在向上弹窗点“齿轮”按钮,然后进入控制面板第3步。在控制面板中点“更新和安全”按钮第4步。安全和中心点“病毒和威胁防护”按钮第5步。病毒和威胁防护“管理设置”按钮第6步。管理设置关闭“实时保护”按钮第7步。点左侧的防火...

云空间不够用?解决办法

一、清理无用数据(最快见效)删除重复照片、模糊截图、过期视频、无用录屏,这类文件占用空间最大。清理软件缓存、垃圾文件、过期安装包、压缩包。删掉不再需要的聊天记录、旧文件、离线缓存内容。二、本地备份,释放云端空间用电脑有线连接手机,把照片、视频、大文件批量保存到电脑硬盘。重要资料存电脑本地,不用全部上...

 有哪些适合手机电脑数据同步的免费工具?

有哪些适合手机电脑数据同步的免费工具?

一、局域网高速互传(同 Wi‑Fi,最快、最稳、隐私好)1. LocalSend(强烈推荐,替代 AirDrop / 华为分享)平台:Windows /macOS/ Linux / Android /iOS免费:完全开源免费,无广告、无账号、不限大小特点:同 Wi‑Fi 下自动发现设备,一键发送点对...

如何关闭手机、电脑的云同步功能

如何关闭手机、电脑的云同步功能

下面分手机(iOS / 安卓主流品牌)和电脑(Windows/Mac),一步步教你关闭云同步(可选择性关,也可全关),以及关闭后如何防止数据被自动恢复 / 覆盖。一、苹果手机(iPhone/iPad):关闭 iCloud 同步1)选择性关闭(推荐:只关照片 / 文档,保留联系人等)打开 设置 → 点...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。