2017. 8. 17. 20:19ㆍWebHacking/Web
[ GET Method]
[ 특징 ]
메시지 바디가 없음
=>메시지 헤더를 통해서만 전달
=> request 라인의 URI필드를 통해서 전달
=> 데이터의 크기에 한계가 있음 / 헤더의 크기를 넘어 갈 수 없다
=> 전달하려는 데이터가 외부에 노출되어서 보안상 취약하다
[ php 소스코드 ] - #vi /var/www/html/info.php
소스코드에서 사용한 $_GET , $_REQUEST 변수는 슈퍼 글로벌 변수이다
GET메서드를 사용해서 데이터를 전달하면 $_GET 변수와 $_REQUEST변수에 자동적으로 그 값들이 저장된다
$_GET[name] , $_GET[age] : $_GET변수의 각 index명에 해당하는 요소들의 값을 출력하도록 설계하였다
[ php 실행 페이지 ]
주소창에 " 192.168.6.123/info.php?name=kim&age=25 " 를 입력하고 이동해보자
" ? "를 구분자로사용해서 변수를 지정해서 GET메서드를 통해 데이터를 전달할 수 있다
슈퍼 글로벌 변수 $_GET의 요소들로 $_GET[name] = kim , $_GET[age] = 25 값들이 저장되었음을 확인할 수 있다
( $_REQUEST 변수에도 똑같이 저장되어진다 )
[ 와이어샤크 캡쳐 화면 ] - HTTP GET Method
GET메서드를 통해서 해당 웹페이지에 이동하는 패킷을 캡쳐한 화면입니다
우리가 사용하는 변수들이 헤더에 그대로 나타나는 것을 확인할 수 있습니다
=> 보안상 매우 취약하므로 중요한 데이터를 전달할 때에는 POST메서드를 사용해야합니다
* 참고 설정 ( php 설정파일 /etc/php.ini )
#vi /etc/php.ini
register_globals = Off => On
해당 설정을 On으로 변경시켜주면 웹 페이지에서 변수를 초기화 시키면 해당 변수는 자동으로 슈퍼 글로벌 변수로 지정된다
따라서 우리는 해당 변수를 웹 페이지에서 쉽게 사용할 수 있습니다 ( 실습을 위해서 On 으로 바꿔둔 것)
[ POST Method ]
[ 특징 ]
메시지 바디가 있음 - 바디를 통해서 데이터를 전달한다
1> 전달하려는 데이터의 크기의 제한이 없다
2> 전달하려는 데이터가 외부에 쉽게 노출되지 않는다
3> 반드시 form 태그가 있어야한다 ( 회원가입, 로그인 등등... )
[ html 소스코드 ] - #vi /var/www/html/input.html
< form method=POST action=info.php >
=> POST메서드를 사용하겠다 / 데이터는 같은 디렉토리 안에 있는 info.php 페이지로 전송하겠다
폼 태그안에 이름과 나이를 입력할 수 있는 input태그와 해당 데이터들을 전송할 수있게 하는 submit을 생성시켰습니다
[ html 실행 페이지 ]
전송하기 버튼을 누르면 해당 데이터는 192.168.6.123/info.php 페이지로 전송되고 페이지는 이동된다
( 아래 php 출력화면을 보면됩니다 )
[ php 소스코드 ] - #vi /var/www/html/info.php
$_GET , $_REQUEST , $_POST 각 변수들을 출력해보겠습니다
20,21번 줄의 $name , $age 변수들은 위에서 php.ini 설정파일을 변경해서 직접 변수를 사용할 수 있게한 것
[ php 실행 페이지 ]
$_GET 변수에는 아무것도 저장되지 않지만 $_REQUEST , $_POST 변수에 저장됩니다
[ 와이어샤크 캡쳐화면 ] - HTTP POST Method
POST메서드를 이용한 HTTP통신 패킷을 캡쳐한 화면입니다
GET 메서드와는 다르게 POST메서드는 메시지 바디안에 암호화되어서 전송되어집니다
따라서 패킷을 도청당하지만 않는다면 GET과는 다르게 메시지 안의 내용이 노출되어지지않습니다
'WebHacking > Web' 카테고리의 다른 글
MySQL설치 및 DB생성 / Table 생성 (0) | 2017.08.21 |
---|---|
PHP Cookie / Session 생성 및 초기화 (0) | 2017.08.18 |
PHP배열(array생성자) 및 반복문(foreach) (0) | 2017.08.02 |
가상머신에 PHP설치 / PHP출력문 / 변수 (0) | 2017.08.02 |
자바스크립트 DOC객체 메서드 / 사용법 (0) | 2017.08.02 |