使用者反應:網站忽然沒法下載 PDF 檔,出現「xxx.pdf 無法安全下載」提示:

嚴格來說,這是 Chrome/ Edge 基於安全考量對有風險檔案請你下載前三思,只要意志堅定勇於嘗試,應會找到【...】、【保留】、【仍要保留】這條祕徑進入隱藏關卡,叫出原本的下載介面:

很顯然,這個關卡太隱密考倒不少使用者,有些人則是看到不安全就陷入驚慌不敢亂試。甚至有網站被質疑是不是壞掉或是被駭,揹了黑鍋。

Edge 採用 Chromium 核心,不意外地用 Chrome 也會遇到相同狀況,推測是上個月 Chrome 123 版更新安全瀏覽(Safe Browsing)功能後一併調整了安全原則。

Chrome 提供的訊息較明確,有提到是因為網站未使用 HTTPS 安全連線,故預設封鎖。找到 Chrome 的官方說明,列舉下載內容會被封鎖的狀況:

  1. 危險:惡意軟體或會修改電腦設定的欺騙性軟體
  2. 可疑:不常見或陌生檔案(沒其他人下載過)、內含軟體但壓縮或加密無法檢查的 zip/rar 檔案
  3. 未驗證:關閉安全瀏覽功能時試圖下載檔案
  4. 不安全:從未使用 HTTPS 的網站下載檔案

針對第 4 點實測,同一下載網址若改用 https 就不會被封鎖。HTTPS 在 Internet 已屬標配,所以這點主要困擾仍在用 HTTP 的內部網站。全面升級 HTTPS 是件工程(另外,我也覺得內網全面改用 HTTPS 的必要性有討論空間,理論上只在敵人滲透成功派上用場。假設對方已登堂入室且有能力當中間人假冒站台,應會選比竄改下載檔案省時省力的攻擊手段),故此一安全機制極有可能影響企業網站使用,理論上 Edge 應該有配套做法。

從 Edge 官方說明 - 識別並中斷具潛在危險檔案的下載查到更多細節。

  1. 哪些檔案類型受影響?Chrome 有份完整清單 download_file_types.asciipb,圖檔影音文字檔如 jpg、png、gif、mp3、mp4、mov、txt、csv 被註記為無風險會直接放行;swf/spf 絕對危險;其餘則需個別判斷。
  2. 除了無害(NOT_DANGEROUS)跟危險(DANGEROUS)之外,還有一類是透過使用者手勢判定(ALLOW_ON_USER_GESTURE),概念是「這些檔案可能很危險,但如果使用者要求下載,則很可能無害。」檔案會在其他使用者同意下載後解禁。
  3. 企業可透過 ExemptFileTypeDownloadWarnings 檔案指定允許從特定網站下載的檔案類型 參考
  4. 微軟文件有列舉需要使用者手勢的檔案型別清單:crx, pl, py, pyc, pyo, pyw, rb, efi, oxt, msi, msp, mst, ade, adp, mad, maf, mag, mam, maq, mar, mas, mat, mav, maw, mda, mdb, mde, mdt, mdw, mdz, accdb, accde, accdr, accda, ocx, ops, paf, pcd, pif, plg, prf, prg, pst, cpi, partial, xrm-ms, rels, svg, xml, xsl, xsd, ps1, ps1xml, ps2, ps2xml, psc1, psc2, js, jse, vb, vbe, vbs, vbscript, ws, wsc, wsf, wsh, msh, msh1, msh2, mshxml, msh1xml, msh2xml, ad, app, application, appref-ms, asp, asx, bas, bat, chi, chm, cmd, com, cpl, crt, cer, der, eml, exe, fon, fxp, hlp, htt, inf, ins, inx, isu, isp, job, lnk, mau, mht, mhtml, mmc, msc, msg, reg, rgs, scr, sct, search-ms, settingcontent-ms, shb, shs, slk, u3p, vdx, vsx, vtx, vsdx, vssx, vstx, vsdm, vssm, vstm, vsd, vsmacros, vss, vst, vsw, xnk, cdr, dart, dc42, diskcopy42, dmg, dmgpart, dvdr, dylib, img, imgpart, ndif, service, smi, sparsebundle, sparseimage, toast, udif, action, definition, wflow, caction, as, cpgz, command, mpkg, pax, workflow, xip, mobileconfig, configprofile, internetconnect, networkconnect, pkg, deb, pet, pup, rpm, slp, out, run, bash, csh, ksh, sh, shar, tcsh, desktop, dex, apk, rdp。

有趣的問題:docx、pdf 沒在不在需要使用者手勢清單,它們算哪一類?

在 Chrome 文件 download_file_types.asciipb,所有 Office 文件(doc, docx, dot, dotm, pdf, ppt, pptx, xls, xslx...) 被標註為 FULL_PING,而依據 Behavior of Download File Types in Chrome禁止使用者下載有害的檔案

FULL_PING: Send full pings and use the verdict. All dangerous file should use this.

依此推論,pdf 等辦公室文件檔,都被歸為危險,適用安全瀏覽機制,在非 HTTPS 連線時會預設封鎖,而 HTTPS 網站下載時也可能觸發使用者手勢判定,仍出現封鎖警示。企業最簡單有效的解法是設定白名單,列舉特定網站可安全下載的檔案類型,避免觸發封鎖放行流程。


Comments

# by Poy Chang

企業解法,將內部未能有https的網站,加入白名單,以下提供登錄檔解法: Windows Registry Editor Version 5.00   [HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Edge\InsecureContentAllowedForUrls] "1"="[*.]is.your.corp" "2"="[*.]are.our.corp"

# by Ho.Chun

請問為什麼我設定了 ExemptFileTypeDownloadWarnings 或 InsecureContentAllowedForUrls 還是被列為不安全的下載 🤔

# by Ho.Chun

抱歉,更正一下 1. 設定 ExemptFileTypeDownloadWarnings 後,將 Edge 整個重啟,依舊被視為"不安全的下載" 2. 設定 InsecureContentAllowedForUrls 後,將 Edge 整個重啟,順利被視為"安全的下載"

# by Nick Chiu

感謝兩位的說明。

Post a comment