Security
We do not just promise your files stay local. FileGizmo ships a strict Content Security Policy that prevents normal tool pages from connecting to any outside origin while you work.
Last updated
Content security policy
Every ordinary FileGizmo tool is served with this browser-enforced Content Security Policy:
default-src 'self'; script-src 'self' blob: 'wasm-unsafe-eval' [one exact theme-script hash]; style-src 'self' 'unsafe-inline'; img-src 'self' data: blob:; font-src 'self'; connect-src 'self' blob:; worker-src 'self' blob:; object-src 'none'; base-uri 'self'; form-action 'self'; frame-ancestors 'self'; upgrade-insecure-requests The decisive rule is connect-src 'self' blob:. It prevents page scripts, WebSockets, and similar browser APIs from sending data to another origin. The blob: allowance is origin-bound local browser memory used internally by the image model; it is not a network destination. Processing code, fonts, workers, WebAssembly, and machine-learning models are self-hosted.
A worker started from a script file does not follow the policy of the page that starts it. It follows the policy sent with that file, so every worker script FileGizmo serves carries this one:
default-src 'none'; script-src 'self' blob: 'wasm-unsafe-eval'; connect-src 'self' blob: data:; worker-src 'self' blob: A worker can read only from FileGizmo and from memory in your browser (blob: and data: addresses), and can start only workers that follow the same rules. It cannot send data to another origin.
'wasm-unsafe-eval' permits the browser to compile self-hosted WebAssembly engines such as QPDF. The origin-bound blob: script allowance supports ONNX Runtime’s generated module worker. Neither permits JavaScript eval(), inline scripts beyond the exact theme hash, or an external network origin. One worker is the exception to the first of those: the HEIC decoder builds JavaScript functions as it starts, so its worker also allows 'unsafe-eval'. Its connection rule is the same as every other worker's.
Uploads to third-party origins: blockedThe restriction is enforced by the browser, not by a promise to delete a remote copy later.
Exceptions
Address to coordinates must contact a map-data provider to turn an address into coordinates. Only that route permits connections to https://api.geoapify.com. Its interface explains that each address and the user-provided API key go directly to Geoapify before processing starts. The global policy is not weakened.
Activate must contact Dodo Payments to check a licence key, because a key cannot be verified without asking the company that issued it. Only that route permits connections to https://test.dodopayments.com and https://live.dodopayments.com. It sends the key you paste and a device label (the word FileGizmo and your browser name), and nothing else. No file is involved, no tool page can make this request, and the result is stored in your browser rather than anywhere we can read.
Bring your own key is a paid provider workspace rather than an ordinary file tool. Its policy permits only https://api.openai.com. The connection stays off until the visitor explicitly enables provider mode, then extracted text and the visitor's key go directly to OpenAI. FileGizmo does not receive either one. The page says what will be sent before its send control becomes usable.
What FileGizmo does not collect
The file tools set no cookies, and FileGizmo carries no advertising or session-recording scripts. Page views are counted by Cloudflare Web Analytics, which is cookieless, stores nothing on your device and cannot see a file. Signing in uses cookies on api.filegizmo.com, the account service, and nowhere else: one keeps you signed in, and two short-lived ones tie an email link or a Google sign-in to the browser that started it. Page scripts cannot read them, and they are not sent to filegizmo.com itself. Passwordless accounts hold sign-in, plan, billing, and device records, never files or tool activity. There are no remote file queues or FileGizmo conversion servers. Tool files and outputs are handled in browser memory or temporary local browser storage. Crash-recovery data is origin-scoped, contains edit state rather than silent raw-file copies, expires after seven days, and can be cleared by the user.
Defence in depth
FileGizmo also prevents framing, restricts browser permissions, blocks plugin objects, upgrades insecure requests, and uses COOP and CORP headers to separate browsing contexts and same-origin resources. COEP require-corp is deliberately omitted because production-header testing shows that it breaks the QPDF WebAssembly worker; release QA locks that compatibility decision. Workers remain isolated by tool, and generated pages are checked for unexpected external script or stylesheet references.
Verify it yourself
FileGizmo is not open source, so this page does not ask you to take the code on trust. It asks you to check the running site instead, which is the stronger test: published source only tells you what was written, not what was deployed. Read the response headers to see the Content Security Policy quoted above being served. Then open the browser Network panel, clear it, process a harmless sample, and confirm that the tool sends no file-processing request. That last check is the one that matters, and it does not depend on believing anything on this page. You can also run the measured local-processing proof or read the converter safety verification guide.
The models, by digest
The machine-learning models and WebAssembly engines are vendored here rather than pulled from a package registry at run time, so no third party is in a position to swap one out between builds. Every one of them is published with its SHA-256 at /security/vendor-integrity.json, keyed by the URL your browser actually requests. Release QA already refused to pass if a listed file changed size or digest; the difference is that the list is now served to you as well, so the check no longer ends at our build machine.
curl -s https://filegizmo.com/models/2026-09-24/studioludens/birefnet-lite-512/onnx/model_fp16.onnx | shasum -a 256 Compare that against the entry for the same path. A mismatch means the file you were served is not the file this site was built from, which is the one failure a local-processing claim cannot survive.
Test it offline
First open Word counter while connected and wait for it to load. Turn off the connection, reload the page, and type a sentence. The count still updates because the cached tool runs locally.
The first visit needs a connection. A tool with a large engine or model must load those assets once before that workflow can use them offline. Clearing site data removes the cache.
Report a security issue
Please email support@promethir.com with Security report in the subject line. Do not publish exploit details, credentials, or another person’s files. The machine-readable disclosure record is available at security.txt, and it names the same address.