Closed Bug 181035 Opened 22 years ago Closed 20 years ago

website detects popups as being disabled and blocks user

Categories

(SeaMonkey :: General, defect)

defect
Not set
normal

Tracking

(Not tracked)

VERIFIED WONTFIX
Future

People

(Reporter: keyoar, Assigned: danm.moz)

References

(Blocks 1 open bug, )

Details

User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.2b) Gecko/20021108 Build Identifier: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.2b) Gecko/20021108 Guide mozilla over to: http://www.kazaalite.com/ After approximately 8-10 sec. the browser is redirected to a message page at the Anti-Leech.com website informing user that their popups were disabled and thus cannot have access to a webpage. Webpage shouldn't be able to detect that user has popups disabled. Blocking cookies from kazaalite.com and anti-leech.com domain did not solve the problem. Reproducible: Always Steps to Reproduce: 1. Go to http://www.kazaalite.com/ 2. Wait 8-10 seconds. Actual Results: User is redirected to a webpage informing them that their popups are disabled and thus cannot access the webpage, in this case http://www.kazaalite.com/. Expected Results: Disabled popups shoul not be detectable by the page user is visiting and thus should have normal access to the page. If the cookies from kazaalite.com and anti-leech.com are not blocked then going back to http://www.kazaalite.com will immediately yield the access denied message. If the cookies from kazaalite.com and anti-leech.com are blocked then going to http://www.kazaalite.com in the same session is still possible.
To danm. The anti-leech guys detect the lack of a window object returned from window.open....
Assignee: asa → danm
Status: UNCONFIRMED → NEW
Ever confirmed: true
As a note, I fail to see how we can possibly address this without loading all the content that would go in the popup (which negates most of the benefits of blocking popups).
Boris you make a good point regarding loading the content of the popup. I wonder though if it is at all possible to fake loading content? Main point is to let the server assume content was accepted/loaded but on the client side popup was fully ignored. Ghost popup loading if you will.
> I wonder though if it is at all possible to fake loading content? Not against a determined antagonist (which is certainly what we have here). Eg the script could try to call functions from the newly-opened window or access variables that are supposed to get set in that window and redirect if the functions don't exist or don't return the right thing or if the variable values are not just right... Not to mention setting cookies in the popup and then checking their values. Just faking a window object would fool a casual test, but these guys are making a point of trying to detect popup blocking. We could load all that shtuff and not show the actual window (maybe; I'm not sure we support that architecturally very well), but they you still get issues with cookies just being set, images being fetched, etc. You don't get the annoyance of the actual window opening, but all the other drawbacks of popups are still there... We should think carefully about whether this is a direction we want to go in; I know a lot of people would rather not view the page than have the popups loaded in the background like that. At the same time, bypassing the anti-leech stuff would be nice. ;)
I think going through the full motion of the popup without showing the window itself is rather klunky way of getting this situation fixed. However the points made by Boris can't really be ignored either. I'm going out on a limb here, but could it be possible to creat a temporary sandbox/scratch area for the popup? Let it set cookies, vars etc. in there? THis temporary space exists for a definable amount of time and then is wiped? Feel free to ignore me, I'm just throwing out suggestions. Also on the idea that "people would rather not view the page than have the popups loaded in the background like that", I think this is like saying "people would rather not go to a page made for IE" as opposed to making gecko capable of dealing with MSHTML.
> I think this is like saying > "people would rather not go to a page made for IE" and indeed, many people agree to that statement (assuming of course that the page does not work in mozilla).
As Boris says, anything short of completely loading the popup window can be detected. Presumably the window would at least remain invisible, if popups were "blocked." But invisible windows are considered a security risk. And even that would likely be detectable: I expect window.focus() wouldn't work as expected. It's an arms race and we won't win. As popup blockers gain popularity, obnoxious website authors will work around them. I've already seen two wonderful examples, and I don't consider this website which simply detects popup failure a wonderful example. It's pretty mundane. However, I think I don't care. It's not our goal to try to prevent advertising. The goal of popup blocking, if I may be so bold, is to squelch a remarkably obnoxious form of browser abuse. In time, if we're completely successful in shutting down this abuse (and we're not yet) advertisers will shift completely to new forms and no longer bother even to detect popup failure. These guys are just beginning to figure it out. I'll leave this bug open I guess but I think I can safely say it'll never be addressed.
Target Milestone: --- → Future
I agree that this is a social, not a technical, bug. If sites want to stop people who have pop-ups blocked, so be it. Individual users can choose to whitelist that site if they want, or not to go to that site. Simple economics will dictate whether sites will be able to get away with this. Maybe we could also have a "one-time" whitelist feature in the pop-up manager that would erase the cookies of the pop-ups after viewing the site (similar to the proposed sandbox).
I agree that this is a social, not a technical, bug. If sites want to stop people who have pop-ups blocked, so be it. Individual users can choose to whitelist that site if they want, or not to go to that site. Simple economics will dictate whether sites will be able to get away with this. Maybe we could also have a "one-time" whitelist feature in the pop-up manager that would erase the cookies of the pop-ups after viewing the site (similar to the proposed sandbox).
There is definitely a social aspect to this bug, no doubt about that. However the technical aspect cannot/should not be ignored and that is that websites are able to detect unopened pop-ups. Addressing this technical aspect should not spin off into a social debate about the meta concept of pop-ups and blocking of. It should be focused on the technical feasibility of the whole matter. The whitelist seems like a decent idea, but it sounds like something else that goes under the Tools menu and we don't need another "____ Manager". If we can't accomplish hiding the fact that pop-ups aren't being opened in a somewhat simple manner, then it would surely be worth just throwing out the whole idea and let users decide how to approach this problem with the tools(blocking cookies) already available within Mozilla.
Screw it. This is definitely a social issue and I don't think it warrants any technical changes in the browser. My primary reason for using Mozilla is to avoid invasive and annoying pop-up ads, and to avoid the losing time and bandwidth that they waste. I do not want such content loaded into my browser at any time. Any website that so chooses to employ this type of technology will not be visted by me. It is especially ironic that Kazaalite's page would use this measure since their whole operation involves stripping the ad software out of Kazaa. I remind you that users who choose to view pages like this are free to turn off the pop-up disabling feature.
The bug got slashdotted today: http://yro.slashdot.org/article.pl?sid=02/11/24/2055253 and here's a testbed: http://www.anti-leech.com/theft_example.html On the given test page, the whole scheme depends on javascript: <script type="text/javascript" language="JavaScript" src="http://www.anti-leech.com/antitheft.php?id=demo_the"> </script> UAs with javascript off (e.g. lynx, chimera with js off) seem to "pass" the test. The test is apparently negative only so that if you never run the test, you never get blocked. Naively we could just not run any javascript from anti-leech.com. Hmm... that's annoying, maybe we'll need an "accept/don't accept javascript from certain sites" pref next thing.
I assume that the pop-up detection system has some means of determining if the pop-up comes from direct user interaction or not. Is it possible the same thing could be done for javascripts that forward/alter the page's URL? I'm out on a limb here, because I'm not a big JS user.
*** Bug 161176 has been marked as a duplicate of this bug. ***
Blocks: popups
re comment 12: there is already an RFE about allowing/disallowing scripts (and anything else you can think of) on a per-site basis.
You're right: Bug 148722 : Requesting ability to block scripts by source However I'd prefer a more smart solution along the lines of the pop-up blocking in chimera. Instead of requiring user decisions to decide which sites to block, if it's possible I'd prefer a system like this: if the script modifies the URL of the page AND NOT( the script ran from an onClick handler ) THEN don't modify the URL of the page I think this would work ... this particular system works by loading an iframe that runs the following JS: function imageLoaded() { var url = 'http://www.anti-leech.com/antitheft_test.php?id=demo_the&test=2&cookie=yes'; if (document.images) window.location.replace(url); else window.location.href=url; } So if you don't allow it to set window.location.href then it is harmless AFAICT. How would that affect legitimate JS pages?
I originally filed a bug about this as bug #161209, in which I included a couple URLs for companies selling this "technology", http://www.antiadblocker.com and http://www.antiadbuster.com. It would probably be good to check if these companies do this in the same way, otherwise the method Simon proposes in comment #16 may only force the anti ad blockers to use different methods. The concern some people have of downloaded content for pop ups, which is what they were trying to avoid, is a valid one. I'd see this as a separate clickbox in prefs that allows one to tell Mozilla to download all the content for undisplayed pop ups and allow operations on these windows (stuff like window.focus and window.move would just return as if successful) The window could be hooked to an internal timer to allow it to be automatically closed in a few seconds, just like an annoyed user would do with a popup that was actually displayed. The clickbox pref would allow those for whom the bandwidth is a concern to continue with current behavior, accepting their inability to browse some web sites. Those with faster links may take the new option which would allow them to browse sites using anti ad blockers, which I fear will become more and more widespread, at least in the short to medium term, as website operators frantically chase a failed revenue model.
On a somewhat unrelated note, I am now trying www.kazaalite.com from my office with mozilla 1.2b and popups blocked and I am not getting redirected to antileech.com. I am not exactly sure if the site has changed or its my office proxy which has something to do with it, 'cause when I tried it yesterday from home, I did have this problem
The main kazaalite.com site is down hence the lack of anti-leech stuff. I used kazaalite a few weeks ago and although I got re-directed to the anti-leech page however the download got initiated! Simply disabling JS only works on anti-leech because they haven't put a test to see if you have JS turned on or not (the other sites do). AntiAdBlocker lite can be bypassed by having JS but disabling all the options in the prefs. The full (paid for) version can't be beaten by this trick. I like the idea of comment 16 but do wonder if there would be any further effect on mornal JS pages.
Yes. At least a few of the "top100" sites and many thousands of others would break if we disallowed setting location.href from onload.
I'd like to relate an bit of end-user experience. I hope this doesn't waste your time (please just skip this comment if you couldn't care less about end users). About a year ago, I installed Mozilla on Robin's (my girlfriend) computer. She had previously been using Netscape 4.7 unless a site specifically depended on IE. A week ago, she mentioned "I didn't realize how bad the web had become" when she spent some time browsing websites at work. She liked Mozilla before, but now she's really got an appreciation for the hard work that's gone into making Mozilla such a great browser. I personally agree that annoying ads are a social problem, but to end users what matters is that Mozilla makes the web a nicer place to visit. Much nicer than using IE. I hope the technical decision making process on this "bug" can keep end users in mind, whatever the final result may be. That's all.
There are few more simple ways to block our anti-popup. Lets say, we'd and _next_ (sic) pref to preferences. (block location.href from specific domains). So. Webmaster send us only a cookie, and on any subpage we can see only text "this site is blocked". Easy? Or lets say, we'd add some "temp area" and load popup there (without showing it to user) and on this popup there is button. Without pushing this button you're not able to work with main page.
I think this is going to be a lost cause unless some 'miracle' solution is concocted. Have a look at this DevEdge article: http://devedge.netscape.com/viewsource/2002/popup-control/ Netscape itself is advocating the detection of popups. Maybe its best to mark this bug Won't Fix. Any input?
*** Bug 184838 has been marked as a duplicate of this bug. ***
A suggestion from a user on Slashdot which sounds pretty good: Rather than having window.open() return a null handle, have it return a real handle, but simply don't create the window. Better yet, have it optionally load the contents of the window, so the remote site never even knows that the window simply was never popped up.
Unfortunately it's not all that useful a suggestion: see comment 4 and comment 12
I meant comment 7 rather than 12
*** Bug 185152 has been marked as a duplicate of this bug. ***
In order to correct this kind of problem (where we need to load the entire popup to stop detection) we cannot 'win' the war, because there will always be a technical solution to anything we do except those things which defeat some of the main purposes of popup blocking (bandwidth reduction, annoying window removal). We can't win, but we can make it so expensive to do that it isn't worth detecting. Right now most methods cost them nothing - the work is all performed on the client side. We need to move the popup killer dectection to the server side and waste their server resources and bandwidth instead of our own. Right now it is all done through javascript. By disabling javascript features on a per site basis (as is done with window.open inside onload events) we can make it more expensive. This needs to be completed with a javascript preparser. We need a seperate module with user definable rules which can have things like disallow address redirection in onload events, disallow (or jail) cookies, etc. This will slow down javascript execution (there are ways around some of the efficiency loss) but would only be performed on certian sites. It would enable rule sets to be distributed quickly without rebuilds, and users could tweak their own rules. It could even be considered a greater feature, allowing users to add code to webpages (perhaps for annotations, advanced menus, site editing and control, etc). Those interested would keep the rulesets updated, and chances are it would be good enough - it would be to expensive for the majority of sites to start doing advanced server side scripting since not all users would keep the rule sets updated. It could even be tested as a simple perl/php/etc proxy which changes the web pages on the fly as the browser loads them. -Adam
For reasons that others have described above, I vote to wontfix this. As Dan said in comment 7, we can't prevent all advertising, only stop a particularly egregious form of browser abuse. The ultimate answer is "don't visit the site that annoys you."
*** Bug 208156 has been marked as a duplicate of this bug. ***
I'm against this proposal. There are legitimate uses for pop-up windows. Since so many users have popup blocks, or might be on a marginal system, it is valid for a site that legitimately uses pop-ups to detect if they are working. If they are not working, they can warn users that they are missing content. I have generated pop-ups from mouse rollovers, to give the user a large box with more info and a graphic image. These can not be displayed just using title="xxxx". Pop-ups are especially nice when screen real estate is tight, because they can be offset from whatever area is currently the focus. (used onmouseoff to close them automatically, so just one shows at any given time) (if you know of any other way to implement this besides popups, please tell me) for some applications, the designer (not the user) should have the choice that if popups are not working, to exit rather than offer only partial functionality.
About comment 29, as far as I understand it: Mozilla does already have the capability of disabling individual window properties and functions by domain. A third-party could always step up with a list of rules using these capabilities in an attempt to acquire greater control over website behaviour, but this isn't something mozilla.org itself wants to be involved with. If you really want to try this, you may need even more control than CAPS allows. Please file a new bug specifically for that. About comment 32: windows opened in mouseover event handlers are blocked by default in recent builds. For your scheme to work the user must allow popup windows on your site. But that would seem to be what you're talking about, knowing to display a warning to users with popups disallowed. About comment 30: comment 4 and comment 7 still apply. It really isn't possible to fix this bug. A website will always be able to detect whether the window was opened and loaded with the expected content. The only practical way to address this issue is to actually load blocked popups but not display them. But since Mozilla has never allowed a website to open invisible windows for security concerns, I don't see that happening. So honestly, this bug won't be fixed. Closing.
Status: NEW → RESOLVED
Closed: 20 years ago
Resolution: --- → WONTFIX
Product: Browser → Seamonkey
Status: RESOLVED → VERIFIED
Whiteboard: closeme 2009-11-12
Whiteboard: closeme 2009-11-12
You need to log in before you can comment on or make changes to this bug.