Sergiu Dumitriu wrote:
On 03/10/2010 07:44 PM, Caleb James DeLisle wrote:
Take a look at the "sammy is my hero" worm, myspace sent a hash to the user like the one you propose, the worm made the required get request to get the hash, then made the post along with the hash. What prevents javascript from opening the page with the hash in an iframe and then reading in the iframe to get the hash, then creating a form with the required data and posting it to the save action?
If we were to combine a requirement for post requests with checking of the referrer header, then we would block links, forms and javascript based attacks leaving only an attack through older versions of flash which support referrer forgery and at this point the difficulty of the attack becomes such that we need to consider a wider array of attack vectors.
Sammy also required that XSS is enabled.
Protecting from attacks originating in the wiki is kind of impossible at the moment, since JS can be inserted anywhere, and there's no (nice) way to prevent attacks from JS inside the application. As long as JS can be inserted, an attacker can do all the steps that the client would do to perform an action.
The secret token works as a prevention mechanism when the attack comes from another site because the browser security model prevents the attack code to read the form.
I just did a few tests on iframes and I was wrong, they do have good same origin policy. Caleb
Caleb
Alex Busenius wrote:
Unfortunately, using POST requests instead of GET requests is not enough. It will not prevent attacks that use forms and/or JavaScript to generate POST requests.
Alex
On 03/09/2010 02:48 PM, Caleb James DeLisle wrote:
I had thought about proposing this myself but decided against it because it seems to me like a workaround for problems which can be solved in other ways.
Suppose we were to add a check to the actions which alter data which made sure the request method was 'post' and made it configurable in one of the configuration files? We would have to look over the default skins for incorrect links and leave the configuration option off by default for backward compatibility at least until the next major version but we could provide wiki operators the ability to prevent CSRF.
Caleb
_______________________________________________ devs mailing list [email protected] http://lists.xwiki.org/mailman/listinfo/devs
_______________________________________________ devs mailing list [email protected] http://lists.xwiki.org/mailman/listinfo/devs