ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Routing :: Request Method
    Language/PHP 2020. 6. 26. 13:23

     

    PHP 는 기본적으로 접속관련 ( HTTP 프로토콜 ) 정보를 $_SERVER 변수에 배열형식으로 저장한다.

     

    Routing 처리시 우리는 Request 방식에 따라 처리해야하는데,

     

    1. 비동기 ( Ajax ) 접속으로의 공격

    - Ajax : Ansync Request 방식으로 Ansynchronous Javascript and XML , 말그대로 JS와 XML을 이용한 비동기 통신이다.

    Ajax 는 일반적으로 타 URL에 대한 접근을 막지만 오픈소스로 타 URL에 대해 접속하는 Ansync 라이브러리를 필요해따라 쓴다. 이 방법으로 타 서버에 공격할 수 있으므로, Ajax로 넘어온 값에 대한 보안처리가 필요할 수 있다.

     

    2. GET 방식의 URL이력 취약점

    - GET : URL 방식으로 브라우저에 이력이 남고, 서버접속이력에 기존 접속 URL이 저장될 수도 있다. 보안상 무분별한 GET 은 지양해야한다. 

     

    3. Request 방식별로 나누지 않은 Controller 를 사용할 경우

    - 사실상 Controller를 나눌수도 있지만, 재사용성이 떨어지기에 Routing 단계에서 처리해주기도 한다.

     

    대표적으로 위 세가지 보안 또는 로직상의 이유가 떠오른다.

    요청방식을 확인하는 방법은 앞서 언급한 $_SERVER 을 이용할 수 있다.

     

    <?php
    
        if ($_SERVER['REQUEST_METHOD'] === 'GET') {
            $mode = $vars['mode'];
        }
        
     ?>

     

    $_SERVER 배열의 REQUEST_METHOD 인덱스에 담긴 값이 그 해답이다

     

    여기서 GET / POST 등과 같은 접속방식을 확인하고 RestfulAPI를 구성할 수도 있고

    앞서 말한 세가지 경우를 해결하는 방법이 될 수도 있다.

     

     

     

    댓글

Designed by Tistory.