SWING WEB2 1주차

: 티스토리에 있던 글 백업

인터넷: TCP/IP를 사용하는 컴퓨터 연결 통신망

그중 웹(World Wide Web)은 하이퍼텍스트 구조를 활용하여 정보를 연결하고 사이트들을 거미줄처럼 엮은 인터넷이다.

WEB의 구성

1. HTTP 프로토콜: 통신을 위한 규칙

2. HTML: 하이퍼텍스트 작성을 위한 도구

3. URL: 사이트 주소

WEB의 동작 구성

  프론트엔드 백엔드
해석 위치 클라이언트 서버
문서 static dynamic
처리 방식 수동, 고정 실시간
통신 방식 단방향 양방향
제작 기술 HTML, CSS, JavaScript PHP, Java, C++ 등
프레임워크  Angular JS Bootstrap Express Laravel

제작 기술

1. HTML(프론트)

웹 언어. 태그, 속성, 내용으로 나뉜다.

폼: 프론트에서 입력받은 데이터를 한 번에 서버로 전송하는 양식

a. <form>

action  데이터를 전송할 웹 URL     
method 데이터 전송 HTTP 방식  GET 요청  흔적이 남는다 
POST 요청     
name 폼 이름    

b. : 클라이언트가 입력할 수 있는 태그 

속성 속성 값  
type text 텍스트 입력
radio 선택 목록중에 하나  
checkbox 선택 목록중에 여러개  
password 암호  
button 버튼 누르기  
reset 입력값 초기화  
submit 서버로 전송  
name 텍스트 이름
value 텍스트 입력 초기값

_c.

속성 설명
name 상자 이름
size 표시할 항목 개수
multiple 복수 선택 가능 

2. javascript(프론트)

웹 페이지를 동적으로 만듦, 인터프리터 언어

*인터프리터 언어: 컴파일 작업 거치지 않고 바로 실행하는 언어

  로 표시  
주석 // 한 줄 주석
/*(어쩌구저쩌구)*/ 여러 줄 주석  
출력 window.alert()  
document.write    
console.log()    
innerHTML    
선언 var 변수 선언+값 초기화 
let 블록 스코프 지역변수 선언+값 초기화  
const 블록 스코프 읽기 전용 상수 선언   
데이터 타입 원시 타입 boolean
null    
undefined    
number    
bigint    
string    
symbol    
객체 타입 object  

*동적 타이핑

3. PHP(백)

서버 측 스크립트 언어. PHP로 작성한 코드를 HTML 소스 내부에 삽입 -> PHP 엔진을 이용한 동적 웹페이지 생성 

장점 단점  
오픈소스+저렴 보안에 취약 원격 코드 실행
대부분 서버에서 지원 XSS  
자료구조 간편, 내장 함수 多 SQL 인젝션  
직관적->작성 코드 분량 ↓ PHP Configuration  
HTML 문서 처리에 적합 파일 시스템 공격  
  복잡한 사이트 구축 힘들다   

php 동작 원리

브라우저  웹서버 PHP 파서 데이터베이스
1. 요청 보내기 -> 2. 스크립트 실행 요청 -> 3. 데이터베이스와 연결하여 작업 수행   
  <- 5. 웹 페이지 응답  <- 4. 처리 결과 전달   
  <?php 어쩌구저쩌구 ?>  
주석 // 한 줄 주석
/* 어쩌구저쩌구 */ 여러 줄 주석  
# 한 줄 쉘 스타일 주석  
선언 $ 변수 선언
$$ 가변변수 선언 변수의 값->변수 이름  

*echo; HTML 스트링에 문자 출력

레드팀: 공격자 관점

블루팀: 방어자 관점

Attack surface/Vector: 공격 지점/경로

취약점:공격 시 활용하는 부분

PoC: 취약점을 이용해서 공격이 가능하다는 걸 증명하는 코드 

Exploit: 실제 공격 코드 

client side attack 클라이언트 겨냥한 취약점 XSS: 클라이언트를 공격해서 쿠키/세션 탈취
server side attack  서버 겨냥한 취약점  SQL 인젝션: 서버 내 데이터베이스 정보 탈취
Command 인젝션: 서버 파일 탈취, 명령어 원격 실행