공개 사이트에서 Laravel의 CSRF 보호를 사용하고 있습니다. 그러나 Laravel이 이것을 유지하기 위해 세션을 사용하기 때문에 사용자가 컴퓨터에서 멀어지고 이전에 열어 둔 페이지로 돌아가는 경우에만 AJAX 요청이 작동하지 않는다는 것을 발견 할 수 있습니다. 세션 시간이 초과되어 토큰이 더 이상 유효하지 않으므로 Ajax 요청이 작동하지 않습니다. 이러한 사용자가 "로그인 한"사용자 인 경우 로그인 페이지로 다시 리디렉션 할 수 있습니다. 사용자는 공개 사용자이므로 페이지를 새로 고쳐야 강제로 다시 작동합니다 (어색한).Laravel은 CSRF 토큰을 얼마나 구체적으로 빌드하고 검사합니까?
아니면 내가 잘못 했습니까? CSRF 토큰이 Laravel에 의해 여전히 유효성을 확인합니까? (세션이 만료 된 후에도 페이지가 토큰을 계속 전송하지만 ... Laravel이이를 어떻게 처리합니까?). 최적의 솔루션은 세션 시간 제한과 별도로 토큰 만료 제한을 부여 할 수 있도록 타임 스탬프에 부분적으로 토큰을 사용하는 것입니다. 내 CSRF 토큰을 2 일 동안 지속시킬 수 있습니다. 따라서 2 일 동안 멀리 걸어가는 사용자 만이 죽은 페이지로 돌아갑니다.
궁극적으로이 질문을 내게 : 이 처리하는 Laravel 프레임 워크의 특정 코드는 무엇입니까? 현재 찾으려고합니다. 또한, 내가 할 수있는 교체에 쉽게 드롭 또는 내 페이지로 출력 csrf_token();
내 자신의 버전을 만들려면 남겨두고 난 그걸로 갈 자신의 경로 필터를 만들 필요가있다.
아에... 나는이 코드를 알고 있었다, 그러나 나는 실제로 수행되고 있는지 계산 보려고 프레임 워크에 깊은 찾고 있었다. 그러나 CSRF를 위해 여기에서 세션이 사용되고 있음을 분명히 볼 수 있습니다. CSRF 보호의 일반적인 사용법은 로그인 한 사용자를위한 것이라고 생각합니다.그러나 나는 JSON을 내 사이트의 다른 공개 영역에서 보내고 있는데, 일부 공용 API처럼 사이트를 사용해 볼 수있는 사람들이 쉽게 잡아 먹고 싶지 않습니다. – prograhammer
그리고 ... 저 헬퍼를 무시할 수 있다고 상기시켜줌으로써 당신을 정말로 도왔습니다. 그래서 안전한 내기는 저를 다시 쓰고 세션에서이 토큰을 얻는 것입니다. Antonio에게 다시 한 번 감사드립니다! – prograhammer