首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

前端安全:JavaScript 代碼在瀏覽器可見的本質與防護策略

     編輯:程式設計綜合問答

核心事實

所有發送到瀏覽器的 JavaScript、HTML、CSS 都是明文可見的,Chrome DevTools (F12) 即可查看、斷點、修改。這是 Web 架構決定的,無法從根本改變。

風險分級

防護策略

1. 敏感邏輯後置 (核心原則)

  • 驗證、計價、權限、加密——**全部在後端執行**。
  • 前端僅做「展示、輸入收集、體驗優化」。

2. 代碼混淆與壓縮 (提高逆向成本)

  • Webpack/Terser: terser --compress --mangle --output bundle.min.js。
  • Source Map **僅上傳到錯誤收集平台 (Sentry)**,不部署到 CDN。
  • 進階:javascript-obfuscator (控制流扁平化、字符串加密、死代碼注入)。

3. 內容安全策略 (CSP)

Content-Security-Policy: default-src 'self'; script-src 'self' 'nonce-{random}'; object-src 'none';
  • 禁止內聯腳本、eval、new Function。
  • 配合 Nonce/Hash 允許特定內聯。

4. 關鍵數據不落地前端

  • Token 存 HttpOnly; Secure; SameSite=Strict Cookie,而非 localStorage。
  • 加密密鑰由後端下發臨時會話密鑰,或用 Web Crypto API 衍生。

5. 完整性校驗 (Subresource Integrity)

<script src="https://cdn.example.com/lib.js"
        integrity="sha384-...hash..."
        crossorigin="anonymous"></script>

總結

「前端不可信」是鐵律。混淆只能防君子,真正的安全靠後端權威校驗、最小權限原則、CSP 防禦 XSS、敏感數據不前置。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved
風險示例後果
業務邏輯洩露價格計算、優惠規則、驗證算法競品抄襲、用戶繞過前端驗證
敏感信息硬編碼API Key、加密密鑰、內部接口地址被盜用、攻擊擴大面
代碼注入/篡改用戶在 Console 修改變量、掛鉤函數繞過權限、竄改數據