[Owncloud] CSRF behaviour is annoying
Frank Karlitschek
frank at owncloud.org
Fri Sep 14 22:13:54 UTC 2012
This would be the preferred solution from a security point of view.
Frank
On 15.09.2012, at 00:06, Bernhard Posselt <nukeawhale at gmail.com> wrote:
> 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?
>>
>
> _______________________________________________
> Owncloud mailing list
> Owncloud at kde.org
> https://mail.kde.org/mailman/listinfo/owncloud
More information about the Owncloud
mailing list