csrf 방어 session 질문입니다. 채택완료
안녕하세요
csrf 방어에 대해서 제가 적용한 방법이 올바른 방법인지 궁금해서 선생님들께 조언을 구합니다.
a.php
Copy
# 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
Copy
# CSRF
session_start();
if ($_POST['csrf_token'] !== $_SESSION['csrf_token']) {
session_destroy();
alert("비정상", G5_URL."/bbs/logout.php");
}
# CSRF
이렇게 현재 적용을 해놓았는데, 이렇게하면 CSRF 방어에 안전한 방법일까용?
선생님들의 조언 부탁드립니다.
감사합니다.
답변 1개
채택된 답변
+20 포인트
답변에 대한 댓글 1개
2년 전
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인
[code]
if (!isset($_SESSION['csrf_token'])) {
$_SESSION['csrf_token'] = bin2hex(random_bytes(32));
}
[/code]
혹시 이부분이 보안에 취약할수있을까요?
앞단에서 토큰이 페이지소스보기로 다 보여서 매번 새로운 토큰을 생성되도록 !isset을 지웠는데 이렇게 적용하는게 보안에 더 도움이 되는게 맞나용 ?