網頁瀏覽安全檢查指南:給高中生的資安入門 (High School Edition)

歡迎來到網路安全的後台世界!你是否想過,當你在 IG 上滑動態、在 Steam 上買遊戲,或是登入學校系統查成績時,這些資料是如何在全世界的光纖網路中穿梭的?

這份指南不只是一份講義,更是一套「數位防身術」。我們將帶你拆解網頁瀏覽的過程,分析潛藏的危機,並提供一套直觀的「工具對應表」,讓你學習如何像資安專家一樣使用工具來檢查網站的安全性。


第一部分:原理與威脅 (Theory & Threats)

第一章:點擊之後的隱形旅程 (The Invisible Journey)

當你在瀏覽器網址列輸入 instagram.com 並按下 Enter 時,其實你的電腦在短短不到一秒內,完成了一場跨越海洋的接力賽。理解這個流程,是資安檢測的基礎。

1.1 DNS:網路世界的電話簿

電腦看不懂 instagram.com 這種人類文字,它們只認得數字組成的 IP 位址(例如 157.240.22.174)。
* 比喻:DNS (Domain Name System) 就像你手機裡的通訊錄。你想打給「小明」(網域名稱),手機會去查通訊錄,找出他的「電話號碼」(IP 位址)並撥通。
* 運作流程
1. 詢問:你的電腦大喊:「誰知道 google.com 的 IP?」
2. 解析:DNS 伺服器(通常由 ISP 或 Google 提供)回應:「我知道,是 142.250.1.100。」
3. 連線:你的瀏覽器根據這個 IP 去敲 Google 的大門。
* 資安風險 - DNS 劫持 (DNS Hijacking)
* 如果壞人偷偷竄改了 DNS 紀錄(就像改了你通訊錄裡的號碼),當你輸入正確網址時,卻會被導向長得一模一樣的「假網站」。你以為連上了銀行,其實是進了駭客的大門,輸入的帳號密碼會直接落入駭客手中。

1.2 TCP/IP 連線與 TLS 加密

拿到 IP 後,瀏覽器與伺服器需要建立可靠且安全的連線。
* TCP 三向交握 (3-Way Handshake)
* 這是電腦之間打招呼的方式:「你好 (SYN)」、「收到,你好 (SYN-ACK)」、「好,我們開始傳資料 (ACK)」。確認雙方都在線上且準備好。
* TLS 加密握手 (TLS Handshake)
* 在傳輸資料前,雙方會交換「數位憑證」並協商加密鑰匙。
* HTTP (Port 80):明文傳輸。就像寄明信片,路過的郵差(路由器、Wi-Fi 分享器)都能看到內容。
* HTTPS (Port 443):加密傳輸。就像把信裝進上鎖的保險箱。即使駭客攔截了資料,看到的也只是一堆亂碼。

1.3 HTTP 請求與回應:你點餐,伺服器出菜

連線建立後,瀏覽器發送 Request (請求),伺服器回傳 Response (回應)。伺服器會附上一張小紙條(狀態碼 Status Code):
* 200 OK:✅ 點餐成功,菜來了。
* 301 Moved Permanently:🚚 餐廳搬家了(通常用於將 HTTP 自動導向安全的 HTTPS)。
* 404 Not Found:🤷‍♂️ 查無此人,網址不存在。
* 500 Internal Server Error:💥 廚房失火了(伺服器當機)。這對駭客來說是大肥肉,因為錯誤訊息常會洩露系統弱點。

第二章:瀏覽網頁的潛在風險 (Browsing Risks)

在享受網路便利的同時,有哪些陷阱在等著我們?

2.1 釣魚攻擊 (Phishing)

2.2 公共 Wi-Fi 的陷阱

2.3 瀏覽器擴充套件風險

2.4 隱私追蹤 (Tracking)


第二部分:防護機制與檢測目標 (Defense & Targets)

第三章:網站的護身符 - 安全標頭 (Security Headers)

網站伺服器會透過 HTTP 標頭告訴瀏覽器該如何保護使用者。如果沒設定這些,瀏覽風險就會大增。以下是我們主要的檢測目標:

標頭名稱 這是什麼?(比喻) 如果沒有會怎樣?(風險)
Strict-Transport-Security (HSTS) VIP 專屬通道
強制瀏覽器:「以後只要來我家,絕對要走 HTTPS,不准走 HTTP 小巷子。」
降級攻擊
駭客可以在你第一次連線時把你騙去走 HTTP 通道,然後竊聽內容。
Content-Security-Policy (CSP) 夜店保鑣
嚴格檢查所有想進入網頁的圖片、腳本來源。「你是哪裡來的?不在名單上?滾!」
XSS 攻擊
駭客在網頁裡偷塞惡意程式碼(例如偷取 Cookie),沒有 CSP,瀏覽器就會笨笨地執行它。
X-Frame-Options 防護罩
禁止別人把你的網站塞進一個小視窗 (iframe) 裡。
點擊劫持 (Clickjacking)
駭客用透明圖層蓋在按鈕上,你以為點了「領獎」,其實是點到透明視窗裡的「轉帳確認」。
X-Content-Type-Options 誠實豆沙包
禁止瀏覽器自作聰明去「猜」檔案類型。是圖片就是圖片。
MIME Sniffing
駭客上傳偽裝成 .jpg 的惡意腳本,若瀏覽器自作聰明把它當程式執行,電腦就中毒了。
Cookie: HttpOnly / Secure 保險箱裡的餅乾
設定 Cookie 只能由伺服器讀取,或只能在 HTTPS 傳輸。
Session Hijacking
駭客透過惡意腳本讀取你的登入 Cookie,直接盜用你的身分。

第三部分:實戰檢測工具 (Hands-on Tools)

第四章:資安偵探工具箱 (Cyber Toolkit)

不需要安裝昂貴軟體,你的電腦裡已經內建了強大的偵探工具。

4.1 資安檢測對照表 (Security Testing Matrix)

為了讓你更方便測試,我們將常見的安全機制與對應的檢測工具整理如下:

想檢測的項目 (目標) 關鍵標頭 / 特徵 推薦工具與指令
1. 傳輸加密狀態 TLS 版本 (1.2/1.3)、憑證效期 curl -v / 瀏覽器鎖頭
2. 強制使用加密連線 Strict-Transport-Security curl -I / Invoke-WebRequest
3. 防禦 XSS 腳本攻擊 Content-Security-Policy (CSP) curl -I / DevTools Network
4. 防禦點擊劫持 X-Frame-Options curl -I
5. 防禦惡意檔案偽裝 X-Content-Type-Options curl -I
6. 登入身分保護 Set-Cookie (HttpOnly; Secure) curl -I / DevTools Application
7. 自動安全跳轉 301 狀態碼 + Location curl -L -v
8. 本機連線監控 連線狀態 (ESTABLISHED) netstat

4.2 DNS 偵察工具:nslookup 與 dig

這兩個工具是用來檢查「網路電話簿 (DNS)」是否正常的關鍵。如果 DNS 被劫持,你連到的網站可能就是假的。

A. nslookup (跨平台通用)
這是 Windows 和 macOS 都有內建的基礎工具。
* 基本查詢:查出網址對應的 IP。
bash nslookup www.google.com
* 解讀Non-authoritative answer (非轉授權回答) 是正常的,代表這個答案來自你 ISP 的快取,而非 Google 本人。
* 指定 DNS 伺服器 (檢測污染)
如果你的電腦查出來的 IP 怪怪的,可以強制指定用 Google 的 DNS (8.8.8.8) 再查一次。如果兩次結果不一樣,可能你的預設 DNS 有問題!
bash nslookup www.google.com 8.8.8.8
* 查詢特定類型
想知道某個網域的郵件伺服器 (MX) 是誰?
bash nslookup -type=mx google.com

B. dig (macOS / Linux 專業神器)
dig (Domain Information Groper) 是資安專家更愛用的工具,資訊比 nslookup 更詳細。
* 基本查詢
bash dig google.com
* 觀察重點:看 ANSWER SECTION 這一區,這才是真正的答案。
* 反向查詢 (查 IP 是誰的)
如果你發現連線紀錄有個可疑 IP 142.250.1.100,想知道它是哪個網域的:
bash dig -x 142.250.1.100
* 追蹤解析路徑 (Trace)
從根網域 (.) 一層一層往下問,看是誰負責回答的,這對排查 DNS 劫持非常有用。
bash dig +trace google.com

4.3 連線監控神器:Netstat

當你懷疑電腦有沒有「偷偷」連線給駭客,或者想知道現在到底連了哪些網站,netstat (Network Statistics) 是你的好朋友。它能顯示電腦當下所有的網路連線狀態。

A. Windows 使用者
* 列出所有連線與 PID (Process ID)
powershell netstat -ano
* -a: 顯示所有連線 (All)。
* -n: 以數字顯示 IP 和 Port,不進行名稱解析 (Numeric),速度較快。
* -o: 顯示是哪個程式 (PID) 建立了這個連線。
* 實戰技巧:如果你看到一個怪異的 IP,記下它的 PID (例如 1234),然後打開「工作管理員」->「詳細資料」,就能抓出是哪個程式在搞鬼。
* 尋找特定狀態 (如已建立連線)
powershell netstat -ano | findstr "ESTABLISHED"

B. macOS / Linux 使用者
* 列出所有 TCP 連線
bash netstat -anv | grep "TCP" # Linux 通常使用 netstat -anp 或 ss -tunlp
* 觀察重點:查看 State 欄位為 ESTABLISHED 的連線。

4.4 路由追蹤:tracert / traceroute

4.5 進階神器:Curl 指令集 (依測試目標分類)

curl 是能看到「未經瀏覽器渲染」原始資料的神器。

A. 標頭大掃描 (最常用)

# 顯示所有標頭,一眼看完所有護身符 (HSTS, CSP, X-Frame 等)
curl -I https://www.google.com

B. 追蹤加密與跳轉流程

# 測試 http 是否會自動跳轉至 https,並觀察 TLS 握手細節
curl -L -v http://facebook.com

C. 模擬行動裝置測試

# 偽裝成 iPhone 手機,檢查手機版網頁是否有不同的安全設定
curl -A "Mozilla/5.0 (iPhone; ...)" -I https://example.com

第四部分:自動化與日常習慣 (Automation & Habits)

第五章:一鍵檢測與自動化 (Automation)

當你要檢查多個網站時,手動打指令太慢了。這裡提供自動化檢測方案。

5.1 Python 檢測腳本

你可以使用 Google Colab 或本機 Python 環境執行此程式。

import requests

def security_audit(url):
    print(f"🚀 開始資安檢測: {url}")
    print("-" * 30)

    try:
        headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36'}
        response = requests.get(url, headers=headers, timeout=5)

        # 建立「檢測項目 vs 關鍵標頭」的對應
        security_checks = {
            "強制加密 (HSTS)": "Strict-Transport-Security",
            "腳本防禦 (CSP)": "Content-Security-Policy",
            "點擊劫持防禦 (XFO)": "X-Frame-Options",
            "類型嗅探防禦 (XCTO)": "X-Content-Type-Options"
        }

        score = 0
        for label, header_name in security_checks.items():
            if header_name in response.headers:
                print(f"[✅ 安全] {label}: 已設定")
                score += 1
            else:
                print(f"[⚠️ 風險] {label}: 缺失!")

        print("-" * 30)
        print(f"📊 綜合安全評分: {score} / {len(security_checks)}")

    except Exception as e:
        print(f"💥 檢測失敗: {e}")

# 測試看看!
security_audit("https://www.google.com")

5.2 跨平台快速檢測 (一鍵指令)


第六章:個人瀏覽安全檢查清單 (Checklist)

在進行重要操作(如網銀、輸入個資)前,請執行以下檢查:

  1. 瀏覽前檢查

    • [ ] 網址拼字正確:無拼寫錯誤或同形異義字。
    • [ ] HTTPS 鎖頭:網址列有鎖頭圖示,無安全警告。
    • [ ] 憑證有效:點擊鎖頭確認憑證是由受信任機構簽發。
  2. 環境與設定

    • [ ] 連線環境:不使用公共免費 Wi-Fi 傳輸敏感資料。
    • [ ] DNS 設定:設定使用安全 DNS (如 1.1.1.1)。
    • [ ] 瀏覽器套件:已移除不明來源或權限過大的擴充功能。

結語:資安意識是最好的防火牆

學會這些技術不是為了攻擊,而是為了建立防禦意識。
1. 保護自己:了解風險,做出安全的決策。
2. 識別詐騙:看穿釣魚網站的技術偽裝。
3. 職業探索:如果你對這些細節著迷,歡迎未來加入資安領域!

⚠️ 提醒:請僅在合法授權或公開網站上進行測試,嚴禁對他人系統進行未經許可的掃描。