1. 미리 지정된 변수
-super globals
$_GET : GET 방식으로 보낸 데이터가 담겨 있다.(보안 취약)
$_POST : POST 방식으로 보낸 데이터가 담겨 있다.
-사용자 인증
$_COOKIE
$_SESSION
2. GET 방식으로 데이터를 보내는 방법
-URL을 통해 전달 -> 데이터의 크기도 제한
-url에 ?을 붙이고 그 다음에 값을 입력하면 들어간다.
- 정보가 쉽게 공개 되게 때문에 보안에 취약
이런식으로 정보가 외부에 들어나기 때문에 엄청나게 취약하다.
!! 일반 변수를 슈퍼 그로벌 변수처럼 (693줄)
/etc/php.ini
-register_globals = off // 사용하지 않는게 좋다.
데이터가 전달됬는지 확인하기
isset :bool값과 값이 있다면 string까지 알려줌.
데이터를 입력하지 않았을 때
데이터를 입력했을 때
데이터를 입력하지 않았을 때 웹페이지와 소스코드
데이터를 입력했을 때의 웹페이지와 소스코드
(PHP의 특징)
위의 결과를 보면 내가 입력하는 값에 따라 페이지 소스 또한 달라진다는 것을 알 수 있다.
3. POST 방식으로 데이터를 보내는 방법
-form 태그를사용해서만 전달이 가능
- 헤더가 아닌 메세지 바디를 통해 전달
form의 주요 속성
- action
- method=GET | POST
기본구조
value를 넣으면 그 값을 넣을 수 있다.
placeholder를 이용하면
이런식으로 옅하게 뜬다.
POST와 GET의 차이
-POST는 url에 보이지 않는다.
GET
POST
data.php
데이터를 전송하면
data.php 파일에서 데이터를 받아 출력하게 해준다 (POST방식이라 url에 보이지 않는다.)
실습
값이 있으면 값을 출력하고 값이 없으면 form을 출력하게 한다.
<!doctype html>
<html>
<head></head>
<body>
<?php
if(isset($_POST[age]) && isset($_POST[name]) && $_POST[age]!=='' && $_POST[name] !=='' ) {
echo "<p> name: $_POST[name] </p>";
echo "<p> age: $_POST[age] </p>";
}
else
{
?>
<form action=POST.php method=POST >
<input type=text name=name >
<input type=text name=age >
<input type=submit >
</form>
<?php
}
?>
</body>
</html>
'Web Security' 카테고리의 다른 글
Cookie와 session (0) | 2018.02.26 |
---|---|
아파치 웹 서버 인증 과 DB (0) | 2018.02.21 |
CGI(PHP) (0) | 2018.02.19 |
키입력 받아서 화면에 출력 (0) | 2018.02.14 |
웹의이해 (JavaScript) (0) | 2018.02.12 |