I’ve previously spoken about the magic of the File Type Policies component — a mechanism that allows files to be classified by their level of “dangerousness”, such that harmless files (e.g. .txt
files) can be downloaded freely, whilst potentially-dangerous files (e.g. .dll
files) are subjected to a higher degree of vetting and a more security-conscious user-experience.
File Type Danger Level
Microsoft Edge inherits its file type policies from the upstream Chromium browser; you can view the current contents of the list here, and documentation of its format here.
Within the list, you’ll see that each type has a danger_level
, which is one of three values: DANGEROUS
, NOT_DANGEROUS
, or ALLOW_ON_USER_GESTURE
.
The first two are simple: NOT_DANGEROUS
means Safe to download and open, even if the download was accidental. No additional warnings are necessary. DANGEROUS
means Always warn the user that this file may harm their computer. Let users continue or discard the file. If [SmartScreen or Safe Browsing] returns a SAFE
verdict, still warn the user before saving the file.
The third setting, ALLOW_ON_USER_GESTURE
is more subtle. Such files are potentially dangerous, but likely harmless if the user is familiar with download site and if the download was intentional. Microsoft Edge will allow such downloads to proceed automatically if two conditions are met:
- There is a user gesture associated with the network request that initiated the download (e.g. the user clicked a link to the download).
- There is a recorded visit to the referring origin that’s prior than the most recent midnight (aka yesterday or earlier). This implies that the user has a history of visiting the site.
The download will also proceed automatically if the user explicitly initiated a download by using the Save link as
context menu command, or entered the download’s URL in the browser’s address bar.
Update: Starting in version 91, Microsoft Edge will join Google Chrome in interrupting downloads that lack the required gesture.
User Experience for Downloads Lacking Gestures
Within Google Chrome, a download lacking a required gesture shows explicit buttons to allow the user to decide whether to proceed with the download or abandon it:
In contrast, Microsoft Edge states that the download “was blocked”, although the same options, named Keep
and Delete
are available from the … menu on the download item.
If you visit edge://downloads
, you’ll see the same options:
Enterprise Controls
While users are unlikely to encounter download interruptions for sites they use every day, they might encounter them for legitimate downloads on sites that they use rarely. To help streamline the user-experience for Enterprises, a Group Policy is available.
Enterprises can use ExemptDomainFileTypePairsFromFileTypeDownloadWarnings to specify the filetypes that are allowed to download from specific sites without interruption.
[{"file_extension":"xml","domains":["contoso.com", "woodgrovebank.com"]},
{"file_extension":"msg", "domains": ["*"]}]
File Types Requiring a Gesture
The latest file types policies are published in the Chromium source code. As of May 2021, file types with a danger_level
of ALLOW_ON_USER_GESTURE
on at least one OS platform include: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, 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
Other Fields in the File Type Policies
- You’ll also note that some file types have an
auto_open_hint
which controls whether the user may configure that type of file to open automatically when the download completes. - File type settings sometimes vary depending on the client OS platform (an
.exe
is not dangerous on a Mac, while an.applescript
is harmless on Windows). Theplatform
attribute of an entry specifies on which OS thedanger_level
applies. - The
max_file_size_to_analyze
field controls how big of a file (.zip
,.rar
, etc) the browser will be willing to unpack to scan it for dangerous content.
Impatient optimist. Dad. Author/speaker. Created Fiddler & SlickRun. PM @ MSFT '01-'12, and '18-, presently working on Microsoft Edge. My words are my own. View more posts