[flagged]
A big problem is also that you can pretty much only grant permission for one specific site or all sites and this very much depends on which of those two options the extension uses. For example there's no need for the "inject custom JS or CSS into websites" extensions to need permission to read and write data on every single website you visit . If you only want to use them to make a few specific sites more accessible…
8M users' AI conversations sold for profit by "privacy" extensions
231–240 of 261 posts
Re: 8M users' AI conversations sold for profit by "privacy" extensions
#232Earlier quoted context omitted.
The problem is most codebase are huge - millions of lines when you include all the libraries etc. Often they're compiled with typescript etc making manual review almost impossible. And if you demand the developer send in the raw uncompiled stuff you have the difficulty of Google/Mozilla having to figure out how to compile an arbitrary project which could use custom compilers or compilation steps. Remember that someon…
For example, the following hidden anywhere in the codebase allows arbitrary code execution even under the most stringent JavaScript security policy (no eval etc): I=c=>c.map?c[0]?c.reduce((a,b)=>a[b=I(b)]||a(b),self):c[1]:c (How it works is an exercise to the reader) The actual code to run can be delivered as an innocuous looking JavaScript array from some server, and potentially only delivered to one high value targ…
Wow, it deconstructed it beautifully
A Concrete Example Imagine you pass this array to the function: ['alert', 'Hello World'] Here is the step-by-step execution:
Initialization: The accumulator a starts as self (the window object).
Iteration 1 (b = "alert"):
I("alert") returns string "alert".
It tries a["alert"] (which is window["alert"]).
This finds the alert function.
New Accumulator a: The alert function.
Iteration 2 (b = "Hello World"):
I("Hello World") returns string "Hello World".
It tries a["Hello World"]. The alert function does not have a property named "Hello World", so this is undefined.
The || operator moves to the right side: a(b).
It executes alert("Hello World").
Result: A browser popup appears.Re: 8M users' AI conversations sold for profit by "privacy" extensions
#233“ A few weeks ago, I was wrestling with a major life decision. Like I've grown used to doing, I opened Claude” Is this where we’re at with AI?
People used to cast lots to make major life decisions. Putting a token predictor in the mix — especially one incapable of any actual understanding — seems like a natural evolution. Absolved of burden of navigating our noisy, incomplete and dissonant thoughts, we can surrender ourselves to the oracle and just obey.
Re: 8M users' AI conversations sold for profit by "privacy" extensions
#234How did I know this was an israeli company just by how unethical they are at scale?
Re: 8M users' AI conversations sold for profit by "privacy" extensions
#235“ A few weeks ago, I was wrestling with a major life decision. Like I've grown used to doing, I opened Claude” Is this where we’re at with AI?
Here's an example of the kinds of things I've talked with ChatGPT about in the last few weeks:
- I'm moving to a new area and I share custody of my daughter, so this adds a lot of complications around logistics. Talked through all that.
- Had it research niche podcasts and youtube channels for advertising / sponsorship opportunities for my SaaS
- Talked through a really complex architecture decision that's a mix of technical info and big tradeoffs for cost and customer experience.
- Did some research and talked through options for buying two new vehicles for the upcoming move, and what kinds work best for use cases (which are complex)
- Lots and lots of discussions around complex tax planning for 2026 and beyond
Again, these models have vast knowledge, as well as access to search and other tools to gather up-to-date info and sift through it far faster than I can. Why wouldn't I talk through these things with them? In my experience, with a little guardrails ("double check this" or "search and verify that X..."), I'm finding it more trustworthy than most experts in those fields. For example, I've gotten all kinds of incorrect tax advice from CPAs. Sometimes ChatGPT is out of date, but it's generally pretty accurate around taxes ime, especially if I have it search to verify things.
Re: 8M users' AI conversations sold for profit by "privacy" extensions
#236Earlier quoted context omitted.
> I stick to extensions that Mozilla has manually vetted as part of the Firefox recommended extensions program. If you're feeling extra-paranoid, the XPI file can be unpacked (ZIP) and to check over the code for anything suspicious or unreasonably-complex, particularly if the browser-extension is supposed to be something simple like "move the up/down vote arrows further apart on HN". :P While that doesn't solve the o…
You can also, more conveniently, plug an extension's URL into this viewer: https://robwu.nl/crxviewer/
Re: 8M users' AI conversations sold for profit by "privacy" extensions
#237Earlier quoted context omitted.
Isn’t minified code banned from chrome extensions?
Google allows minified extensions and doesn't require you to provide the original unminified source. I've never provided Google the real source code to my extension and they rubber-stamp every release. The Chrome Web Store is the wild west--you're on your own. Mozilla allows minification but you're required to provide the original buildable source. Mozilla actually looks at the code and they reject updates all the ti…
https://blog.chromium.org/2018/10/trustworthy-chrome-extensi...
Re: 8M users' AI conversations sold for profit by "privacy" extensions
#238Re: 8M users' AI conversations sold for profit by "privacy" extensions
#239Google needs to act on removing these extensions/doing more thorough code reviews. Reputability is everything, and they can be actually valuable (e.g. LastPass, my own extension Ward) There has to be a better system. Maybe a public extension safety directory?