티스토리 뷰
▶ 앞부분 내용
- HTML, Javascript(document (dom/bom))
- DOM&BOM
-document ->제일 많이 씀
-history
-window
>> https://www.codecademy.com/ 참고 사이트
1) WEB 2.0 : CGI
CGI : 서버에서 실행하고 결과만 받음 (소스를 받을 수 없음)
>> 보이지 않기 때문에 취약점은 추측만 가능
- CGI : PHP 를 이용한 프로그래밍
!! 데이터의 전달(입/출력)
공격이란?
- 비정상적인 입력값 (의도하지 않은 결과를 나타나게 하는 것)
- 입력을 하면 입력한 값이 서버로 가고 출력한 값을 서버로 받아옴(네트워크를 이용해서 통신을 한다)
▶ GET , POST 두가지 방법이 있음
HTTP
F12 => 네트워크 -> GET 확인 (캡쳐)
통신과 연결
- 눈에 보이지 않지만 해당되는 것을 추상할 수 있어야 함
[ 웹 어플리케이션 ]
- CGI 프로그램
- PHP로 만들어진 프로그램
>> 참조 사이트: www.php.net
[ php 설치 ]
- 인터프리터 설치
- 서버에서 실행되므로 실행기를 설치해야한다
(javascript 는 웹브라우저가 실행기)
- 컴파일 할 필요가 없음
- 인터프리터 언어 - python과 같음
- 버전마다 사용이 다름
# yum install php.i686
>확장자
.php
1) 출력하기
- echo
- print
- printf -> c언어 문법 사용
>> 출력문
- 긴 문자열 ""
- 짧은 문자열 ''
# vi hello.php
// php의 기본 구조
<?php // php블럭의 시작
echo "Hello,PHP\n";
print "Hello,PHP\n";
printf("%s\n","hello, PHP");
?> // php 블럭의 끝
==> 블럭 밖에 써놓는 것은 상관없음 (php 코드가 아닌것은 블럭 밖에 써놓는다)
1-1) 실행하는 방법
- 코드에러가 발생해도 아무것도 나오지 않음
- console 창에 코드에러가 뜨는 것은 javascript
! 코드에러를 찾을 떄
1>> # php hello.php
/var/www/html/ ->document의 디렉터리
2>> 웹 브라우저
192.168.59.154/hello.php 실행
! 서버에 코드가 있어야 실행됨
hello.php 로컬컴퓨터에 저장해도 실행되지 않음
! \n 은 웹 브라우저에서 인식하지 않는다
<br>로 사용해야함
<?php
echo "Hello, PHP<br>";
print "Hello, PHP <br>";
printf("%s<br>","hello, PHP");
?>
2)주석
// : 한줄
/* */ :여러줄
- c언어와 동일
!!! php 와 javascirpt 웹화면에서 보는 것은 동작하는 것이 다르지 않음
( 동작의 다른점을 느낄 수 없지만 다르다는 것을 인지해야함 )
php -> 코드가 들어있지 않고 문자열 하나만 나옴 (소스 코드 확인)
> 어떠한 명령에 의해 출력되었는지 알수 없음
javascript-> 코드가 들어있음
> 코드를 보고 어떤 명령을 했는지 알 수 있음
! php로 만들어진 어플리케이션에 취약점이 있어도 확인 할 수가 없음
- 추측성 (관련지식이 없으면 힘듦)
2) 에러메세지 출력
/etc/php.ini
! 보안상 출력하는 것은 안 좋음
- 530번 On 으로 변경
-> 브라우저에 에러가 출력이 됨
- notice와 error 는 무시하고 써야함
#service httpd restart
// 재시작을 해줘야 적용이 됨
3) 배열
$arr=array(
"foo"=>"bar";
)
- 연관배열
- 변수의 선언 없이 변수 정의 하는 것 만 있음
$arr=array(10,20,30,40,50);
echo $arr; // Array 만 나옴 (원소가 나오지 않음)
echo $arr[0]; // 10 나옴
> print_r($arr)
- 배열안의 원소를 전부 출력 가능
- 인덱스라고 하지 않고 key라고 함
<실습>
3-1)
#vi array.php
<?php
$arr=array(10 => 10,'second'=>20,30,40,50);
echo $arr[0]."<br>";
!! . 은 +와 같은 역할 ( 앞과 뒤를 연결해주는 연결연산자 )
echo $arr[second]."<br>";
echo $arr[10]."<br>";
print_r($arr);
?>
3-2) 배열안에 배열
#vi array.php
<?php
$arr=array(10 => 10,'second'=>20,30=>array(1,2,3),40,50);
echo $arr[0]."<br>";
echo $arr[second]."<br>";
echo $arr[10]."<br>";
echo $arr[30][10]."<br>";
print_r($arr);
?>
3-3) 문자열안에 문자를 표현하는 것이 가능함
- echo "$arr[second]<br>";
ex) $tmp='php';
echo "{$tmp}is blar blar ... <br>";
//애매한 부분을 표현할 때 {}사용
4) 함수
- javascript와 동일
function
5) 연산자
www.php.net 참조
- javascript 동일
$a 부정
$a-$b 뻴셈
> 비교연산자
===
!==
> 논리연산자
> 문자열 연산자
-.
-{}
>foreach (변수 as $value)
<실습>
#vi num.php
1)
<?php
$arr=array(10 => 10,'second'=>20,30,40,50);
foreach($arr as $value){
echo $value ."<br>";
}
?>
1-2) key와 value 따로 분리 할 수 있음
<?php
$arr=array(10 => 10,'second'=>20,30,40,50);
foreach($arr as $key => $value){
echo "$key => $value <br>";
}
?>
1) 배열
2) key와 value를 분리
'Web Security > Web' 카테고리의 다른 글
Web - 인증 / COOKIE , SESSION/와이어샤크 확인 (0) | 2018.03.05 |
---|---|
Web- PHP 데이터 전달 <GET/POST> (0) | 2018.03.02 |
Web - DOM/BOM객체 (javascript) (0) | 2018.03.02 |
Web- Web1.0 < Javascript > (0) | 2018.02.19 |
웹(Web) 기초 1) Web 1.0 (0) | 2018.02.17 |