나는 현재 유효성을 확인하기위한이 두 기능, 토큰을 생성하기위한 하나 하나가 :보안 양식과 동일한 페이지에 CSRF 토큰을 생성하는 것이 안전합니까?
function getToken() {
if(isset($_SESSION['token'])) {
return $_SESSION['token'];
} else {
$token = //random key generator goes here;
$_SESSION['token'] = $token;
return $token;
}
}
function validateToken($token) {
if ($token == getToken()){
return true;
} else {
return false;
}
}
을 그리고 내 등록 양식이 숨겨진 입력 포함이 안전한가요
<input type="hidden" name="token" value="<?php echo getToken(); ?>">
를? 나는 합법적 인 사용자의 세션이 만료되면 CSRF가이 등록 양식에 도달하고 악의적 인 사이트/iframe 자체가 세션에 존재하지 않아 토큰을 생성하므로 어떤 인증을했는지 묻는 중입니까?
쿠키로 인해 사용자가 계속 로그인 한 것으로 가정합니다.
내가 잘못 이해하고 있습니까? iframe과 같은 원격 연결이 백엔드에서 세션을 생성 할 수 없습니까?
... 세션이 이보다 안전하지 않은 이유는 무엇입니까? – Machavity
@Machavity 죄송합니다, 당신이하려는 말을 이해할 수 없습니다. 필자가 묻는 것은 폼이 목적을 이겨내는 것과 같은 페이지에서 토큰을 생성하는 것을 상상하기 때문에 접근 방법이 안전 할까하는 것입니다. 그렇죠? –
"토큰을 양식과 같은 페이지에 생성"--- 무슨 의미입니까? CSRF 토큰은 추측 할 수 없어야합니다. 이것이 유일한 요구 사항입니다. – zerkms