发布时间:2026/8/24 17:36:52
frontend-tips 前端安全要点:parseInt 基数、新标签页链接与严格相等的4个隐藏陷阱 frontend-tips 前端安全要点parseInt 基数、新标签页链接与严格相等的4个隐藏陷阱【免费下载链接】frontend-tipsSuper tiny, quick tips, tricks and best practices of front-end development项目地址: https://gitcode.com/gh_mirrors/fr/frontend-tipsfrontend-tips是一个收录了 170 条简洁技巧的前端最佳实践合集覆盖 JavaScript、HTML 与 CSS。本文从中精选4 个容易被忽视的前端安全陷阱parseInt未传基数、新标签页链接缺少relnoopener、未用严格相等比较。这些小问题可能让数字变得面目全非、页面被恶意劫持或让错误逻辑悄悄通过。 陷阱 1parseInt 不传基数 → 字符串可能被当八进制解析parseInt(value, radix)接收两个参数第二个就是基数进制的基。如果不传JS 引擎会自动猜以0x/0X开头 → 按16 进制十六进制解析其他情况 → 按10 进制十进制解析在旧版 JavaScript 中以0开头的字符串 → 按8 进制八进制解析不同版本、不同浏览器的推断规则并不一致同样的代码在不同设备上可能得到不同结果。解法很简单——始终显式传入基数parseInt(0xF); // 15自动推断为十六进制 parseInt(0xF, 16); // ✅ 15明确指定十六进制 这一陷阱在项目中的完整说明见 always-pass-the-radix-to-parseint.mdx。️ 陷阱 2强行指定错误基数会静默返回 0更隐蔽的坑是传入的基数与字符串不匹配时parseInt不会报错而是安静地返回 0。parseInt(0xF, 10); // 0 —— 按十进制解析时x 不是合法数字这种静默失败比报错更危险业务逻辑会带着 0 继续往下跑bug 极难定位。关联技巧想把整串完整转为数字可用一元运算符参见 convert-string-to-number.mdx解析前先去除空格否则parseInt(12 345)只会得到 12参见 trim-the-spaces-before-parsing-a-number.mdx️ 陷阱 3target_blank 不加 relnoopener → 链接劫持用target_blank在新标签页打开链接时若不补充安全属性新标签页能通过window.opener访问原页面的window对象。恶意新页面可以这样做window.opener.location http://fake-website.example;这会把你的原始标签页重定向到一个假网站。如果假站 UI 与真站一模一样用户很可能毫无察觉地继续操作甚至输入账号密码——这就是经典的**反向标签钓鱼reverse tabnabbing**攻击。解决给链接加上relnoopener。更强的写法是relnoreferrer它除了修复上述安全问题还会阻止浏览器向新页面发送 Referer 头。!-- ❌ 不要这样写 -- a target_blank链接/a !-- ✅ 正确写法 -- a target_blank relnoopener链接/a部分现代浏览器Chrome 88会自动补充noopener行为但为了兼容旧浏览器仍建议手动写上该属性。详细说明见 always-use-noopener-or-noreferrer-for-links-opened-in-new-tabs.mdx。⚖️ 陷阱 4 不写 → 隐式类型转换比较变量时请始终使用严格相等运算符而不是宽松相等的。后者会先做类型转换再比较结果往往反直觉0 false; // true 0 ; // true 0 []; // true 0 false; // false ✅只比较值 类型不会发生任何转换意外。原理与更多示例见 use-the-strict-equality-operator-when-comparing-variables.mdx。✅ 快速自查三秒核对表场景❌ 不要✅ 应该字符串转数字parseInt(0xF)parseInt(0xF, 16)新标签页链接target_blanktarget_blank relnoopener变量比较a ba b这四个陷阱有一个共同点它们不报错只是悄悄给出错误结果。写代码时把假设显式声明出来传基数、写全属性、用严格相等就是最实用的前端安全实践。更多技巧可浏览项目的 README.md。【免费下载链接】frontend-tipsSuper tiny, quick tips, tricks and best practices of front-end development项目地址: https://gitcode.com/gh_mirrors/fr/frontend-tips创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

2026/8/24 17:36:52

C++模板编程:泛化与特化的核心原理与实战应用

1. 模板、泛化、特化:C元编程的基石与实战拆解 干了这么多年C,我发现一个挺有意思的现象:很多朋友能把STL里的 vector 、 map 用得飞起,各种算法信手拈来,但一被问到“模板特化怎么写”、“偏特化用在哪儿”&#…

2026/8/24 17:36:52

BlueDoc GraphQL API参考:文档、评论与目录接口完全说明

BlueDoc GraphQL API参考:文档、评论与目录接口完全说明 【免费下载链接】bluedoc An open-source document management tool for enterprise self host. 项目地址: https://gitcode.com/gh_mirrors/bl/bluedoc BlueDoc 是一款面向企业的开源自托管文档管理工…

2026/8/24 22:09:00

低级失误 —— 产品生命周期管理系统之八

随着项目的深入,设计在不停的推进和修改,工程师会建立很多文件夹,为了留底和备份,有些文件夹里保存着旧版本的资料。当需要文件时,大家总是默认要使用最新版本的,因为旧版本肯定是因为有些问题才会被修改从…

2026/8/24 22:09:00

用 Dembrandt 从任意网站提取设计系统的设计令牌

用 Dembrandt 从任意网站提取设计系统的设计令牌 【免费下载链接】dembrandt Extract any website’s design system into tokens in seconds: logo, colors, typography, borders & more. One command. 项目地址: https://gitcode.com/gh_mirrors/de/dembrandt Dem…

2026/8/24 22:09:00

6U VPX电源模块设计:从LLC拓扑到数字电源管理的工程实践

1. 项目概述:深入理解6U VPX电源模块在嵌入式计算、雷达信号处理、高端测试测量这些对可靠性和功率密度要求极高的领域,电源系统从来都不是配角,而是决定整个系统能否稳定运行的基石。最近,一个名为“基于6U VPX的700W/1400W电源产…

2026/8/24 22:09:00

Android TTS无声问题全链路排查与实战修复指南

1. 问题现象与排查起点:当TTS突然“失声”在Android应用开发中,集成系统原生的TextToSpeech(TTS)引擎来实现文本朗读,本应是一件相对简单的事情。官方API设计得足够友好,几行代码就能让应用“开口说话”。然…

2026/8/24 0:07:22

[光学原理与应用-521]:对光的错误理解与纠偏

首先光是一种能量的载体和形态,宏观上观察到的光是由无数个微观的光量子组成的,每个光子在产生的瞬间,其在真空的空间中以确定不变的速度沿着一个初始的方向一直向前,在微观层面,每个光量子的运动轨迹是以波函数所展现…

2026/8/24 1:12:32

SIP通话转接原理与REFER方法实战解析

1. 通话转接不是“挂断再拨号”,而是SIP会话的动态重定向你有没有遇到过这样的场景:客服坐席A正在和客户通电话,突然需要把这通对话无缝转给专家坐席B,客户完全感知不到中间的断连——既没听到忙音,也没被要求重新拨号…

2026/8/24 8:17:29

Kolla-ansible单节点OpenStack部署实战:从环境准备到排坑指南

1. 为什么选择Kolla-ansible来部署单节点OpenStack?如果你正在寻找一种能把OpenStack从“概念”快速变成“可用的实验环境”的方法,那么Kolla-ansible几乎是当前最主流、最省心的选择。我见过太多人卡在手动编译依赖、配置服务、处理版本冲突的泥潭里&am…

2026/8/24 1:09:25

3条命令跑通LocalAI:无GPU本地AI引擎部署

3条命令跑通LocalAI:无GPU本地AI引擎部署 【免费下载链接】LocalAI LocalAI is the open-source AI engine. Run any model - LLMs, vision, voice, image, video - on any hardware. No GPU required. 项目地址: https://gitcode.com/GitHub_Trending/lo/LocalAI…

2026/8/24 1:09:25

AI推理性能测试怎么做:MLPerf Inference完整上手指南

AI推理性能测试怎么做:MLPerf Inference完整上手指南 【免费下载链接】inference Reference implementations of MLPerf inference benchmarks 项目地址: https://gitcode.com/gh_mirrors/inf/inference 同一个模型换一张卡,速度快多少你知道吗&a…

2026/8/24 13:42:17

实测才敢推 AI论文网站 2026最新测评与推荐

2026年真正好用的AI论文网站,核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测,千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队,覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。一、综…

2026/8/24 18:13:48

2026必备!AI论文网站测评:最新推荐与深度对比

2026年真正好用的AI论文网站,核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测,千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队,覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。 一、…

2026/8/23 4:22:01

摆脱论文困扰!盘点2026年全网爆红的的AI论文写作工具

一天写完毕业论文在2026年已不再是天方夜谭。2026年最炸裂、实测能大幅提速的AI论文写作工具,覆盖选题构思、文献整理、内容生成、格式排版等核心场景,真正帮你高效搞定论文难题。 一、全流程王者:一站式搞定论文全链路(一天定稿首…