PHP
- 일반 변수, 슈펴 글로벌 변수
* PHP는 버젼에 민감합니다
- 배열
배열 만드는 법
$arr = array(10,20,30,40,50);
한번에 배열 보는 법
print_r($arr);
ex)
1. 연관 배열
-파이썬의 Dict 타입과 유사한 형태입니다
2. 멀티 배열
-배열 안에 배열을 만들 수 있습니다
연관 배열 & 멀티 배열
ex)
- foreach 문
파이썬의 for each문과 유사합니다
*key 값도 따로 뽑아 올 수가 있습니다
- 함수
기본 구조
<?php
function foo($arg_1, $arg_2, /* ..., */ $arg_n){
echo "예제 함수.\n";
return $retval;
}
?>
WEB 2.0의 핵심
- 입력 값 전달(client에서 server로)
데이터를 서버로 전달 할 수 있는 방법
1.HTTP 에서 조회할 수 있는 메서드를 이용하는 방법
1). GET
- 메세지 바디가 없다
- 메세지 헤더를 통해서만 전달이 가능
- 리퀘스트 라인의 URI 필드를 통해서 전달
- 전달하려는 데이터의 크기가 한정적이다.
- 헤더의 크기를 넘어갈 수는 없다.
- 전달하려는 데이터가 외부에 노출(보안상 취약)
- URI/info.php?변수=값&변수=값&변수=값.
*get으로 통신하는거 확인하기
<?php
print_r($_GET);
?>
- POST에는 당연히 아무것도 안들어져 있습니다(get방식이 때문에)
- REQUEST라는 변수에도 들어 있습니다
vi /etc/php/ini 설정파일에서 693번줄 register_globals= On으로 바꾸면 모든 변수를 슈퍼 글로벌 변수화 시킵니다.
** 외부에서 받아오는 변수도 슈퍼 글로벌화가 가능하기 때문에 보안상 위험합니다
ex)
2). POST
- 메세지 바디가 있다.
- 전달하려는 데이터의 크기의 제한이 없다.
- 전달하려는 데이터가 외부에 쉽게 노출되지 않는다
- 반드시 form 태그가 있어야만 한다.
- form은 웹 브라우저에서 사용자로부터 입력을 받기 위한 필드
*form 태그 예시
* name 속성을 이용하면 값을 전달 할 수 있게됩니다
이제 무슨 방식으로 보낼지와 어디로 보낼지만 정해서 코드를 짜주시면 됩니다
저는 POST방식과 get.php로 보내는 코드를 짰습니다
send를 누르면 get.php에 잘 전달 되는 걸 알 수 있습니다.
2. 쿠키를 이용한 전달
- 사용자 인증시에 사용
웹인증
- HTTP도 TCP 통신을 한다.
- 웹은 세션을 임의로 해제한다.
!TCP 통신을 하는 어플리케이션의 인증은 TCP세션이 종료되기 전까지는 유효
1. 쿠키를 이용한 인증
쿠키 : 인증을 통과하면 서버가 클라이언트한테 주는것 (인증 토큰)
쿠키는 documnet 객체가 관리합니다.
이런 식으로 쿠키값을 볼 수가 있습니다.
그래서 쿠키변조도 가능합니다
2. 세션을 이용한 인증
로그인 페이지 구현
로그인을 하면 창이 없어지는 거 까지 구현했습니다
로그인을 누르면 없어지는 걸 확인할 수 있습니다
내일 계속 이어가도록 하겠습니다
읽어주셔서 감사합니다
php의 더 자세한 내용은
http://docs.php.net/manual/kr/ 에서 찾아보시면 됩니다
반복문 ,연산자 ,class 등등 문법은 자바스크립트와 파이썬과 비슷한걸 보실 수 있습니다.
'Security > Web' 카테고리의 다른 글
[WEB SECURITY]8 MYSQL (0) | 2017.08.21 |
---|---|
[WEB SECURITY]7. PHP 2 (0) | 2017.08.18 |
[WEB SECURITY]5.Javascript 2 와 PHP (0) | 2017.08.16 |
[WEB SECURITY]4.Javascript (0) | 2017.08.14 |
[WEB SECURITY]3.HTML와 JAVASCRIPT (0) | 2017.08.11 |