On Thu, Feb 2, 2017 at 7:13 PM, Sam Wilson <s...@samwilson.id.au> wrote:
> Hello labradors (that's the collective noun, yes?),
>
> I'm working on a tool http://tools.wmflabs.org/ia-upload/test/ that
> needs to do some time-consuming file processing before uploading the
> result to Commons. To do this, it saves users' oauth access tokens in
> local (non-web-accessible) files and then a separate CLI process comes
> along and uses the tokens to do the upload. Then the token is deleted.
>
> I realise that it's probably not a very good idea to store people's
> credentials like this! Are there any guidelines about how to do this?
> What is the best way? I don't really want to have to ask users to come
> back and do the upload (although, it could email them when their file is
> ready, if tokens shouldn't be stored at all).

I would use a tool specific database table [0] rather than the local
files system mostly to avoid using NFS to save state. Otherwise this
is not a horrible practice. The token that your app receives is only
valid in combination with the app's secret key. You should do anything
you can to prevent it from being leaked to other users of the
application as that would allow them to impersonate the true owner.
Storage in a database table that is owned by your tool and not
readable by other tools or as you are doing in a file if that file is
not world readable are reasonable precautions. Fundamentally you
should treat the user's OAuth token the same way you would treat the
password for a bot account or any other authentication secret.

[0]: https://wikitech.wikimedia.org/wiki/Help:Tool_Labs/Database#User_databases

Bryan
-- 
Bryan Davis              Wikimedia Foundation    <bd...@wikimedia.org>
[[m:User:BDavis_(WMF)]]  Sr Software Engineer            Boise, ID USA
irc: bd808                                        v:415.839.6885 x6855

_______________________________________________
Labs-l mailing list
Labs-l@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/labs-l

Reply via email to