Can a porn blocker see what I am searching? (a plain-language explanation)

No, not a Safari content blocker like Escape's: it hands Safari a list of rules, Safari does the blocking on your phone, and the blocker is never told what you searched or visited. A friend asked me about this last week.

"How does Escape know to block porn sites if it can't see what I am searching?"

He was skeptical. Reasonably so. It sounds as if a blocker would have to watch what you do in order to stop the bad stuff. Some kinds of filtering do work by checking traffic as it passes through. Safari content blocking on iPhone is built another way, so the blocker never has to look.

Escape's Safari blocker is built on that system. Here is how it works, in plain language.

The mailman analogy

Think of your phone as a house. Your browser is a mailman. Every website you visit is the mailman fetching a letter from somewhere and bringing it back to your house.

One way to filter works like this. The filter sits at the front door. The mailman comes in carrying letters. The filter checks every letter. If a letter is from a forbidden address, it rips it up. Otherwise it hands the letter to you.

iOS content blockers work another way.

On iOS, the blocker hands the mailman a list. "Do not bring letters from any of these addresses." Then the blocker leaves. The mailman keeps the list in his pocket. When he is about to deliver a letter, he checks the list. If the address is on it, he leaves the letter at the post office and walks past. If not, he delivers it.

The blocker never sees any letters. Not the blocked ones. Not the delivered ones. The blocker just delivered a list, once, and then went home.

That is the architecture iOS gives developers like me. The list is one way. The blocker hands it to iOS, iOS does the blocking. There is no return channel. There is no "by the way, here is what they tried to visit." iOS does not give that information to anyone. Including me.

This is not a promise. This is how the iOS framework is built. The blocker is sandboxed in a way that makes it physically impossible for the blocker to see what you do.

"But how do you know what to put on the list?"

This is the next question I always get. If I do not see what you visit, how do I know which sites to block?

I do not need to know what you visit. The list is the same for every user. I assembled it once. It contains the addresses of known adult-content sites. More than 40,000 of them. The list updates when new sites get reported.

The same list goes to every Escape user. Your phone gets a copy. Your friend's phone gets a copy. Neither copy comes back to me with any information about what you actually browse. The list is identical, pre-built, downloaded once, applied locally.

If you turn off Escape, the list stops being applied. Your phone is unchanged. If you turn it back on, the list is applied again. Nothing about your specific behavior travels anywhere.

What about the apps I block?

If you use Escape's app blocking (part of Premium), you pick the apps you want locked, say a social app or a video app. iOS calls this Family Controls. The interface looks like a picker. You select the apps, and from then on they show Escape's block screen instead of opening.

Here is the part that surprises people. The selection you make is stored as encrypted tokens. iOS keeps those tokens. The tokens are meaningful only to your phone. Even Apple cannot tell which apps you picked. Apple designed it that way on purpose.

I, as the developer, receive a token-shaped placeholder when you pick an app. I cannot read the placeholder. It tells me "the user picked something." It does not tell me what. It is mathematically inert outside your phone.

If you blocked one app and your friend blocked a different one, neither I nor anyone else can tell which. The selections never leave your devices. Apple's framework refuses to surface them.

I am not just saying this. It is in Apple's official documentation. The Family Controls framework is described in the Apple Developer documentation for any developer who wants to verify. Apple's whole pitch to developers like me is "you can build a parental control feature without seeing the data." That is the contract iOS enforces.

What about my journal and streak?

Escape has a journal feature and a streak counter. Some people use them. The thing you might worry about. The journal is yours. Where is it stored.

It is stored on your phone. In a place iOS calls the app's sandbox. Which is a folder that only Escape can read. Other apps cannot see into the folder. Apple cannot see into the folder. I cannot see into the folder.

If you have iCloud turned on, some of that data may sync between your own Apple devices. From your iPhone to your iPad, for instance. That sync happens through Apple's infrastructure, encrypted by Apple, with keys Apple holds. I am not in the loop. I cannot read your journal because there is no path from your journal to me.

You can verify this yourself with a packet sniffer, a tool that shows every connection an app makes. The app talks to Apple's servers. Nothing else. Your journal never appears in the network traffic. Because it never leaves.

What does Escape know about me, then?

A small list. I will be honest.

I do not know whether you have opened the app. There are no analytics in it, so I do not even get an anonymous count. I do not know your name, your email, your IP address, your device id, or anything else that could identify you.

I know if you bought a subscription. Through Apple's App Store. Even there, I do not see your name, your email, your Apple Account (formerly Apple ID), or your payment method. Apple gives me a verified receipt. The receipt says "this purchase is real and active." It does not say who you are.

I know that the Safari blocker list was downloaded. Through Apple's content blocker registration. I do not know if it ever blocked anything for you specifically. I just know the list exists on phones somewhere.

That is the entire list of what Escape knows about you. Which is to say, almost nothing.

The "why should I trust you" part

I should not expect you to. I would not expect me to. Trust is earned.

The verifiable things, in order of how much work they take you.

1. Look at the App Store privacy nutrition label. It says Data Not Collected. Apple enforces this. If I were lying, the app would be removed.

2. Read the privacy policy. The full one. With the GDPR carve-outs and the Quebec specifics. It is long because it is honest, not because it is hiding something.

3. Run a packet sniffer. Watch what the app talks to. The traffic is iCloud (your account) and the App Store (purchase verification). That is it. No analytics endpoint.

4. Read the Apple framework docs I linked above. The Safari content blocker and Family Controls APIs do not give the developer the kind of access most people assume.

You do not have to trust me. You can verify each of these in an afternoon.

Why this matters now

What you search while you are trying to quit is about as private as data gets. The surest way to keep it private is never to collect it: data that never leaves your phone cannot leak from anywhere else.

So the best answer to "can my porn blocker see what I search" does not rest on a promise. It rests on how the blocker is built: it architecturally cannot. That is what iOS gives developers who want to build that way. It is the choice I made when I started Escape.

If you want to read more about why I built it without a server, the longer post here covers that. If you want to skip the reading and just try the app, it is on the App Store. No account required. No email collected. Nothing about you leaves your phone.

  • Sam

Escape blocks porn in Safari for free, extends to every browser with Deep Block, and adds a 90-second urge ritual, practice games that retrain how you meet an urge, and 28 short courses on identity and the long arc of recovery. No account, no personal tracking.

Download on the App Store

Rated 4.8 on the App Store

More on this topic in Privacy in recovery apps, or go deeper with the Who you became in private course.

← All posts

Get Escape on the App Store