Your File Uploads Are Lying to You

Hey Bubble builders :waving_hand:

I just finished a plugin called Secure File Upload Scanner, and it exists for one simple reason: files lie. File extensions lie. MIME types lie. And Bubble (by design) trusts both. This plugin adds a client-side security firewall before files are trusted or saved—no servers, no external services, no hacks.

What it does :

It inspects the actual binary content of uploaded files in the browser. It checks magic bytes (real file type), detects MIME mismatches and polyglot files, scans SVGs and PDFs for embedded scripts, flags ZIP bomb patterns, checks image dimensions and EXIF abuse, sanitizes risky filenames, and generates a SHA-256 hash for fingerprinting. The result is a clear JSON report with a risk level and reasons—so your workflows can decide what to do next (allow, warn, quarantine, or block).

Who does this plugin save — and from what danger?

This plugin protects Bubble app owners, their users, and their infrastructure from trusting files that pretend to be safe but aren’t. It saves developers from accidentally storing or serving malicious, deceptive, or weaponized uploads—like renamed executables, script-infected SVGs, polyglot files, ZIP bombs, or PDFs with hidden actions. Without this layer, those files can later trigger XSS attacks, account hijacking, admin compromise, phishing, app crashes, CDN abuse, or legal trouble when another user previews or downloads them. In short: it stops dangerous files before they become a liability, reducing security incidents, support nightmares, and the “how did this get into my app?” moment every dev fears.

Why it’s needed:

Renaming `malware.exe` to `photo.jpg` still works today. SVG “images” can execute JavaScript. PDFs can hide actions. ZIPs can explode. Most apps don’t see this until it’s too late. This plugin stops a large class of real-world upload attacks early—right in the browser—without pretending to be an antivirus.

What it does not do (honesty matters):

It’s not a full antivirus, doesn’t run native engines, and can’t guarantee a file is “virus-free.” No client-side tool can. What it does give you is deterministic, explainable security checks that dramatically reduce risk and bad surprises.

Now the fun part :eyes::collision::collision::collision:

If you’re curious (or skeptical), I invite you to try to break it. Upload renamed executables, sketchy SVGs, polyglots, weird PDFs—anything you’ve got. Let’s see what it catches and where we can make it even stronger. Friendly testing welcome. :blue_heart:

Test it

If u got any feedback , seegestion, any thing, feel free to comment down bellow.

4 Likes