csrf 방어 session 질문입니다.

csrf 방어 session 질문입니다.

QA

csrf 방어 session 질문입니다.

답변 1

본문

안녕하세요

csrf 방어에 대해서 제가 적용한 방법이 올바른 방법인지 궁금해서 선생님들께 조언을 구합니다.

 

a.php


# CSRF 토큰생성 또는 가져오기
session_start();
 
if (!isset($_SESSION['csrf_token'])) {
    $_SESSION['csrf_token'] = bin2hex(random_bytes(32));
}
# CSRF 토큰생성 또는 가져오기
 
=> ajax post 전송 a_update.php, csrf_token: '<?php echo $_SESSION['csrf_token'];?>';

 

 

a_update.php


# CSRF
    session_start();
 
    if ($_POST['csrf_token'] !== $_SESSION['csrf_token']) {
        session_destroy();
        alert("비정상", G5_URL."/bbs/logout.php");
    }
    # CSRF

 

 

이렇게 현재 적용을 해놓았는데, 이렇게하면 CSRF 방어에 안전한 방법일까용?

 

선생님들의 조언 부탁드립니다.

 

감사합니다.
 

이 질문에 댓글 쓰기 :

답변 1

일회용 토큰이라면 맞는 방법입니다.

선생님 답변 감사드립니다.


if (!isset($_SESSION['csrf_token'])) {
    $_SESSION['csrf_token'] = bin2hex(random_bytes(32));
}


혹시 이부분이 보안에 취약할수있을까요?
앞단에서 토큰이 페이지소스보기로 다 보여서 매번 새로운 토큰을 생성되도록 !isset을 지웠는데 이렇게 적용하는게 보안에 더 도움이 되는게 맞나용 ?

답변을 작성하시기 전에 로그인 해주세요.
QA 내용 검색
질문등록
전체 49
© SIRSOFT
현재 페이지 제일 처음으로