<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>浏览器的安全性 on Last Stand</title><link>https://amatsuzero.github.io/LastStand/tags/%E6%B5%8F%E8%A7%88%E5%99%A8%E7%9A%84%E5%AE%89%E5%85%A8%E6%80%A7/</link><description>Recent content in 浏览器的安全性 on Last Stand</description><generator>Hugo</generator><language>zh-cn</language><lastBuildDate>Thu, 07 Aug 2025 00:00:00 +0800</lastBuildDate><atom:link href="https://amatsuzero.github.io/LastStand/tags/%E6%B5%8F%E8%A7%88%E5%99%A8%E7%9A%84%E5%AE%89%E5%85%A8%E6%80%A7/index.xml" rel="self" type="application/rss+xml"/><item><title>浏览器的安全性</title><link>https://amatsuzero.github.io/LastStand/posts/frontend/security/security-012/</link><pubDate>Tue, 17 Dec 2024 00:00:00 +0800</pubDate><guid>https://amatsuzero.github.io/LastStand/posts/frontend/security/security-012/</guid><description>&lt;p&gt;浏览器安全性是前端开发中的重要考察点之一，主要指浏览器在访问网站过程中如何防止攻击者利用漏洞或机制实施攻击、窃取数据、破坏用户体验等。&lt;/p&gt;
&lt;h2 id="一常见的浏览器安全威胁"&gt;一、常见的浏览器安全威胁&lt;/h2&gt;
&lt;h3 id="1-xss跨站脚本攻击"&gt;1. &lt;strong&gt;XSS（跨站脚本攻击）&lt;/strong&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;原理：攻击者注入恶意脚本到网页中，在用户浏览页面时执行。&lt;/li&gt;
&lt;li&gt;危害：窃取 cookie、伪造操作、传播蠕虫。&lt;/li&gt;
&lt;li&gt;防御：&lt;br&gt;&lt;/li&gt;
&lt;li&gt;对输出进行&lt;strong&gt;HTML转义&lt;/strong&gt;；&lt;/li&gt;
&lt;li&gt;使用 &lt;strong&gt;Content Security Policy（CSP）&lt;/strong&gt;；&lt;/li&gt;
&lt;li&gt;严格控制用户输入（白名单）；&lt;/li&gt;
&lt;li&gt;使用框架自动防御（如 React 的 JSX 自动转义）。&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h3 id="2-csrf跨站请求伪造"&gt;2. &lt;strong&gt;CSRF（跨站请求伪造）&lt;/strong&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;原理：用户登录目标网站后，被诱导访问恶意链接，触发网站上的有状态请求。&lt;/li&gt;
&lt;li&gt;危害：修改密码、转账等敏感操作被伪造。&lt;/li&gt;
&lt;li&gt;防御：&lt;br&gt;&lt;/li&gt;
&lt;li&gt;使用 CSRF Token；&lt;/li&gt;
&lt;li&gt;Referer 验证；&lt;/li&gt;
&lt;li&gt;SameSite Cookie 属性限制第三方请求。&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h3 id="3-点击劫持clickjacking"&gt;3. &lt;strong&gt;点击劫持（Clickjacking）&lt;/strong&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;原理：攻击者在页面上嵌入透明 iframe，引诱用户点击。&lt;/li&gt;
&lt;li&gt;防御：&lt;br&gt;&lt;/li&gt;
&lt;li&gt;禁止网页被嵌入 iframe：&lt;code&gt;X-Frame-Options: DENY / SAMEORIGIN&lt;/code&gt;；&lt;/li&gt;
&lt;li&gt;使用 CSP 中的 &lt;code&gt;frame-ancestors&lt;/code&gt; 指定允许嵌入的来源。&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h3 id="4-恶意文件上传"&gt;4. &lt;strong&gt;恶意文件上传&lt;/strong&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;原理：上传可执行脚本，触发服务端或客户端执行。&lt;/li&gt;
&lt;li&gt;防御：&lt;br&gt;&lt;/li&gt;
&lt;li&gt;严格限制文件类型与大小；&lt;/li&gt;
&lt;li&gt;不在上传目录下执行脚本；&lt;/li&gt;
&lt;li&gt;设置 CDN 或存储桶只读访问权限。&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h3 id="5-恶意第三方脚本供应链攻击"&gt;5. &lt;strong&gt;恶意第三方脚本（供应链攻击）&lt;/strong&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;原理：攻击者污染 CDN 或依赖源，注入恶意代码。&lt;/li&gt;
&lt;li&gt;防御：&lt;br&gt;&lt;/li&gt;
&lt;li&gt;使用子资源完整性校验（Subresource Integrity, SRI）；&lt;/li&gt;
&lt;li&gt;只信任可靠的依赖源；&lt;/li&gt;
&lt;li&gt;上线前锁定依赖版本。&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id="二浏览器原生安全机制"&gt;二、浏览器原生安全机制&lt;/h2&gt;
&lt;h3 id="1-同源策略same-origin-policy"&gt;1. &lt;strong&gt;同源策略（Same-Origin Policy）&lt;/strong&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;限制不同源之间访问 Cookie、DOM、LocalStorage 等。&lt;/li&gt;
&lt;li&gt;同源指：协议、域名、端口号都相同。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="2-cors跨域资源共享"&gt;2. &lt;strong&gt;CORS（跨域资源共享）&lt;/strong&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;浏览器通过预检请求和响应头判断是否允许跨域访问。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="3-content-security-policycsp"&gt;3. &lt;strong&gt;Content Security Policy（CSP）&lt;/strong&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;通过设置 HTTP Header 控制资源加载策略，防止 XSS 和数据泄露。&lt;/li&gt;
&lt;li&gt;示例：&lt;br&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-http" data-lang="http"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#960050;background-color:#1e0010"&gt;Content-Security-Policy: default-src &amp;#39;self&amp;#39;; script-src &amp;#39;self&amp;#39; https://trust.cdn.com;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="4-http-only--secure-cookie"&gt;4. &lt;strong&gt;HTTP-only &amp;amp; Secure Cookie&lt;/strong&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;HttpOnly&lt;/code&gt;: 防止 JavaScript 读取 Cookie；&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Secure&lt;/code&gt;: 仅在 HTTPS 下传输 Cookie；&lt;/li&gt;
&lt;li&gt;&lt;code&gt;SameSite&lt;/code&gt;: 限制第三方请求携带 Cookie。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="5-sandboxiframe-安全沙箱"&gt;5. &lt;strong&gt;Sandbox（iframe 安全沙箱）&lt;/strong&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;&amp;lt;iframe sandbox&amp;gt;&lt;/code&gt; 属性限制 iframe 的行为；&lt;/li&gt;
&lt;li&gt;可防止脚本执行、表单提交等危险操作。&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id="三前端开发中的安全实践"&gt;三、前端开发中的安全实践&lt;/h2&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;安全措施&lt;/th&gt;
&lt;th&gt;说明&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;输入校验&lt;/td&gt;
&lt;td&gt;客户端和服务端都要做，优先使用白名单策略&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;输出编码&lt;/td&gt;
&lt;td&gt;HTML、JavaScript、URL 编码避免 XSS 注入&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;HTTPS&lt;/td&gt;
&lt;td&gt;加密传输防止中间人攻击（MITM）&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;使用现代框架&lt;/td&gt;
&lt;td&gt;React/Vue/Angular 等框架天然防御 XSS&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;限制权限&lt;/td&gt;
&lt;td&gt;用户行为应严格授权与验证&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;CSP 策略&lt;/td&gt;
&lt;td&gt;强制资源加载来源、禁止内联脚本&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;hr&gt;
&lt;h2 id="四总结"&gt;四、总结&lt;/h2&gt;
&lt;p&gt;浏览器安全是前端必须掌握的重要基础知识，核心目标是 &lt;strong&gt;防止前端受到攻击者控制或操纵&lt;/strong&gt;。它涉及浏览器机制、HTTP协议、安全头部、数据验证等多个维度，需要前端开发者在日常开发中养成良好安全意识与编码习惯。&lt;/p&gt;</description></item></channel></rss>