You can detect developer tools being open in Chrome pretty reliably, so detect dev tools have been open then "clean up your act" before there's a chance to view anything of note
Even so, we added CSS and stuff to highlight elements and that was easily found.
What do people look for today?
1. Watching window.innerHeight/innerWidth for sudden, large decreases, indicating that the user just opened the inspector.
2. Logging objects to the console with toString methods and checking if that method gets called.
2. Ahhh, clever!
but 2. I have no idea, except the browser vendors would add a "stealth dev mode"
So your solution would require inject your code into the code that wants to hide from you ... ?
I might be off here, but I imagine console.log early exits if there's no console open, so it doesn't call toString
If that's the case you can just write to the console in a loop and immediately know if one is open
The point is to avoid calling toString when the console is open, by using some other way of displaying logged values.
Their code will call console.log(object) every X ticks.
As soon as you open the console, console.log fires instead of early exiting => object.toString is called => they know the console is open
My memory is fuzzy, but I also had a different function I would call if frameworks added it so instead of “Object {}” it was “Backbone.Model {id=1}”.
I put these in and used them in firebug extensions I wrote for frameworks.
Later I asked chrome to add something, which is why there is a “enable custom formatters” option for the console. Really needs to work in the debugger though.
Someone else is writing code that they want to have react to the console opening.
So they will intentionally force the call as soon as the console is open, as a result toString is called regardless of if you yourself have made a call to it.
The point is that you patch the console to not do that.
I mean more specifically taking advantage of the awkward UI to cover up your tracks on local storage, it's something that's just devious enough that if you get caught (which is not difficult) it'll be hard to explain what you were doing, and you'll be trying to explain it to technical people
When discord loads, it copies it out of localstorage into a js var and deletes the localstorage. So if you examine localstorage it will be empty. On page unload it copies it back into localstorage. So if you want to see the value, you have to make sure no discord tabs are open in your browser.
I believe one reason for this is to prevent self-xss. It's hard for a malicious person to write a snippet of js to steal the login cookie now that it's no longer in localstorage. Another reason might be to prevent bots. It's hard for someone to automate a discord account if there's no way to get the account's login cookie.
Like, if I have one Discord tab open (so localstorage is cleared) and I open a second one in parallel, will I be logged out in the second one?
Specifically, there have been a lot of changes to cookies lately because malicious actors (malware/adware) figured out how to access the cookie store and infer/determine cookie information from other sites.
I suspect that maybe this cookie store is kept in a more secure part of the application and only the cookies relevant to the site you visit get pulled out of it. It may even be a risk to have the information for all domains even loaded into memory for the application.
With all that said, there should be some way to manage/introspect that cookie store from outside of the browser imho.
Reasons don’t really matter to users though. It’s pointless arguing if we should assume innocence or guilt because irrespective of the developers motives, if a particular feature is a show stopper for you then you switch to a platform that supports said feature. Anything else added to colour the discussion is irrelevant.
In terms of end users driving decisions ultimately, I agree. That said, this is a discussion forum so I figured it was open for discussion and assumed that folks would be deciding on their own how to react to the change.
I guess this all depends on what we think we’re having a discussion about!
So whether your theory is true or not, no one should use Chrome.
https://www.chromium.org/Home/chromium-security/site-isolati...
The tools are designed for developers who often want to manually edit cookies on pages they are debugging.
A particular feature of a web application (shopping cart) had different behaviour depending if the page was loaded as "an initial pageview on revisit", e.g. the user coming from [search engine|other link|bookmark|url bar] or from normal site browsing. By storing data in both Local Storage and Session Storage, and comparing the two on page load, I could determine if the user, who had been to the site in the past, had just come back. This all had to be developed in the dark as the major browsers have no method of viewing Local Storage and Session Storage for websites not loaded.
The author addresses this point (or has now addressed it) in the addendum to point out an "observer effect" shortcoming:
This information can be seen with the web inspector in both Chrome and Safari.
Yes, but the crucial difference is that you have to navigate to an individual site in a browser window in order to see the site data in the web inspector. Whereas in the Preferences, you can get to the site data, for every website, without having to load the sites. And remember, the very act of loading a site can make the site data change, so there's an "observer effect" if you try to examine or delete it in the web inspector.