This is why you shouldn't allow GET for performing actions. An image tag in an article could do the same thing (e: if it didn't check the referrer).
What's really needed is a token (nonce) that is tied to the session. That's like CSRF Prevention 101.
> POST (and restricting to same-origin)
I still don't think it's possible to forge the referer header on an uncompromised browser.In a CSRF scenario, the client itself can presumably be "trusted" - A client behaving maliciously can only hurt itself, not any one else. The important thing is to not trust anything that may have been provided by a third party.