[Owncloud] CSRF behaviour is annoying

Bernhard Posselt nukeawhale at gmail.com
Fri Sep 14 22:06:00 UTC 2012


What if there was a built in post request that renews the token?

On 09/14/2012 11:31 PM, Christian Reiner wrote:
> Hello Bernhard, 
>
>> On Friday 14 September 2012 23:07:35 Bernhard Posselt wrote:
>> I got my rss reader (news app) open for a long time, basically i use it
>> like a normal application. After one hour it forces me to reload the
>> page which is really annoying.
> that is indeed annoyoing and a problem I ran into as well. It is caused by the 
> static way the CSRF protection is designed inside owncloud. The problem occurs 
> at least for all those apps implemented as client side application. With this 
> I mean applications loading once inside the owncloud framework and working 
> without requiring a full page reload for every action. 
> I solved this for my 'Shorty' app by simply refreshing the CSRF token shortly 
> before it becomes invalid. This strategy works fine for me. I do not think 
> this refresh strategy is a security thread. Because in the end all other apps 
> do the same with their frequent full page reloads. 
>
> However there is one issue I am not certain yet how to decide: 
> the problem you mention still occurs even when using that refresh strategy 
> just mentioned in case you had suspended or hibernated the system and wake it 
> up again. Since the token could not be refreshed during the down time it might 
> be invalid now. One two possible solutions: a reload (argh!) or the ajax call 
> that refreshes the token does _not_ protect itself with the CSRF protection, 
> so does not require the token itself. Although this appears to open a security 
> thread on first sight I am not that sure about it: in the end a full page 
> reload does nothing else...
>
>> What about generating the CSRF value for each user and renew it on every
>> login? So the cookie will still be renewed but without ever bugging the
>> user.
> Moving the token into a cookie does not change anything. I assum you mean 
> something else: Keep the token in a cookie and consider it valid during the 
> whole session. So as long as that session cookie is valid. 
> This ignores one of the basic ideas of CSRF: the token being usable only for a 
> small period of time. So I don't think that is a good idea: there are reasons 
> to invalidate the tokens after a certain time. The current time span of one 
> hour is a compromise between convenience and security. The longer that period 
> gets the more static the character of the page gets from the piont of view of 
> potential missusing code. 
>
> I am glad you brought that problem up. 
> It is worth being discussed, since the current compromise is indeed annoying. 
> And annoyed users are a very, very bad thing...
>
> So: any comments? ideas? drawbacks? 
>




More information about the Owncloud mailing list