check_token
본문
그누보드 고수님들.. 부탁드립니다. 알려주세요..
-----------------------------------------
내가 쓴 함수
- 토큰 함수
// 토큰 생성
function _token()
{
return md5(uniqid(rand(), true));
}
// 불법접근을 막도록 토큰을 생성하면서 토큰값을 리턴
function get_token()
{
$token = md5(uniqid(rand(), true));
set_session('ss_token', $token);
return $token;
}
// 세션변수 생성
function set_session($session_name, $value)
{
if (PHP_VERSION < '5.3.0')
session_register($session_name);
// PHP 버전별 차이를 없애기 위한 방법
$$session_name = $_SESSION[$session_name] = $value;
}
// POST로 넘어온 토큰과 세션에 저장된 토큰 비교
function check_token()
{
set_session('ss_token', '');
return true;
}
- 내가 사용한 토큰
<form action="test.php" method="post">
<input type="hidden" name="token" value="<?php echo _token(); ?>">
</form>
- 처리 값
$token = $_POST['token'];
if($token!=check_token())
{
echo "error";
exit;
}
답변 1
뭘 의도하시는지 정확히 모르겠네요..
일단 토큰값을 클라이언트가 서버로 넘긴다는 부분에서 이미 그 토큰은 신뢰성을 잃어버립니다.
생성된 토큰은 세션을 통해 저장하고 검증하세요.
답변을 작성하시기 전에 로그인 해주세요.