Discuvr 安全性掃描

辦公與資料

CSV 轉 Excel 貼上 CSV,立即以試算表形式檢視,數字、日期和編號都依 Excel 應儲存的類型處理。只在需要時才下載整潔的 .xlsx。 PDF 簽名 在瀏覽器中為 PDF 簽名:手寫、輸入或上傳簽名,放到任一頁面,加上日期,然後下載已簽署的副本。檔案絕不會離開你的裝置。 塗黑 永久塗黑 PDF、Word、Excel、PowerPoint、文字和圖片檔案。相符項目和方框會從檔案本身刪除,而不是蓋住,下載前還會再次檢查結果。 我的 IP 是什麼 查看您連線時網站看到的公用 IP 位址、它是共用(CGNAT)還是私有位址,以及您的瀏覽器還透露了什麼。 大小寫轉換與行工具 將文字轉換為大寫、小寫、標題或句子格式,把名稱轉為 camelCase 或 snake_case,並刪除重複行或排序清單。 文字比較 貼上兩個版本的文字,查看每一行新增、刪除和修改的內容,並標示改動的詞語。

寫作與提案

語氣潤飾 以適當的文法、結構與表達方式重新整理您撰寫的內容 - 同時保留您的個人風格。一次貼上,一次回覆,無需對話。 自由職業提案產生器 描述客戶的問題,即可在幾秒鐘內取得包含範疇、定價且隨時可傳送的自由職業提案。

法律與合規

IP 法律問答聊天機器人 提問印度智慧財產權法 - 商標、專利、著作權、設計等,每則回答上方列出所用的網路搜尋結果。 專利 FER 回覆產生器 貼上第一次審查意見通知書(FER)中的異議,起草結構化答覆;或上傳草稿,進行智慧財產權風險審查。 政府計畫資格查詢工具 只需一次回答一組簡短的問題。登入後,我們會儲存您的答案,讓您無需重新輸入即可查看可能符合哪些中央政府計畫的資格。

隱私與安全

網站安全性掃描 掃描網域以找出真實且可複現的安全弱點。每個發現都包含背後的觀察結果以及供您自行驗證的指令。 圖片清除 精確查看您的照片揭露了哪些資訊 - GPS、相機序號、您的姓名 - 然後將其清除。裁切、調整大小、模糊人臉與轉換格式,完全不會在任何地方儲存圖片。

開發者工具

JSON 格式化工具 一次貼上即可美化、精簡與驗證 JSON - 當無法解析時會顯示精確的行與列,並統計文件中的實際內容。 Python 格式化工具 像 Black 一樣重新格式化 Python 程式碼,可自訂行長與引號處理方式 - 並精確統計修改了多少行。 HTML 檢視器 貼上 HTML 並在沙盒中依手機、平板或桌面寬度即時預覽轉譯效果 - 支援美化、壓縮、指令碼控制台以及標記錯誤報告。 IP 子網路計算機 輸入 CIDR 表示法或帶子網路遮罩的 IP,立即取得網路位址、廣播位址、可用主機範圍與位址總數。 編碼 / 解碼 邊輸入邊編碼或解碼 Base64、Base64URL、URL 百分比編碼、HTML 實體和十六進位,完整支援 UTF-8。 Unix 時間戳記轉換器 將以秒、毫秒、微秒或奈秒為單位的 Unix 時間戳記轉換為 UTC 或全球主要時區的日期,或將日期轉換回時間戳記。 系統架構圖產生器 輸入 User -> API -> Database 這樣的箭頭,即可得到排好版的架構圖或流程圖。摺疊群組看全局,為步驟編號看細節流程。

AI 工作台

AI Playground 即時並排比較多家 LLM 提供商的回應。支援使用您自己的 API 金鑰。 Agent 測試場 體驗跨多家提供商且能使用工具(網路搜尋、計算機、URL 擷取)的 AI agent。

學習

Study Buddy 頂尖科技職位的面試準備教練,從準備的第一天直到接受錄取通知:涵蓋 DSA、LLD、系統設計、行為面試與 AI 輔助程式設計的計畫、模擬面試、履歷審查、求職申請追蹤以及錄取通知比較。

日常助手

QR Code 產生器 用文字、網址、WiFi 資訊或聯絡資料產生 QR 碼 - 輸出 PNG 圖片或 SVG 向量圖,錯誤修正等級由你選擇。 單位換算器 即時轉換長度、重量、溫度、體積、速度、面積與能量單位 - 支援 40 多種單位類型並立即顯示結果。 密碼產生器 使用密碼學安全的隨機性產生隨機密碼,調整其長度與字元類型,並以位元熵查看其強度。 字數統計與易讀性分析工具 統計字詞、字元、句子和段落數,估算閱讀時間,並評估易讀性 - 對中文、日文、韓文和泰文文字採用真正以字元為單位的計數方式。 年齡/日期差計算器 計算某人的確切年齡,或任意兩個日期之間的確切差值(年、月、日),以及總天數和總週數。 日期差計算機 計算兩個日期之間的天數、週數、月數和工作日,或對某個日期加減天數。 百分比計算器 計算Y的X%、一個數是另一個數的百分之幾、兩數之間的百分比增減,或反向百分比 - 一個工具內的四種常見計算。 SIP 定投計算機 查看每月投資在逐年遞增、初始單筆投入與通膨下能成長到多少,或倒推達成目標所需的每月金額。 BMI計算機 透過身高體重計算您的身體質量指數(BMI),支援公制或英制單位,並依世界衛生組織成人分級標準分類:體重過輕、正常、過重、肥胖。
登入 開始使用
所有工具隱私與安全

網站安全性掃描

被動式外部掃描。每項發現都包含掃描器進行的原始觀察紀錄,以及您可以自行執行以重現問題的命令 - 此處沒有任何內容是由模型撰寫。

14 檢查群組: 正在解析 DNS 並檢查 CAA 記錄 · 正在檢查 SPF 與 DMARC · 正在檢查 TLS 憑證與通訊協定版本 · 正在測試從 HTTP 到 HTTPS 的重新導向 · 正在讀取回應的安全標頭 · 正在檢查 Cookie 屬性 · 正在檢測 CORS 政策 · 正在尋找版本橫幅資訊 · 正在檢查允許的 HTTP 方法 · 正在掃描首頁中的混合內容與不安全表單 · 正在尋找暴露的設定檔與版本控制檔案 · 正在檢查目錄清單 · 正在讀取 robots.txt 與 security.txt · 正在檢查暴露的服務連接埠

關於 網站安全性掃描

很多掃描器給你一個字母等級和一串嚇人的詞。這個工具也給等級,但扣掉的每一分都對應一項發現,其中列出它實際收到的回應,以及能讓你拿到同樣回應的一行指令。所以一項發現是你能自己核實的,而不是只能相信的。

功能作用

  • 檢查 DNS 與 CAA、SPF 與 DMARC、TLS 憑證與 TLS 1.0/1.1、HTTPS 轉址、安全標頭、Cookie 屬性、CORS、版本標示、HTTP 方法、混合內容、23 個敏感路徑、目錄列表、robots.txt、security.txt 以及 12 個服務連接埠。
  • 每項發現都附帶原始觀察結果,以及用於重現它的 shell 指令。
  • 無法執行的檢查會回報為"未檢查" - 絕不會悄悄算作通過。
  • 報告可下載為 Markdown 或 JSON 格式。

運作方式

  1. 1 輸入一個你負責的網域。
  2. 2 掃描執行被動探測 - 一般請求,不進行任何利用。
  3. 3 閱讀每項發現及其證據,並核實其中重要的部分。

沒有任何發現是憑空捏造的

掃描器不含任何語言模型。每項檢查的嚴重程度、影響和修復方式都是固定的,每項發現都來自一次真實觀察。頁面上的報告以及 Markdown 和 JSON 下載都由同一組發現產生,全程不涉及模型。

等級如何計算

分數從 100 開始,每項嚴重發現扣 34 分,高風險扣 13 分,中風險扣 5 分,低風險扣 1.5 分,每個級別的扣分有上限(高風險 45、中風險 22、低風險 9)。資訊類和通過的結果不扣分。90 分以上為 A,75 分起為 B,60 分起為 C,40 分起為 D,更低為 F。只要有一個外洩的 .env 檔案或一個可連線的資料庫連接埠,原本乾淨的網站就會從 100 分降到 66 分,也就是 C;兩項這樣的發現得 32 分,也就是 F。

如何避免誤報

在探測 /.git/HEAD 或 /backup.sql 這類路徑之前,掃描器會先請求一個不可能存在的隨機網址,並記錄網站的回應。只有當某個路徑回傳 HTTP 200、與這個找不到的基準不同,而且符合該檔案本身的特徵時,才會被回報為外洩。因此,對任何網址都回傳首頁的網站,不會被一整頁嚴重發現淹沒。

乾淨的報告不是一張證書

這些是針對運行中網站的被動檢查。它們不涉及應用程式邏輯、身分驗證、存取控制,或登入之後的任何內容 - 而那些正是真正的入侵通常開始的地方。無法完成的檢查正是因為這個原因被列為未檢查:由失敗連線得出的通過是一種虛假的安心,而沒有發現任何問題的掃描意味著沒有找到問題,並不意味著那裡什麼都沒有。

只掃描屬於你自己的目標

只掃描你擁有或已取得書面測試許可的網域。此工具會拒絕解析到私人或內部位址的主機,並按 IP 進行速率限制,但授權仍然是你自己的責任。

問題

這是主動攻擊嗎?

不是。它只送出一般的 GET、HEAD 和 OPTIONS 請求,進行 TLS 交握(包括嘗試 TLS 1.0 和 1.1),透過 Cloudflare 的 DNS over HTTPS 查詢 DNS,並對 12 個連接埠做簡單的 TCP 連線。不利用任何漏洞,不送出任何表單,也不修改任何內容。

我可以掃描任何網站嗎?

只能掃描你擁有或已獲授權測試的網站。未經許可掃描第三方基礎設施,在你所在地可能是違法的。

為什麼一項檢查顯示"未檢查"?

因為它無法完成 - 通常是因為該來源沒有任何回應。它會被誠實地回報,而不會被記為通過。

我可以匯出報告嗎?

可以,匯出為 Markdown 或 JSON,有效期一小時:報告在這一小時內保存在伺服器快取中以便下載,之後過期。兩種匯出都不使用模型。使用紀錄只保存發現數量和等級,不保存網域。

它會檢測哪些檔案和連接埠?

檔案:23 個固定路徑,包括 /.git/HEAD, /.git/config, /.env, /.env.local, /.env.production, /.aws/credentials, /id_rsa, /backup.zip, /backup.sql, /dump.sql, /wp-config.php.bak, /phpinfo.php, /server-status, /actuator/env;只有當回應與該檔案特有的簽章相符時才會回報。若已發布 /.well-known/security.txt,則計為加分項。連接埠:對 21 FTP, 23 Telnet, 25 SMTP, 3306 MySQL, 5432 PostgreSQL, 6379 Redis, 27017 MongoDB, 9200 Elasticsearch, 3389 RDP, 5900 VNC, 11211 Memcached, 8080 發起一般 TCP 連線,絕不嘗試登入。可從外網存取的資料庫連接埠(MySQL、PostgreSQL、Redis、MongoDB、Elasticsearch)或 Telnet 會被評為嚴重。

SPF 和 DMARC 檢查會標記哪些問題?

兩筆記錄都從公共 DNS 讀取,即使網站不寄信也會檢查,因為少了它們,任何人都能寄出冒充你網域的郵件。沒有 SPF 記錄為中風險;含 +all 的 SPF 記錄允許網際網路上任何伺服器寄信,為高風險。_dmarc 下沒有 DMARC 記錄為中風險;p=none(或沒有 p= 標籤)只做監控,為低風險;p=quarantine 或 p=reject 通過。完全不寄信的網域可以發布 v=spf1 -all。

會檢查哪些安全標頭,什麼值才算通過?

檢查首頁回應中的六個標頭。缺少時,HSTS 與 Content-Security-Policy 為高風險,X-Content-Type-Options 與 X-Frame-Options 為中風險,Referrer-Policy 與 Permissions-Policy 為低風險。Strict-Transport-Security 的 max-age 至少要 15552000(180 天):更短為低風險,max-age=0 為中風險。如果 script-src 允許 'unsafe-inline'、政策允許 'unsafe-eval',或 default-src、script-src 中有單獨的 * 萬用字元,Content-Security-Policy 會被標為已削弱(中風險)。X-Content-Type-Options 必須正好是 nosniff。X-Frame-Options 應為 DENY 或 SAMEORIGIN,如果 CSP 已設定 frame-ancestors 則不需要。Referrer-Policy 只有在 unsafe-url 或 no-referrer-when-downgrade 時才會被標記。Permissions-Policy 只要存在即可。每個缺少或偏弱的標頭都附有一條 curl -sI 指令,方便你自行核對。

它如何檢查 Cookie 屬性(Secure、HttpOnly、SameSite)?

它讀取首頁回應中的每個 Set-Cookie 標頭(最多 12 個 Cookie),逐一檢查 Secure、HttpOnly 與 SameSite。缺少 Secure 或 HttpOnly 為中風險;只缺 SameSite 為低風險;SameSite=None 但沒有 Secure 會被單獨指出,因為瀏覽器會拒絕這種 Cookie。三項齊全即通過。常見修正是 Secure; HttpOnly; SameSite=Lax(Django 中為 SESSION_COOKIE_SECURE、SESSION_COOKIE_HTTPONLY 與 SESSION_COOKIE_SAMESITE)。掃描不會登入,所以看不到只在登入後才設定的 Cookie。可以用這條指令自行核對:curl -sI https://your-site/ | grep -i set-cookie

CORS 檢查如何進行,什麼情況下是嚴重?

它向首頁送出一個帶 Origin: https://scanner-probe.example 的 GET 請求,讀取回應中的 Access-Control-Allow-Origin 與 Access-Control-Allow-Credentials。沒有 Access-Control-Allow-Origin 標頭,或回傳一個不回顯測試來源的固定來源,即通過。回顯測試來源並同時回傳 Access-Control-Allow-Credentials: true 為嚴重,因為已登入使用者造訪的任何網站都能讀取其回應。回顯來源但不帶憑證為中風險。萬用字元 * 為低風險,若同時允許憑證則為中風險(瀏覽器會拒絕這種組合)。只檢測首頁,也不送出 OPTIONS 預檢請求,所以請另外檢測 API 路由:curl -sI -H "Origin: https://scanner-probe.example" https://your-site/api/ | grep -i access-control

TLS 檢查會測試哪些內容(憑證到期、TLS 1.0 和 1.1)?

它連線到 443 連接埠,驗證憑證鏈和主機名稱。無法通過驗證的憑證為高風險,已過期的憑證還會額外標為嚴重,剩餘不到 15 天的為中風險;否則會把主體、簽發者、到期日期和 SAN 名稱列為通過項目。協商出的協定必須是 TLS 1.2 或 TLS 1.3,更舊的版本為高風險。接著它分別單獨嘗試一次 TLS 1.0 交握和一次 TLS 1.1 交握:伺服器接受其中任何一個都會得到中風險結果,因為兩者都已被 RFC 8996 淘汰。如果掃描器本身的 OpenSSL 無法提供舊版本,就不回報任何內容,而不是去猜測。nginx 的修正方法是 ssl_protocols TLSv1.2 TLSv1.3; 可以用以下指令自行查看日期:echo | openssl s_client -connect your-site:443 -servername your-site 2>/dev/null | openssl x509 -noout -dates

它會檢查 HTTP 是否重新導向到 HTTPS 嗎?

會。它在不跟隨重新導向的情況下請求 http://your-site/。以 301 或 308 導向 https:// 位址即為通過。以 302、303 或 307 導向 HTTPS 為低風險,因為瀏覽器不會記住暫時性重新導向,每次新的造訪都會先送出一個未加密的請求。透過未加密 HTTP 直接提供頁面(2xx 回應)為高風險。如果 80 連接埠完全沒有回應,只是提示資訊,不算失敗。nginx 的修正方法是 server { listen 80; return 301 https://$host$request_uri; },然後加上 Strict-Transport-Security。可以用以下指令自行檢查:curl -I http://your-site/

它會標記哪些 HTTP 方法(TRACE、PUT、DELETE)?

它向你的首頁送出一次 OPTIONS 請求,讀取 Allow 回應標頭;沒有 Allow 時讀取 Access-Control-Allow-Methods。宣告了 TRACE、TRACK、PUT 或 DELETE 為中風險;只有 PATCH 或 CONNECT 為低風險;只有標準讀取方法即為通過。如果伺服器兩個標頭都沒有送出,就不回報任何內容。宣告了某個方法並不能證明它真的可用,所以修改之前先確認。TRACE 可能把請求標頭(包括 Cookie)原樣回傳給呼叫端(Cross-Site Tracing)。nginx 預設拒絕 TRACE;Apache 需設定 TraceEnable Off。把 PUT 和 DELETE 限制在確實需要它們的 API 路由上,並放在身分驗證之後。可以用以下指令自行檢查:curl -X OPTIONS -i https://your-site/

它如何偵測目錄列表("Index of /")?

它請求 7 個路徑:/, /static/, /assets/, /uploads/, /images/, /files/ 和 /backup/。某個路徑以 HTTP 200 回應、且頁面標題或主標題以 "Index of /" 開頭時,回報為中風險(CWE-548),因為目錄列表會暴露沒有任何連結指向的檔案,例如備份、匯出檔和舊版本。如果都沒有,檢查即為通過;如果無法連上網站,則回報為未執行。nginx 的修正方法是 autoindex off;(這本來就是預設值,所以要找明確寫出的 autoindex on),Apache 是 Options -Indexes,然後把所有敏感檔案移出網站根目錄。可以用以下指令自行檢查:curl -s https://your-site/uploads/ | head -20

它能發現混合內容和透過 HTTP 送出的表單嗎?

能,針對首頁。它依伺服器回傳的原樣讀取 HTML(不執行 JavaScript),列出 src 或 href 以 http:// 開頭的每個 script、link、iframe 或 img 標籤。只要其中有 .js 或 .css 檔案,結果就是中風險,因為在傳輸途中被替換的指令碼或樣式表會在你的 HTTPS 頁面裡執行;只有圖片和框架為低風險;一個都沒有則通過(CWE-311)。action 以 http:// 開頭的表單回報為高風險(CWE-319),因為在其中輸入的一切,包括密碼,都以明文傳送。修正方法是把這些 URL 改為 https:// 或改成相對路徑,並加上 Content-Security-Policy: upgrade-insecure-requests 回應標頭作為保險。自己檢查:curl -s https://your-site/ | grep -Eo "(src|href|action)=.http://[^ >]*"

它在 robots.txt 和 security.txt 中檢查什麼?

robots.txt:它取得 /robots.txt,若回傳 HTTP 200 且為文字檔,就讀取前 8000 個字元中的 Disallow 行。包含 admin, internal, private, backup, config, staging, test, api, secret, dev 等字的 Disallow 路徑回報為低風險(CWE-200):robots.txt 是公開的,只是請守規矩的爬蟲不要造訪,列出這些路徑等於替它們打廣告。請用登入保護它們,並用 noindex 讓頁面不進入搜尋結果。security.txt:它請求 RFC 9116 規定的位置 /.well-known/security.txt,檔案中有 Contact: 行時計為加分。沒有該檔案不扣分。RFC 9116 也要求 Expires: 欄位,掃描不檢查它,所以兩者都要發布,例如 Contact: mailto:security@your-site, Expires: 2027-06-30T23:00:00Z。自己檢查:curl -s https://your-site/.well-known/security.txt

CAA 檢查看什麼?如何新增 CAA 記錄?

它透過 Cloudflare 的 DNS-over-HTTPS 查詢你輸入的主機名稱的 CAA 記錄(RFC 8659)。找到記錄則檢查通過,證據中最多顯示 5 筆;一筆都沒有則回報 "No CAA record",嚴重程度為低,因為此時任何公開憑證授權單位都能為該名稱簽發憑證。CAA 記錄列出你實際使用的 CA,例如 your-site. IN CAA 0 issue "letsencrypt.org",再加上 0 iodef "mailto:security@your-site" 以接收回報。每個使用的 CA 加一行 issue;若萬用字元憑證要由另一家 CA 簽發,再加一行 issuewild。自行確認:dig CAA your-site

為什麼掃描 www 或子網域時顯示沒有 CAA、SPF 或 DMARC?

每項 DNS 檢查都針對你輸入的確切名稱,所以 www.example.com 以 www.example.com 查詢,而不是 example.com,而這三種記錄的繼承方式各不相同。CAA:憑證授權單位在 www.example.com 找不到 CAA 記錄時,會往上查到 example.com 並使用那裡的記錄(RFC 8659 第 3 節),因此子網域上的 "No CAA record" 可能是誤報。DMARC:收件端會改用組織網域的政策,該政策可以用 sp= 為子網域另行設定(RFC 9989,已取代 RFC 7489),因此 _dmarc.www.example.com 沒有記錄時,通常已由 _dmarc.example.com 涵蓋。SPF:沒有繼承(RFC 7208),所以 "No SPF record" 對該名稱是正確的;不寄信的主機名稱可以發布 v=spf1 -all。DNS 查詢失敗也會顯示為沒有記錄。請一併掃描不含 www 的主網域,或用 dig CAA example.com 和 dig TXT _dmarc.example.com 確認