관리 메뉴

웹개발자의 기지개

[PHP] CSRF 공격방어 작업하기 본문

PHP

[PHP] CSRF 공격방어 작업하기

http://portfolio.wonpaper.net 2021. 7. 25. 06:35

PHP 상으로 CSRF (cross-site request forgery) 공격을 막는 작업을 해보자.

우선 작업을 할 이전페이지단에서, token 이라는 특정랜덤값이 든 세션 변수를 하나 할당한다.

 

그리고 해당 posting 되는 실제 페이지에서 넘어온 그 token 값과 세션 변수값을 확인하여 그 값들이 다 정확하다면

원하는 작업을 진행하도록 하는 것이다.

 

[ 이전페이지.php ]

1
2
3
<?
$_SESSION['token'= md5(uniqid(mt_rand(), true));
?>
cs

 

<form name="f" method="post">

<input type="hidden" name="token" value="<?=$_SESSION['token']?>">

</form>

 

 

[ posting.php ]

$token = $_POST['token'];

1
2
3
4
5
6
7
8
<?
if (!$token || $token != $_SESSION['token']) {
    // token 값이 없거나 다르므로 메인페이지로 
    echo "<meta http-equiv='refresh' content='0; url=/'>";
    exit;
}
?>
 
cs

 

 

 

참고 : https://www.phptutorial.net/php-tutorial/php-csrf/

 

 

 

 

 

 

Comments