In the past, Facebook has seemed curiously reluctant to do anything which might impede traffic.

After all, Facebook's revenue doesn't come from protecting you, the user. It comes from the traffic you generate whilst using the site.

So this latest announcement is a welcome sign, since some of the new security features prevent or actively discourage you from doing certain things on the Facebook network. Let's hope that everyone at Facebook has accepted that reduced traffic from safer users will amost certainly give the company higher value in the long term.

But do Facebook's new security features go far enough? Let's look them over.

* Partnership with Web of Trust (WOT)

WOT is a Finnish company whose business is based around community site ratings. You tell WOT if you think a site is bad; WOT advises you as you browse what other people have said about the sites you visit.

Community block lists aren't a new idea - they've been used against both email-borne spam and dodgy websites for years - and they aren't perfect. Here's what I said about them at the VB2006 conference in Montreal:

[C]ommunity-based block lists can help, and it is suggested that they can be very responsive if the community is large and widespread. (If just one person in the entire world reports a [dodgy] site, everyone else can benefit from this knowledge.)

But the [cybercriminals] can react nimbly, too. For example, using a network of botnet-infected PCs, it would be a simple matter to 'report' that a slew of legitimate sites were bogus. Correcting errors of this sort could take the law-abiding parts of the community a long time, and render the block list unusable until it is sorted out. Alternatively, the community might need to make it tougher to get a [site] added to the list, to resist false positives. This would render the service less responsive.

Another problem with a block list based on "crowd wisdom" is that it can be difficult for sites which were hacked and then cleaned up to get taken off the list. Users will willingly report bad sites, but are rarely prepared to affirm good ones.

False positives, in fact, have already been a problem for Facebook's own bad-link detector, which is also mentioned in the announcement. Naked Security has had its own articles blocked on Facebook simply for mentioning the name of a scam site.

In short, the effectiveness, accuracy and coverage of the WOT partnership remains to be evaluated. But I approve of the deal. It's a step forward by Facebook. However, Facebook's own bad-link detector could do with improvement.

* Clickjacking protection

Facebook introduced some anti-clickjacking measures a while ago. It's a good idea. If you're trying to Like a page known to be associated with acquiring Likes through clickjacks, Facebook won't blindly accept the click. You'll have to re-confirm it.

Again, I approve of this. But in my opinion, it's not going far enough. It would be much better if Facebook popped up a confirmation dialog every time you Liked something, so that the "blind Likes" triggered by clickjacking would neither work nor go unnoticed. (Indeed, this popup dialog would be a great place for users to report clickjacks to the WOT community block list!)

That's not going to happen. Facebook wants Liking to be easy - really easy - as it helps to generate lots of traffic. A popup for every Like almost certainly wouldn't get past Facebook's business development managers. Not yet, at any rate. But if we all keep asking, perhaps they'll see the value?

* Self-XSS

This is a geeky way of saying "Pasting JavaScript into your own address bar."

We've already reported on the potential danger of doing this. When you put JavaScript in your address bar, you implicitly give it permission to run as if it were part of the page you just visited. That's always a risky proposition. Facebook is adding protection against this behaviour.

Facebook also says it's working with browser makers on this problem. That's good.

Perhaps all browsers should simply disallow Javascript in the address bar by default? It's a useful feature, but the sort of user who might need it would surely be technically savvy enough to turn it on when needed.

* Login approvals

Facebook's final announcement is what it describes as two factor authentication (2FA). Facebook will optionally send you an SMS every time someone logs in from "a new or unrecognised device". (Facebook doesn't say how it defines "new", or how it recognises devices.)

This is a useful step, and will make stolen Faceook passwords harder to abuse. In the past, you would only see Facebook's "login from new or unrecognised device" warning next time you used the site, by which time it might have been too late.

The new feature means that you'll get warnings about unauthorised access attempts pushed to you. Furthermore, the crooks won't be able to login because they won't have the magic code in the SMS which is needed to proceed.

It's a pity Facebook isn't offering an option to let you enable 2FA every time you login. It would be even nicer if they added a token-based option (and they'd be welcome to charge a reasonable amount for the token) for the more security-conscious user.

A token would also allow users to enjoy the benefits of 2FA without sharing their mobile phone number with Facebook - something they might be unwilling to do after Facebook's controversial flirtation, earlier this year, with letting app developers get at your address and phone number.

In summary

Where does this leave us?

Good work. I'm delighted that Facebook is getting more visibly involved in boosting the security of its users. But there's still a long way to go.

In particular, this latest announcement doesn't address any of the issues in Naked Security's recent Open Letter to Facebook. Those issues represent more general problems which still need attention: Privacy by default, Vetted app developers, and HTTPS for everything.

(If you use Facebook and want to learn more about spam, malware, scams and other threats, you should join the Sophos Facebook page where we have a thriving community of over 80,000 people.)