Skip to content

Comment on XSS vulnerability found in Github

Comments

Didn't work for me. Then I remembered to tell noscript to enable js. Does anyone still need convincing that they should be using noscript?

Noscript uses a sledgehammer to do a scalpel's job. It would be much more widely used if it was a little more subtle, and less noticeable as most browser extensions are. Scorched Earth-like blocking is safe, but it very strongly degrades the web surfing experience. I would much rather they use a heuristics-based approach to warn users when potentially malicious scripts were trying to run, than simply block all scripts. I used it for a couple years, but stopped when I realized how annoying it made my browsing experience.

You do realize that NoScript is not "block all scripts", right?

I see so many people criticizing it with no apparent experience or use of it, and this is the primary misconception I see. It is not block all scripts. Why would anyone need an extension for that? You just turn off Javascript in the preferences for that. What it is is a domain-by-domain whitelister.

I can't use Chrome because it doesn't have NoScript, and I end up routinely visiting domains that I didn't even realize have some foreign-loaded script that pops up some crappy survey over the page ("please give us your private info under the guise of providing site feedback we intend to ignore!"), or pops up a flash ad, or who knows what. The web is too irritating to use anymore without it. (And Flashblock.)

Also, NoScripts does have heuristics, but they can't catch already-in-the-page XSS without firing too many false positives. They do have some decent protection against hostile links that have XSS-inducing strings in a query string or something. You can in fact download NoScript and configure it just for that. Personally, I've never had anything but a false positive from that check, but I don't cruise fora where such links are common.

It isn't anywhere near as hard to use as the critics say it is. I know this because I use it on three systems and I don't even bother trying to synchronize the settings somehow; it's more work to synchronize the settings that just use it in all three places.

> What it is is a domain-by-domain whitelister.

Domain whitelisting is useless in situations like this, as sites like Github are likely to be in a frequent visitor's trusted sites list.

> I can't use Chrome because it doesn't have NoScript, and I end up routinely visiting domains that I didn't even realize have some foreign-loaded script that pops up some crappy survey over the page ("please give us your private info under the guise of providing site feedback we intend to ignore!"), or pops up a flash ad, or who knows what. The web is too irritating to use anymore without it. (And Flashblock.)

Have a look at https://chrome.google.com/extensions/detail/odjhifogjcknibka... its basically noscript with some restrictions

This is unrelated, but how did Google manage to produce such awful URLs? Is this just a base-26 encoded GUID? If so, they could've saved a few characters: http://www.wolframalpha.com/input/?i=0xED11C880FA5611DDA6040...

Not that this is something you'd want to do in the first place, because it's hideous.

> You do realize that NoScript is not "block all scripts", right?

Actually, I didn't. You do realize that the name "NoScript" implies NO SCRIPTS, right? It shouldn't be surprising that many people think it makes your browser execute "no scripts".

I suppose. In the same way that GitHub implies an Internet hub for gits.

> In the same way that GitHub implies an Internet hub for gits.

well, isn't it? Kidding, kidding.

It's so much faster though, especially when browsing over a slow satellite link on a netbook.

Mostly I browse to read, and NoScript eliminates a ton of pointless HTTP requests and CPU cycles.

noscript + flashblock + adblock give me a faster browsing experience too. I do disable adblock on nytimes, reddit, google and any other site which provides good content so that it keeps on getting revenue from ads.

Agreed, although I use NoScript + apply-confirmations-to-whitelisted-sites setting and ditched Flashblock.

That's a fair point, but a very limited usage case.

Netbook over 3G would probably show significant gains, and I use it on broadband too, and I still feel a noticeable speed improvement.

It's funny how when you mention NoScript in the presence of web "2.0" developers, most hate it, but if you mention it in the presence of sysadmins, network admins, security bods, general techies, they love it.

[deleted]

[deleted]

You know, having used the web extensively since JavaScript was called LiveScript, I've never had a security issue where blocking JavaScript would have helped. Plugins, yes, using IE and ActiveX a thousand times yes but the only problems JavaScript has caused have been annoyances like ads.

The reason is simple: JavaScript actually has a security model and browsers are one of the few bits of software with widely used update systems; plugins and most other applications are much easier targets (all of that juicy native code not coded defensively) and drift horribly out of date.

So, yes, put me firmly on the list of people who find NoScript 70% PR, 20% clunk UI, and 10% meaningful improvement. Something like Chrome's sandbox and click-to-play will actually make a noticeable benefit for the web because it'll actually be used - and even that's somewhat minor since we're still losing the user education battle where most exploits are actively assisted by the user.

Are you sure you fully understand XSS? The whole problem with XSS is that it works within the browser's security model. Sandboxing is a totally separate issue.

How do you browse though given that the vast majority of modern websites made use of javascript?

The vast majority of modern websites use JavaScript for trivial purposes. Like adding advertising, or auto focusing on fields. Most of them still work fine without JavaScript.

Some bits of github don't work unless you enable JavaScript, but most of it does. So I only enable it when I'm using those bits.

I also make sure I log out of github before I start browsing other websites.

I have a very warped model of browser usage, which in practice has translated to using:

     * IE for two banks
     * firefox+adblock for gmail, github and chesscube
     * chrome for facebook 
     * opera for everything else, which includes HN.
Just looking back at that list makes it seem even more terrible than it actually is :(

With noscript, browsing still works fine, you just have to explicitly allow the javascript you want/need rather than allowing just any site to execute code in your browser.

... so if I want to XSS you, I just have to do it on a site that requires JS to function.

Don't get me wrong, I can appreciate reducing your attack surface... but noscript just doesn't seem like that great of an idea, still.

No, even when you do allow a site to run JS, NoScript includes additional XSS, XSRF, and "click-jacking" protections that aren't normally offered by Firefox.

noscript is per-source, so you can whitelist their <script> blocks and jquery.js, but that random javascript in an onmouseover in a forum comment will do nothing.

Maybe it's been a while, but I thought that NoScript was per-domain. In the event of a XSS, the javascript maybe included from the page's domain. NoScript wouldn't help you here. IIRC, NoScript wouldn't say, "Hey this script wasn't here the last time you visited this domain, do you want to allow it?"

Fair enough. Seems like a whole lot of effort for very little gain.

The main gain is that you no longer have to worry about getting hit by this class of attack whilst browsing as normal. XSS attacks are happening all the time, even on major websites run by extremely clever techies. You think that is very little gain. To me, that gain is worth the hassle of having to manage NoScript. There is also a positive secondary benefit in that most websites which don't require js to work will run a little faster with NoScript enabled.

I'm sure my opinion will change as soon as one of my accounts are compromised. Since it hasn't happened yet, it's basically off my radar.

Humans are quite irrational sometimes...

You might be right. I was personally hit by a Twitter XSS once. The only reason I enabled JavaScript on twitter.com was because you can't post (or at least couldn't) post new items without enabling it first.

I don't use the twitter.com website any more. Prefering to use clients that don't run JavaScript. Whenever I can use something other than a web browser to access a service, I will take that path. I use NoScript when that isn't an option.

I also found (and reported responsibly) an XSRF flaw in Linode.com a few months back that I believe has now been fixed. That was quite a dangerous one. I also found an XSS flaw in DuckDuckGo a few weeks back. Maybe this is the reason I'm so "paranoid" about JavaScript. Maybe I'm right to be.

Most people do not realize that javascript runs locally in their browser on their device. That's been my experience anyway.

When I try to explain this to friends, they respond with, "No, it's only on that webpage I visit."

Most people don't realize how anything they rely on work, not exclusive to the internet.

Most folks who use Github would probably whitelist the domain.

I use github. I don't whitelist it in noscript. Because I use noscript in the way it was intended to be used.

Congratulations, you've proven that the definition of "most" includes "not all".

Congratulations, you've taken offence for no reason. At no point did I disagree with you.

AboutSource Built by g1lg1l

Hackerly is an independent reader for Hacker News, built on the public HN API. Not affiliated with Y Combinator.