我有一个问题,有没有人有机会使用Aura Session 2.x?如果是这样的话我需要帮助。
我的问题是我不知道我应该叫什么(?)CSRF才能正常工作。不幸的是,从这个例子中我没有学到任何东西。我不能把它用在实践中。
链接到示例:Aura Session 2.x CSRF
我的代码:`
$session_factory = new \Aura\Session\SessionFactory;
$session = $session_factory->newInstance($_COOKIE);
#It seems to me that there is a problem with that
$user = $session->getSegment('Vendor\Package\User');
$unsafe = $_SERVER['REQUEST_METHOD'] == 'POST'|| $_SERVER['REQUEST_METHOD'] == 'PUT' || $_SERVER['REQUEST_METHOD'] == 'DELETE';
#$user->auth->isValid() not work
#Notice: Undefined property: Aura\Session\Session::$auth
#Fatal error: Uncaught Error: Call to a member function isValid() on null
if($unsafe && $user->auth->isValid()){
$csrf_value = $_POST['__csrf_value'];
$csrf_token = $session->getCsrfToken(); #it works
echo !$csrf_token->isValid($csrf_value) ? 'This looks like a cross-site request forgery.' : 'This looks like a valid request.';
} else {
echo 'CSRF attacks only affect unsafe requests by authenticated users.';
}`
提前感谢您的回复。
发布于 2018-06-23 17:57:05
文档示例https://github.com/auraphp/Aura.Session#session-security中显示的代码"$ user ->auth->isValid()“引用了Aura.Auth库https://github.com/auraphp/Aura.Auth#service-idioms的”CSRF ()“习惯用法,但是CSRF机制并不一定需要用户登录。因此,不一定要检查用户身份验证,而且在任何情况下,您都不一定需要使用Aura.Auth库,您也可以实现自己的身份验证控制系统。
https://stackoverflow.com/questions/44169260
复制相似问题