테스트 사이트 - 개발 중인 베타 버전입니다

check_token 채택완료

질문맨 9년 전 조회 3,201

그누보드 고수님들.. 부탁드립니다. 알려주세요..

 

-----------------------------------------

내가 쓴 함수

 

- 토큰 함수

</p><p>// 토큰 생성
function _token()
{
    return md5(uniqid(rand(), true));
}</p><p>
// 불법접근을 막도록 토큰을 생성하면서 토큰값을 리턴
function get_token()
{
    $token = md5(uniqid(rand(), true));
    set_session('ss_token', $token);</p><p>    return $token;
}</p><p>// 세션변수 생성 
function set_session($session_name, $value) 
{ 
    if (PHP_VERSION < '5.3.0') 
        session_register($session_name); 
    // PHP 버전별 차이를 없애기 위한 방법 
    $$session_name = $_SESSION[$session_name] = $value; 
}</p><p>
// POST로 넘어온 토큰과 세션에 저장된 토큰 비교
function check_token()
{
    set_session('ss_token', '');
    return true;
}</p><p>

 

- 내가 사용한 토큰

</p><p><form action="test.php" method="post"></p><p><input type="hidden" name="token" value="<?php echo _token(); ?>"></p><p></form></p><p>

 

- 처리 값

</p><p>$token = $_POST['token'];</p><p> </p><p>if($token!=check_token())</p><p>{</p><p>echo "error";</p><p>exit;</p><p>}</p><p>
 

댓글을 작성하려면 로그인이 필요합니다.

답변 1개

채택된 답변
+20 포인트
P
9년 전

뭘 의도하시는지 정확히 모르겠네요.. 

일단 토큰값을 클라이언트가 서버로 넘긴다는 부분에서 이미 그 토큰은 신뢰성을 잃어버립니다.

생성된 토큰은 세션을 통해 저장하고 검증하세요.

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인