在Laravel Socialite中禁用会话状态验证的安全风险

时间:2019-04-26 12:25:21

标签: laravel security laravel-5 stateless laravel-socialite

Laravel Socialite docs说:

  

stateless方法可用于禁用会话状态   验证。将社交身份验证添加到   API:

     

return Socialite::driver('google')->stateless()->user();

“禁用会话状态验证”听起来让我感到恐惧。文档未详细说明安全性的权衡是什么。

在什么情况下会话状态验证很重要,为什么?


背景信息和上下文:

当我使用stateless()时,我的社交名流(使用Facebook)完全正常。

但是,如果我删除stateless(),则仅流程中的“正常情况”部分有效,而流程中重新请求“电子邮件”权限的部分(如果用户首先忽略了它们)则不起作用工作,结果是Laravel\Socialite\Two\InvalidStateException

此外,对于每个请求,我不会多次调用$provider->stateless()->user(),因为我从these docs知道它从会话中删除了一个“状态”变量,因此在以后的调用中将失败。 >

(我使用getRedirectLoginHelper()->getReRequestUrl($redirectUrl, ['email'])。请参见FacebookRedirectLoginHelper doc

0 个答案:

没有答案