웹보안
RFC
url : ftp://ftp.ietf.org/rfc
rfc(request for comments)문서 프로토콜 상세한 내용 정의
rfcindex.txt->찾기(ctrl+F)->TCP(transmission control protocol)
찾기rfc793->rfc793.txt.pdf
이경로로 들어가면 tcp프로토콜에 대해 상세하게 보실수 있어요 모르는 프로토콜을 보시려면 여기서
찾아보시면 되요! 하지만 영어로 되어있어요
world wide web
▶전 세계에 있는 네트워크에 연결된 시스템을 통해 정보를 공유할수 있는 정보 공간
▶1989년 3월 유럽 입자 물리 연구소(CERN)의 연구원 인 팀 버너스 리의 제안으로 시작되어 연구,
개발되었다
▶웹에 관련된 기술은 월드 와이드 웹 콘소시엄(W3C)이 개발하고 있따.
▶W3C는 HTML,HTTP등의 표준화를 진행하고 있으며, 최근에는 시맨틱웹에
관련된 표준을 제정하고 있다.
웹 구조
1차 방화벽 F/W 포트 번호 확인
2차 방화벽 web F/W
클라이언트 요청
서버 답변
web server 에 저장할 공간이 부족해서 디비에 저장
정적방식
web application server
서버와 데이터베이스의 통신 동적방식
internet 에서 제공한는 서비스들중 하나 web
브라우저에 웹 페이지가 표시되는 과정
브라우저 주소창에 http://www.xcurelab.com입력
DNS Query를 통해 www.xcurelab.com을 IP주소로 변환
TCP 3way-Hand Shaking (80/tcp)
HTTP Request 전송
서버에서 Response 전송
Fire Wall
방화벽은 Packet Filtering 방식과 Stateful Inspection 방식으로 나눌 수 있으며 Packet Filtering 방식은 보안상 문제점이 많으므로 요즘은
Stateful Inspection 방식이 주로 사용됩니다.
Packet Filtering 방식은 아직도 Router의 ACL이나 리눅스머신의 iptable 형태로 남아있습니다.
일반적인 방화벽은 패킷의 IP주소와 Port를 보고 패킷을 통과시킬지를 결정합니다.
웹 패킷은 주로 80, 443 TCP 포트를 통해 진입하며 이 패킷의 내용은 방화벽에 의해 검사되지 않습니다.
Web Firewall : Webnight
웹 애플리케이션 방화벽(이하 웹 방화벽)은 가끔 그 이름으로 인해 오해 받는 경우가 있다. 단순히 웹에 대한 접근제어 기능만을 제공한다고 이해하는 것인데, 사실 웹 방화벽의 주요 기능은 접근제어를 포함한 웹에 대한 공격 방지이다. 이러한 기능상의 특징은 웹 방화벽에 대한 WASC(Web Application Security Consortium)의 정의에서도 확인할 수 있다.
프록시 서버
정의 dns서버 질의해서 가져온 캐쉬값 중간서버 (프록시) 저장
tool paros
프록시 서버 연결 설정 인터넷 옵션 ->LAN설정 -> 아이피,8080포트
proxy->intercept->intercept is on
proxy->options->clinet server (rules)체크
Trap->Trap request Trap response 체크하고 웹 브라우저 새로고침 하고 continue누르면서
서버와 클라이언트 사이의 request와 response 확인!
패킷바꾸기
Tool->Filter 들어가서 위에 사진처럼 바꾸고 싶은 이름을 쓰시면 됩니다.
네이버->네이트로 패킷 바꾸기
네이버를 치면 네이버라는 글이 네이트로 다 바뀌는것을 알수 있어요~
HTTP
▶HTTP(Hyper Text Transfer Protocol) //tcp/ip기반 위에서 동작
사용자에 요청에의해 비철차적으로 제공하는 text
▶web 상에서 정보를 주고받기 위한 핵심 포로토콜
▶정적인 텍스트 자원을 송/수신하기 위해 개발됨
▶애플리케이션 레벨의 프로토콜
▶메시지 기반으로 동작
Hyper Text 란?
사용자에게 비순차적인 검색을 할 수 있도록 제공되는 텍스트를 의미합니다.
문서 속의 특정자료가 다른 자료나 데이터베이스와 연결되어 있어 서로 넘나들며 원하는 정보를 얻을 수 있습니다.
HTML(Hypertext Markup Language, 하이퍼텍스트의 구조를 서술하는 일종의 컴퓨터 언어)의 주된 구성요소입니다.
Hyper Text를 넘나들며 링크를 따라 이동하는 행위를 "브라우징", 또는 "서핑" 이라고 합니다.
HTTP Packet Layout
(와이어샤크 http syn ack 캡처)
HTTP Request and Response 구조
HTTP 주요 Method
method (POST,GET)알아보기
로그인 폼 만들기
<%
id=request("user_id")
pw=request("user_pw")
%>
input Data<p>
<%
response.write(id)
response.write("/")
response.write(pw)
%>
GET Method는 웹 서버에 URL에 해당하는 자원을 요청할 때 사용합니다.
서버는 GET 요청을 받게 되면 해당하는 자원이 있는지 확인 한 후 응답을 하게 됩니다.
클라이언트는 GET Method를 사용할 때 간단한 파라메터를 전달 할 수 있습니다.
이 파라메터는 URL의 뒤에 붙여 전달합니다.
전달된 파라메터는 서버측 언어에 의해 사용됩니다.
GET METHOD 만들기
<html>
<head>
<title>Get/ POST Request Test</title>
</head>
<body>
<form method="GET" action="method_test.asp">
ID:<input type="text" name="user_id"><br>
PW:<input type="password" name="user_pw"><br>
<input type="submit" value="login">
</form>
</body>
</html>
GET METHOD 는 url 부분에(빨간색으로 표시한 부분) 아이디와 패스워드가 표시됩니다.
그래서 아이디 패스워드 는 GET METHOD로 만들지 않아요
POST METHOD 만들기
<html>
<head>
<title>Get/ POST Request Test</title>
</head>
<body>
<form method="POST" action="method_test.asp">
ID:<input type="text" name="user_id"><br>
PW:<input type="password" name="user_pw"><br>
<input type="submit" value="login">
</form>
</body>
</html>
POST는 대용량 데이터 처리를 위해 Body에 HTML 폼등의 데이터를 포함할 수 있다. 그리고 사용자가 입력한 데이터는 시스템 내부적으로 처리되어 웹 브라우저 주소창에는 페이지 정보만 보이게 된다.
이처럼 HTTP body 부분에 표시되기 때문에 POST METHOD 도 로그인 할때 사용하지 않아요