Found a better solution that involved disallowing login when username=false (registration_id field not present) and when janrain reports no email. basically this prevents AOL logins.
Let's all think whether there is a better way to handle it in a backward compatible way. On Oct 9, 12:18 am, Massimo Di Pierro <[email protected]> wrote: > Correction. The identifier is there. The problem is that web2py only > uses the janrain identifier as an identifier if > auth.define_tables(username=True) else it uses email. AOL login does > not passes the email along. > > We could modify tools.py so that to always add a registration_id field > to the table even if auth.define_tables(username=False). This solves > the problem above but it will force a migration of your auth_user > table and your app will no longer recognize users who have previously > logged in. Suggestions? > > For now if you use janrain or other third party federated ID, make > sure > > auth.define_tables(username=True) > > Massimo > > On Oct 8, 11:55 pm, Massimo Di Pierro <[email protected]> > wrote: > > > > > > > > > A major vulnerability has been discovered. > > > When a user logs in with Janrain using AOL, Janrain reports an > > identifier=None instead of a valid unique id for the user as it > > normally does. Therefore is two different people login in a web2py > > application using different AOL accounts, Janrain reports them as the > > same person. > > > I have just pushed a partial fix to trunk that prevents login when the > > Janrain identifier is set to None. that means you cannot login in > > web2py with AOL. > > > According to the Janrain online docs, the identifier should be unique > > for every user but it does not appear to be the case for AOL users. > > > Even if you do not wish to upgrade, copy gluon/contrib/login_methods/ > > rpx_account.py from trunk into your version. > > > Massimo

