InTheTab Files stay on your device

How to check a website isn’t uploading your files

Lots of sites say your file never leaves your device. You don’t have to take their word for it. Your browser can show you every request a page makes, and the rules the page has to follow.

Step 1: open the Network tab

Every desktop browser has developer tools with a Network panel that lists each request the page sends and receives. Open it before you choose a file.

Chrome and Edge

  1. Press F12 or Ctrl+Shift+I (on a Mac, Cmd+Option+I).
  2. Click the Network tab.
  3. Tick Preserve log, so requests aren’t cleared if the page reloads.

Firefox

  1. Press Ctrl+Shift+E (on a Mac, Cmd+Option+E) to open the Network panel directly.
  2. In the panel’s settings (the gear icon), turn on Persist Logs.

Safari

  1. Go to Safari, Settings, Advanced and turn on the option to show features for web developers (older versions call it “Show Develop menu in menu bar”).
  2. Press Cmd+Option+I or choose Develop, Show Web Inspector, then click Network.

Phones don’t have these tools built in, so do the check on a computer.

Step 2: use the tool and watch

  1. Clear the list (the circle-with-a-line icon) so you start fresh.
  2. Choose a file, ideally a harmless test file, and run the tool: compress, convert, whatever it does.
  3. Watch the new rows appear, and keep the panel open while you download the result.

Step 3: what an upload looks like

Most rows are downloads to you: the page’s scripts, styles, fonts and images. They use the GET method and are harmless. An upload looks different:

Use the Fetch/XHR filter to hide static files, and check the WS filter too: files can also be sent over a WebSocket connection, which appears as a single row whose messages you inspect inside it.

A clean result is a list with no requests at all after you pick the file, or only downloads of the tool’s own code.

Content Security Policy, explained simply

The Network tab shows what a page did. A Content Security Policy (CSP) shows what it is allowed to do. It is a set of rules the website sends with the page, and your browser enforces them. If a script tries to break them, the browser blocks the request and reports an error in the Console.

The rules that matter for uploads:

How to read a site’s CSP

  1. In the Network tab, reload the page and click the first row, the page itself.
  2. Open Headers and scroll to the Response Headers.
  3. Find content-security-policy. No header? Check the page source for a <meta http-equiv="Content-Security-Policy"> tag. If there is neither, the page may connect anywhere.

Here is part of the policy on InTheTab’s homepage and most of its tool pages:

default-src 'none'; connect-src https://*.google-analytics.com https://*.analytics.google.com https://www.googletagmanager.com; form-action 'none'

That tells your browser to refuse every form submission, and every connection except to Google Analytics, which InTheTab uses to count visits. A policy can’t show what a page sends, only where, which is why the Network tab check above matters too.

Honest exceptions on InTheTab

A CSP limits where a page can connect, not what it sends, so it is worth knowing where InTheTab allows connections and why:

Questions

Is an empty Network tab proof that nothing was uploaded?

It is strong evidence for that tab while you watched. A page could try to send data later, so keep the panel open until you close the tab. A strict CSP covers the rest, because the browser blocks connections to anywhere the policy doesn’t list.

Do browser extensions show up in the Network tab?

Not necessarily. Extensions with access to a page can read it and make their own requests. If you handle sensitive files, use a browser profile with few extensions.

What does a blocked request look like?

The Console shows an error mentioning the Content Security Policy and the directive it broke, such as connect-src. In the Network tab the request is marked as blocked.

Can I check on my phone?

Not easily. Mobile browsers don’t include developer tools. Check the site once on a computer; the same page sends the same policy to every device.