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