이 항목에 대한 질문을 보았지만 해결 방법을 찾을 수 없습니다. 내 인덱스 페이지의 상단에 나는 단순히CSRF 처리시 토큰 유효성 확인
<?php
session_start();
function generate_secure_token($length = 16) {
return bin2hex(openssl_random_pseudo_bytes($length));
}
$_SESSION['token'] = generate_secure_token();
$token = $_SESSION['token'];
?>
하고있는 중이 야 그럼 내 양식에서 숨겨진 필드로 $token
을 설정합니다. 내 질문은 양식 처리와 관련이 있습니다. 내가 가지고있는 순간
if (empty($_POST[ 'csrf_token' ]))
{
$errors['token'] = 'Something went wrong';
}
그래서 토큰이 있는지 단순히 확인합니다. 이것이 충분하나요? 토큰을 다시 만든 다음 세션 토큰과 비교하는 다른 예제를 보았습니다.하지만 필요한지 확실하지 않습니다.
내가 올바르게 확인할 수있는 방법에 대한 조언.
감사
_ "이 정도인가?"_ 아니, 당신은 확인 필요 사용자가 게시 한 토큰은 이전에 작성한 토큰과 일치합니다. 그렇지 않으면, 사용자는 단지 어떤 쓰레기를 토큰으로 보낼 수 있습니다. –
[OWASP CSRF Cheat Sheet] (https://www.owasp.org/index.php/Cross-Site_Request_Forgery_ (CSRF) _Prevention_Cheat_Sheet)를 읽고 나서 가능한 경우 [CSRFProtector] (https : //www.owasp.org/index.php/CSRFProtector_Project) – heavyd