오늘 공부할 내용은 Web에서 데이터의 전달(입,출력)이다.
데이터를 전달하는 방법은 2가지가 있다
GET방식과 POST방식이 있다. 오늘은 GET방식에 대해 알아보겠다.
우선 웹브라우저에 들어간 후 개발자도구(F12)를 켠다.
리눅스에서 vi를 통해 편집한 파일을 브라우저에서 실행시켰을 때 아래 사진과 같이 html파일이 뜬다.
network를 클릭해보면 사진과 같이 vi에서 입력했던 코드를 알 수 있다
또한 Network에 header를 보면 URL, IP주소, GET방식 등 여러가지 정보를 알 수 있다.
하지만 이게 결코 장점은 아니다 . 어떤 값을 입력했을 때 URL에 관련된 경로와 정보가 같이 출력되기 때문에
보안적인 면에서 별로 좋은 편은 아니다.
우선 PHP를 설치해보자
#yum search php 를 입력해서 php에 관련된 내용들을 찾아볼 수 있다
x86을 사용할수도 있고 i686을 사용할수도 있기 때문에 search를 통해 찾아본 후 알맞게 다운받아 사용하면 된다.
검색해본 후 #yum install php.i686 을 통해 다운받는다
다운이 완료되었다면 cd/ var/www/html 에서 임의의 php파일을 만들고 그안에 내용을 편집해보자.
기본적인 출력방법 3가지. echo, print , printf 편한거를 사용하면 된다.
<?php / // php 블럭의 시작을 나타낸다 자바의 스크립트 안에 있는것과 같은 원리
// #> php hello.php // 주석처리
echo "Hello, PHP\n"; //echo : 화면에 출력하고 싶을 때
print "Hello' PHP\n"; //파이썬처럼 그냥 사용해도 된다
printf ("%s\n","hello PHP");
?>
vi에 편집한 후 위와 같이 #php hello.php를 입력함으로써 출력정보를 확인할 수 있다.
제대로 입력된것을 확인,
PHP에서 <?php ?> 이것은 자바스크립트의 <script></script> 와 같은 원리이다
하지만 그범위 밖에서 문자를 입력하면 어떻게 될까?
결과는 똑같이 출력된다,
하지만 <?php ?> 안에 별다른 print나 echo 등 없이 그냥 문자만 입력할 경우에는 오류가 뜬다.
어떻게보면 당연한거지만 블럭밖의 문자열이 출력된다는 것만 알아두자.
에러 화면.
자바스크립트와 PHP의 차이에 대해 간략하게 알아보자
JavaScript
- 실행시키지 않고 통채로 가져와서 웹에서 실행한다
- 오류가 났을 때 코드를 통해 직접 찾아볼 수 있다
PHP
- 출력이 됐을 때 어떠한 명령에 의해 어떤 과정으로 출력되었는지 알수가 없다.
- 왜냐하면 웹에서 실행을 시키는데 오류가 나도 코드를 보여주지 않기 때문이다
- 그렇기 때문에 오류를 찾는 번거로움은 있지만 보안적인 측면에선 효율성이 좋다
- PHP를 통해 실행시킨 웹브라우저는 에러가 나면 아무것도 출력되지 않고 빈 화면이 뜬다.
만약 이렇게 문서가 그대로 뜬다면 어떻게 해야할까
오타문제일수도 있겠지만 실행기가 없거나, PHP파일로 인식을 못했을 수도 있다.
그럴때는 #service httpd restart를 통해 재실행을 시켜줘야 한다
또한 뒤에 확장자가 다르면 php파일로 인식하지 않는다.
그럴 경우에도 위와 같이 문서가 그대로 출력되기 때문에 꼭 알아두자
※ 주의 사항 ※
나는 분명 위에 \n을 입력했는데 문자가 나란히 입력되었다. 왜그럴까?
이유는 웹브라우저에서 실행시킬때 \n은 먹히지 않기 때문이다.
한칸을 띄우고 싶다면 <br>을 사용해야 한다
소스보기에서는 \n이 먹히지만 실제 브라우저에서는 먹히지 않는다
많은 사람들이 헷갈려하니 주의하자. 웹브라우저에서는 <br>을 사용해야 한다 !
<br>을 사용했을 경우 나타나는 출력화면.
에러메세지를 알려주지 않기 때문에 초보자들 같은 경우 소스에서 오타찾는것을 어려워할 수 있다
그럴때 에러메세지를 나타내주는 명령어가 있다.
#vi /etc /php.ini 를 통해 편집 화면에 들어가서 530번째 줄로 530gg를 눌러 이동해보자
그럼 아래 화면과 같이 display_errors =Off가 뜬다.
off를 on으로 바꿔준 후 Apache를 재시작 시켜줘야 한다
바꾼다음 실시간으로 적용되는것이 아니기 때문이다,
하얀 백지만 나올 경우 코드상에 문제가 있기 때문에 어디 부분이 틀렸는지 찾을 때 사용하도록 하자
행으로 찾을 땐 행번호+gg 를 입력하면 되고
단어로 찾을땐 /단어 를 쳐서 찾으면 간단하게 찾을 수 있다
이런식으로 입력할 경우 그냥 아무 숫자도 안뜨고 Array만 출력된다.
배열에 첫번째 자리 $arr[0]만 출력한다는 의미.
즉 맨 앞에 있는 10이 출력.
배열은 두가지 타입으로 사용할 수 있다
변수의 선언없이 변수를 정의하는 것만 있다
arr은 뒤에가 배열 타입이기 때문에 배열이 되는 것이다.
echo $arr[0] 으로 인해 10은 출력되고
print_r($arr)로 인해 위와 같은 화면이 출력된다. 배열을 나타낼 때 많이 사용.
두번째 원소의 키는 문자키로도 지정할 수 있다
배열 안에 배열을 쓰는 다차원 배열도 사용이 가능하다
php에서 . 은 java에서 +와 같은 붙여주는 기능을 한다.
'Web 모의해킹' 카테고리의 다른 글
웹보안) 데이터베이스 개념 및 연동 (0) | 2018.03.08 |
---|---|
웹보안) 사용자 인증 (0) | 2018.03.08 |
웹보안) 리눅스를 통한 DOM,BOM (0) | 2018.02.19 |
웹보안) 리눅스를 이용한 문서 실행시키기 (0) | 2018.02.13 |
웹보안) HTML (0) | 2018.02.13 |