Tải bản đầy đủ (.pdf) (169 trang)

Bảo mật ứng dụng web trên internet pdf

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.99 MB, 169 trang )

Khoa CNTT
B GIÁO DC VÀ ÀO TO
TRNG I HC KHOA HC T NHIÊN TP.HCM
KHOA CÔNG NGH THÔNG TIN
B MÔN MNG MÁY TÍNH
cd
LUN VN TT NGHIP
 TÀI:
NGHIÊN CU MT S VN  V BO MT
NG DNG WEB TRÊN INTERNET
GVHD: Th.S. MAI VN CNG
SVTH : NGUYN DUY THNG - 9912074
NGUYN MINH THU - 9912156
KHÓA HC: 1999-2003
Khoa CNTT
Li cm n
Sau gn 6 tháng n lc thc hin, lun vn nghiên cu “Các k thut tn công và
bo mt ng dng Web trên Internet” đã phn nào hoàn thành. Ngoài s c gng
ht mình ca bn thân, chúng em đã nhn đc s khích l rt nhiu t phía nhà
trng, thy cô, gia đình và bn bè.
Trc ht chúng con xin cám n ba m đã luôn đng viên và to mi điu kin
tt đ chúng con hc tp và hoàn thành lun vn tt nghip này.
Chúng em xin cám n thy cô trng i Hc Khoa Hc T Nhiên đã truyn đt
nhng kin thc quý báu cho chúng em trong sut quá trình hc tp. c bit,
chúng em xin bày t lòng chân thành sâu sc đn thy Mai Vn Cng, ngi đã
tn tình hng dn và giúp đ chúng em trong quá trình làm lun vn tt nghip.
Xin cám n tt c bn bè đã và đang đng viên, giúp đ chúng tôi trong quá trình
hc tp và hoàn thành tt lun vn tt nghip này.
Khoa CNTT
Li nhn xét
……………………………………………………………………………………………


……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
Khoa CNTT
Nghiên cu mt s vn đ v bo mt ng dng Web trên Internet
MC LC
GII THIU………………………………………………………………………………
T chc ca lun vn……………………………………………………………………
PHN TH NHT: C S LÍ THUYT……………………………………………….
Chng 1: Gii thu ng dng Web……………………………………………………
I. KHÁI NIM NG DNG WEB……………………………… ……………………
II. MÔ T HOT NG CA MT NG DNG WEB……… …………………
Chng 2: Các khái nim, thut ng liên quan …………………………………………

I. HACKER………………………………………………………………………………
II. HTTP HEADER……………………………………………………………………
III. SESSION…………………………….………………………………………………
IV. COOKIE……………………………………………………………………………
V. PROXY……………………………………………………………………………….
Chng 3: Gii thiu s lc v các k thut tn công ng dng Web…………………
I. KIM SOÁT TRUY CP WEB………………………………………………………
I.1. Thâm nhp h thng qua ca sau…………………………………………………
II. CHIM HU PHIÊN LÀM VIC…………………………………………………
II.1. n đnh phiên làm vic……………………………………………………………
II.2. ánh cp phiên làm vic………………………………………………………….
III. LI DNG CÁC THIU SÓT TRONG VIC KIM TRA D LIU NHP HP
L……….……………………………………………………………………………
III.1. Kim tra tính đúng đn ca d liu bng ngôn ng phía trình duyt…………
III.2. Tràn b đm…………… ……………………………………………………….
III.3. Mã hóa URL……………………………………………………………………
III.4. Kí t Meta………………………………………………………………………
III.5. Vt qua đng dn……………………………………………………………
III.6. Chèn mã lnh thc thi trên trình duyt nn nhân………………………………
III.7. Thêm câu lnh h thng………………….……………………………………
7
9
11
12
13
16
18
19
19
21

22
25
26
27
27
27
27
27
27
28
28
28
28
29
29
29
Khoa CNTT
Nghiên cu mt s vn đ v bo mt ng dng Web trên Internet
III.8. Chèn câu truy vn SQL…………………….……………………………………
III.9. Ngôn ng phía máy ch………………
III.10. Kí t rng….…………………………………………………………………
III.11. Thao tác trên tham s truyn…………………………………………………
IV.  L THÔNG TIN……………………………………………………………….
V. T CHI DCH V………………….……………………………………………
PHN TH HAI: CÁC K THUT TN CÔNG VÀ BO MT NG DNG WEB
Chng 4: Thao tác trên tham s truyn…………………………………………………
I. THAO TÁC TRÊN URL……………………………………………………………
I.1. Khái nim………………………………………………………………………….
I.2. Mt s bin pháp khc phc……………………………………………………….
II. THAO TÁC TRÊN BIN N FORM……………………………………………….

II.1. Khái nim…………………………………………………………………………
II.2. Mt s bin pháp khc phc……………………………………………………
III. THAO TÁC TRÊN COOKIE………………………………………………………
III.1. Khái nim ……………………………………………………………………….
III.2. Mt s bin pháp khc phc……………………………………………………
IV. THAO TÁC TRONG HTTP HEADER…………………………………………….
IV.1. Khái nim………………………………………………………………………
IV.2. Mt s bin pháp khc phc……………………………………………………
Chng 5: Chèn mã lnh thc thi trên trình duyt nn nhân (Cross Side Scripting)…….
I. K THUT TN CÔNG CROSS-SITE SCRIPTING (XSS)………………………
II. PHNG PHÁP TN CÔNG XSS TRUYN THNG…………………………
III. MT S WEBSITE TÌM THY L HNG XSS………………………………
IV. TN CÔNG XSS BNG FLASH………………………………………………….
V. CÁCH PHÒNG CHNG……………………………………………………………
Chng 6: Chèn câu truy vn SQL (SQL Injection)…………………………………….
I. KHÁI NIM SQL INJECTION……………………………………………………
II. GII THIU MÔ HÌNH C S D LIU………………………………………
30
30
30
30
31
31
33
34
35
35
36
36
36

38
39
39
40
41
41
42
43
44
46
50
51
54
56
57
57
Khoa CNTT
Nghiên cu mt s vn đ v bo mt ng dng Web trên Internet
III. CÁC CÁCH TN CÔNG………………………………………………………….
III.1. K thut tn công SQL Injection………………………………………………
III.2. Tn công da vào câu lnh SELECT……………………………………………
III.3. Tn công da vào câu lnh HAVING…………………………………………
III.4. Tn công da vào câu lnh kt hp UNION……………………………………
III.5. Tn công da vào lnh INSERT………………………………………………
III.6. Tn công da vào STORED PROCEDURE……………………………………
III.7. Nâng cao………………………………………………………………………
III.7.1. Chui kí t không có du nháy đn………………………………………….
III.7.2. Tn công 2 tng………………………………………………………………
III.7.3. Tránh s kim soát…………………………………………………………
III.7.4. Dùng Extended Stored Procedure……………………………………………

III.7.4.1. Dùng Extended Stored Procedure có sn trong h thng SQL Server…
III.7.4.2. Dùng Extended Stored Procedure t to………………………………….
III.7.4.3. Nhp tp tin vn bn vào bng……………………………………………
IV. CÁCH PHÒNG CHNG…………………………………………………………
IV.1. Kim tra d liu………………………………………………………………
IV.2. Khoá cht SQL Server (SQL Server Lockdown)……………………………
Chng 7: Chim hu phiên làm vic (Session Management)…………………………
I. TNG QUAN V SESSION ID……………………………………………………
II. N NH PHIÊN LÀM VIC……………………………………………………
II.1. Tn công Session ID trên tham s URL…………………………………………
II.2. Tn công Session ID trong bin n form………………………………………
II.3. Tn công Session ID trong cookie……………………………………………….
II.4. Cách phòng chng……………………………………………………………….
III. ÁNH CP PHIÊN LÀM VIC…………………………………………………
III.1. Tn công kiu d đoán phiên làm vic (Prediction sessionID)…………………
III.2. Tn công kiu vét cn phiên làm vic (Brute force ID)………………………
III.3. Tn công kiu dùng đon mã đ đánh cp phiên làm vic……………………
58
58
60
62
62
69
70
70
70
71
74
75
75

76
77
77
78
81
83
84
85
88
89
89
91
92
93
93
94
Khoa CNTT
Nghiên cu mt s vn đ v bo mt ng dng Web trên Internet
III.4. Cách phòng chng……………………………………………………………….
III.5. S khác bit gia đánh cp phiên làm vic (session hijacking) và n đnh phiên
làm vic (session fixation)……………………………………………………………
Chng 8: Tràn b đm (Buffer Overflow)……………………………………………
I. KHÁI NIM………………………………………………………………………….
II. S  T CHC CA B NH………………………………………………….
II.1. Stack……………………………………………………………………………
II.2. Push và Pop………………………………………………………………………
II.3. Cách làm vic ca hàm…………………………………………………………
II.4. Shell code………………………………………………………………………
III. MT S CÁCH GÂY TRÀN B M QUA NG DNG WEB……………….
IV. CÁC CÁCH PHÒNG CHNG…………………………………………………….

Chng 9: T chi dch v (DoS)……………………………………………………….
I. KHÁI NIM…………………………………………………………………………
II. NHNG KH NNG B TN CÔNG BNG DOS……………………………….
III. CÁC K THUT TN CÔNG……………………………………………………
III.1. Khái nimv Tcp bt tay ba chiu………………………………………………
III.2. Li dng TCP thc hin phng pháp SYN flood truyn thng………………
III.3. Tn công vào bng thông………………………………………………………
III.3.1. Kiu tn công th 1…………………………………………………………
III.3.2. Kiu tn công th 2…………………………………………………………
III.4. Kiu tn công vào tài nguyên h thng………………………………………….
IV. BIN PHÁP PHÒNG CHNG…………………………………………………….
Chng 10: Mt s k thut tn công khác……………………………………………
I. MÃ HÓA URL (URL Encoding) ……………………………………………………
I.1. Khái nim…………………………………………………………………………
I.2. Mt s bin pháp phòng chng…………………………………………………
II. KIU TN CÔNG VT NG DN…………………………………………
II.1. Khái nim………………………………………………………………………
94
94
97
98
99
100
101
102
104
106
106
108
109

109
110
110
112
113
113
113
117
117
119
120
120
121
121
121
Khoa CNTT
Nghiên cu mt s vn đ v bo mt ng dng Web trên Internet
II.2. Mt s bin pháp phòng chng…………………………………………………
III. TN CÔNG DA VÀO KÍ T RNG…………………………………………
III.1. Khái nim………………………………………………………………………
III.2. Mt s bin pháp phòng chng………………………………………………….
IV. NGÔN NG PHÍA TRÌNH CH………………………………………………….
IV.1. Khái nim………………………………………………………………………
IV.2. Cách tn công……………………………………………………………………
IV.3. Bin pháp phòng chng…………………………………………………………
Chng 11: Tng kt quá trình tn công ca Hacker…………………………………
I. THU THP THÔNG TIN  MC H TNG CA MC TIÊU…………………
II. KHO SÁT NG DNG WEB……………………………………………………
III. TN CÔNG………………………………………………………………………
Chng 12: Tng kt các bin pháp phòng chng……………………………………

I. VI NHNG NHÀ QUN TR MNG……………………………………………
II. VI NHNG NHÀ THIT K NG DNG WEB……………………………….
III. VI NGI S DNG NG DNG WEB……………………………………
PHN TH BA: CHNG TRÌNH WEB CHECKER………………………………
Chng 13: Chng trình Web Checker………………………………………………
I. C T CHNG TRÌNH WEB CHECKER……………………………………
I.1. Tng quan………………………………………………………………………
I.2. Yêu cu…………………………………………………………………………
I.2.1. Yêu cu chc nng…………………………………………………………….
I.2.1. Yêu cu phi chc nng………………………………………………………
II. KIN TRÚC CHNG TRÌNH WEB CHECKER………………………………
II.1. Kin trúc chng trình Web Checker…………………………………………
II.2. Giao tip gia chng trình vi trình ch Web………………………………….
III. CÀI T…………………………………………………………………………
III.1. Ngôn ng cài đt………………………………………………………………
III.2. Phng pháp cài đt…………………………………………………………….
122
123
123
123
123
123
125
125
127
128
131
132
134
135

137
139
140
141
142
142
142
142
143
143
143
144
145
145
145
Khoa CNTT
Nghiên cu mt s vn đ v bo mt ng dng Web trên Internet
III.2.1. S dng mô hình giao din dng Dialog…………………………………….
III.2.2. S dng ActiveX Control (Microsoft Web Browser)……………………….
III.2.3. S dng giao din lp trình Window Socket 2………………………………
III.2.4. Mt s lp và hàm chính đc cài đt trong chng trình………………….
III.3. Mô t chng trình và cách s dng……………………………………………
III.3.1. Màn hình chng trình………………………………………………………
III.3.2. Cách s dng………………………………………………………………
IV. ÁNH GIÁ CHNG TRÌNH……………………………………………………
IV.1. Nhng vn đ đt đc………………………………………………………
IV.2. Nhng vn đ hn ch…………………………………………………………
KT LUN……………………………………………………………………………
I. NHNG VN  T C…………………………………………………….
II. HNG PHÁT TRIN…………………………………………………………….

PH LC………………………………………………………………………………
145
145
146
146
151
151
152
153
153
153
155
156
157
158
Khoa CNTT
Nghiên cu mt s vn đ v bo mt ng dng Web trên Internet
-Trang 7-
GII THIU
Ngày nay, khi Internet đc ph bin rng rãi, các t chc, cá nhân đu có nhu cu
gii thiu thông tin ca mình trên xa l thông tin cng nh thc hin các phiên giao
dch trc tuyn. Vn đ ny sinh là khi phm vi ng dng ca các ng dng Web ngày
càng m rng thì kh nng xut hin li và b tn công càng cao, tr thành đi tng
cho nhiu ngi tn công vi các mc đích khác nhau. ôi khi, cng ch đn gin là đ
th tài hoc đùa bn vi ngi khác.
Cùng vi s phát trin không ngng ca Internet và các dch v trên Internet, s lng
các v tn công trên Internet cng tng theo cp s nhân. Trong khi các phng tin
thông tin đi chúng ngày càng nhc nhiu đn nhng kh nng truy nhp thông tin ca
Internet, thì các tài liu chuyên môn bt đu đ cp nhiu đn vn đ bo đm và an
toàn d liu cho các máy tính đc kt ni vào mng Internet.

Theo s liu ca CERT (Computer Emegency Response Team - "i cp cu máy
tính"), s lng các v tn công trên Internet đc thông báo cho t chc này là ít hn
200 vào nm 1989, khong 400 vào nm 1991, 1400 vào nm 1993, và 2241 vào nm
1994, và nm 2001 là 5315 v.
Nhng v tn công này nhm vào tt c các máy tính có mt trên Internet, các máy tính
ca tt c các công ty ln nh AT&T, IBM, các trng đi hc, các c quan nhà nc,
các t chc quân s, nhà bng Mt s v tn công có quy mô khng l (có ti
100.000 máy tính b tn công). Hn na, nhng con s này ch là phn ni ca tng
bng. Mt phn rt ln các v tn công không đc thông báo, vì nhiu lý do, trong đó
Khoa CNTT
Nghiên cu mt s vn đ v bo mt ng dng Web trên Internet
-Trang 8-
có th k đn ni lo b mt uy tín, hoc đn gin nhng ngi qun tr h thng không
hay bit nhng cuc tn công đang nhm vào h thng ca h.
in hình là cuc tn công vào phn mm thng mi ca IBM tháng 3/2001, hai
hacker đã tìm thy l hng trên ng dng mà bt c ai vi mt trình duyt Web cng
có th ly tài khon ca ngi dùng, thm chí c ngi qun tr.
Không ch s lng các cuc tn công tng lên nhanh chóng, mà các phng pháp tn
công ngày càng tinh vi và có t chc. Mt khác, vic qun tr các h thng mng đòi
hi nhà qun tr h thng có kin thc và kinh nghim v h thng mng chc chn,
do đó s yu kém trong qun lý s to nhiu điu kin cho các hacker khai thác.
Cng theo CERT, nhng cuc tn công thi k 1988-1989 ch yu là đoán tên ngi
s dng-mt khu (UserID/password) hoc s dng mt s li ca các chng trình và
h điu hành (security hole) làm vô hiu h thng bo v, tuy nhiên các cuc tn công
vào thi gian gn đây còn bao gm c các thao tác nh gi mo đa ch IP, theo dõi
thông tin truyn qua mng, chim các phiên làm vic t xa (telnet hoc rlogin), cài
trojan hay worm đ kim soát hay điu khin máy tính…vì th, nhu cu bo v thông
tin trên Internet là cn thit nhm mc đích bov d liu, bo v thông tin ngi dùng
và bo v h thng.
Khi nói đn vn đ bo mt, hu ht các chuyên gia bo mt đu chú trng đn s an

toàn ca h thng mng và h điu hành.  bo v cho h thng, phng pháp thng
đc chn là s dng firewall. Tuy nhiên, theo tuyên b ca CSI/FBI : 78% ni b hi
có s dng firewall và 59% thì b tn công thông qua Internet, c th hn là theo báo
cáo ca CSI/FBI Computer Crime và Security Survey thì tng s thit hi do nhng
ng dng Web b tn công t nm 1997 đn nm 2000 là 626 triu đôla M.
Khoa CNTT
Nghiên cu mt s vn đ v bo mt ng dng Web trên Internet
-Trang 9-
Vi nhng công c t đng tìm l hng tuy giúp rt nhiu cho nhng nhà lp trình
Web nhng vn không th ngn chn toàn b vì công ngh Web đang phát trin nhanh
chóng (ch yu chú trng đn yu t thm m, yut tc đ…) nên dn đn nhiu
khuyt đim mi phát sinh. S tn công không nm trong khuôn kh vài k thut đã
phát hin, mà linh đng và tng lên tùy vào nhng sai sót ca nhà qun tr h thng
cng nh ca nhng ngi lp trình ng dng.
Lun vn đc thc hên vi mc đích tìm hiu, phân tích các l hng bo mt trong
các ng dng web (cùng vi chng trình minh ha) đ qua đó đ xut các phng án
sa cha. Song song đó, lun vn còn thc hin mt chng trình “T đng phát hin
l hng trên ng dng Web” giúp ích cho nhng nhà lp trình Web ít kinh nghim
tránh nhng sai sót trong quá trình to các ng dng.
T chc ca lun vn
Lun vn gm 13 chng chia thành 3 phn:
Phn th nht: C S LÍ THUYT
Phn này gm có 3 chng:
+ Chng 1 : Gii thiuv ng dng Web
+ Chng 2 : Mt s khái nim, thut ng liên quan.
+ Chng 3: S lc các k thut tn công ng dng Web
Phn th hai:CÁC K THUT TN CÔNG VÀ BIN PHÁP PHÒNG CHNG
Phn này gm có 9 chng t chng 4 đn chng 12 trong đó7 chng đu bàn
lun v các k thut tn công, cui mi chng là bin pháp phòng chng cho tng k
thut. Chng 11 nói v quá trình tn công cahacker vàđn chng 12 là ni dung

các bin pháp phòng chng chung nht.
Khoa CNTT
Nghiên cu mt s vn đ v bo mt ng dng Web trên Internet
-Trang 10-
Phn th ba : CHNG TRÌNH “WEB CHECKER”
Là gm chng cui trình bày, gii thích v chng trình
Kt thúc lun vn là phn kt lun, tóm lc li nhng vn đ đã trình bày và mt s
hng phát trin trong tng lai và danh mc các tài liu tham kho.
Khoa CNTT
Phn I: C s lý thuyt
-Trang 11-
PHN TH NHT
C S LÍ THUYT
Khoa CNTT
Chng 1: Gii thiu ng dng Web
-Trang 12-
Chng 1
GIITHIU NG DNG WEB
Ni dung:
I. Khái nim vng dng Web
II. Mô t cách hot đng ca mt ng dng Web
Khoa CNTT
Chng 1: Gii thiu ng dng Web
-Trang 13-
CHNG 1: GII THIU NG DNG WEB
cd
Lun vn đc thc hin nhm tìm hiu v các k thut tn công trang Web và đ ra
cách phòng chng. Do đó, trong chng đu tiên lun vn s gii thiu s lc mt s
khái nim c bn và đây chính là nn tng đ xây dng ni dung cho nhng phn sau.
I. KHÁI NIM NG DNG WEB

ng dng Web là mt ng dng ch/khách s dng giao thc HTTP đ tng tác vi
ngi dùng hay h thng khác.
Trình khách dành cho ngi s dng thng là mt trình duyt Web nh Internet
Explorer hay Netscape Navigator. Cng có th là mt chng trình đóng vai trò đi
lý ngi dùng hot đng nh mt trình duyt t đng. Ngi dùng gi và nhn các
thông tin t trình ch thông qua vic tác đng vào các trang Web. Các chng trình
có th là các trang trao đi mua bán, các din đàn, gi nhn e-mail…
Tc đ phát trin các k thut xây dng ng dng Web cng phát trin rt nhanh.
Trc đây nhng ng dng Web thng đc xây dng bng CGI (Common
Gateway Interface) đc chy trên các trình ch Web và có th kt ni vào các c s
d liu đn gin trên cùng máy ch. Ngày nay ng dng Web thng đc vit bng
Java (hay các ngôn ng tng t) và chy trên máy ch phân tán, kt ni đn nhiu
ngun d liu.
Mt ng dng web thng có kin trúc gm:
Khoa CNTT
Chng 1: Gii thiu ng dng Web
-Trang 14-
Hình 1.I-1. Kin trúc mt ng dng Web
• Lp trình bày: Lp này có nhim v hin th d liu cho ngi dùng, ngoài ra còn
có th có thêm các ng dng to b cc cho trang web.
• Lp ng dng: là ni x lý ca ng dng Web. Nó s x lý thông tin ngi dùng
yêu cu, đa ra quyt đnh, gi kt qu đn “lp trình bày”. Lp này thng
đc cài đt bng các k thut lp trình nh CGI, Java, .NET , PHP hay
ColdFusion, đc trin khai trên các trình ch nh IBM WebSphere, WebLogic,
Apache, IIS…
• Lp d liu: thng là các h qun tr d liu (DBMS) chu trách nhim qun lý
các file d liu và quyn s dng.
Mô hình hóa hot đng ca mt ng dng Web:
Khoa CNTT
Chng 1: Gii thiu ng dng Web

-Trang 15-
Hình 1.I-2. Mô hình hot đng ca mt ng dng Web
Trong đó:
• Trình khách ( hay còn gi là trình duyt): Internet Explorer, Netscap Navigator
• Trình ch: Apache, IIS, ….
• H qun tr c s d liu: SQL Server, MySQL, DB2, Access….
Bên cnh đó, mt gii pháp dùng đ bo v mt h thng mng thng đcs dng
là bc tng la, nó có vai trò nh là lp rào chn bên ngoài mt h thng mng, vì
chc nng chính ca firewall là kim soát lung thông tin gia các máy tính. Có th
xem firewall nh mt b lc thông tin, nó xác đnh và cho phép mt máy tính này có
đc truy xut đn mt máy tính khác hay không, hay mt mng này có đc truy
xut đn mng kia hay không.
Ngi ta thng dùng firewall vào mc đích:
• Cho phép hoc cm nhng dch v truy xut ra ngoài.
Khoa CNTT
Chng 1: Gii thiu ng dng Web
-Trang 16-
• Cho phép hoc cm nhng dch v t bên ngoài truy nhp vào trong.
• Kim soát đa ch truy nhp, cm đa ch truy nhp.
Firewall hot đng da trên gói IP do đó kim soát vic truy nhp ca máy ngi s
dng
II.MÔ T HOT NG CA MT NG DNG WEB
u tiên trình duyt s gi mt yêu cu (request) đn trình ch Web thông qua các
lnh c bn GET, POST… ca giao thc HTTP, trình ch lúc này có th cho thc thi
mt chng trình đc xây dng t nhiu ngôn ng nh Perl, C/C++… hoc trình
ch yêu cu b din dch thc thi các trang ASP, JSP… theo yêu cu ca trình khách.
Tùy theo các tác v ca chng trình đc cài đt mà nó x lý, tính toán, kt ni đn
c s d liu, lu các thông tin do trình khách gi đn…và t đó tr v cho trình
khách 1 lung d liu có đnh dng theo giao thc HTTP, nó gm 2 phn:
• Header mô t các thông tin v gói d liu và các thuc tính, trng thái trao đi

gia trình duyt và WebServer.
• Body là phn ni dung d liu mà Server gi v Client, nó có th là mt file
HTML, mt hình nh, mt đon phim hay mt vn bn bt kì.
Theo mô hình  hình 1.I-2, vi firewall, lung thông tin gia trình ch và trình khách
là lung thông tin hp l. Vì th, nu hacker tìm thy vài l hng trong ng dng
Web thì firewall không còn hu dng trong vic ngn chn hacker này. Do đó, các k
thut tn công vào mt h thng mng ngày nay đang dn tp trung vào nhng s
sut (hay l hng) trong quá trình to ng dng ca nhng nhà phát trin Web hn là
tn công trc tip vào h thng mng, h điu hành. Tuy nhiên, hacker cng có th
Khoa CNTT
Chng 1: Gii thiu ng dng Web
-Trang 17-
li dng các l hng Web đ m rng s tn công ca mình vào các h thng không
liên quan khác.
Khoa CNTT
Chng 2: Các khái nim, thut ng liên quan
-Trang 18-
Chng 2
CÁC KHÁI NIM, THUT NG LIÊN QUAN
Ni dung:
I. Hacker
II. HTTP Header
III. Phiên làm vic (Session)
IV. Cookie
V. Proxy
Khoa CNTT
Chng 2: Các khái nim, thut ng liên quan
-Trang 19-
CHNG 2:
CÁC KHÁI NIM, THUT NG LIÊN QUAN

cd
I. HACKER
Hacker là mt thut ng dùng đ chuyên ch nhng k phá hoi các h thng mng…
Hacker thng là nhng chuyên gia v máy tính. Hacker không to ra các k h cho
h thng, nhng hacker lilà nhng ngi am hiu v h điu hành, h qun tr d
liu, các ngôn ng lp trình…H s dng kin thc ca mình trong vic tìm tòi và
khai thác các l hng ca h thng mng. Mt s hacker ch dng livic phát hin
và thông báo li tìm đc cho nhng nhà bo mt hay ngi phát trin chng trình,
h đc xem nh là WhiteHat (Hacker nón trng). Mt s hacker da vào nhng l
hng thc hin vic khai thác trái phép nhm mc đích phá hoi hay mu li riêng,
nhng ngi này b xem nh là BlackHat (Hacker nón đen).
Vì tính cht ph bin ca thut ng hacker, nên trong phn trình bày, lun vn s s
dng “hacker” thay cho “k tn công”.
II.HTTP HEADER
HTTP header là phn đu (header) ca thông tin mà trình khách và trình ch gi cho
nhau. Nhng thông tin trình khách gi cho trình ch đc gi là HTTP requests (yêu
cu) còn trình ch gi cho trình khách là HTTP responses (tr li). Thông thng,
mt HTTP header gm nhiu dòng, mi dòng cha tên tham s và giá tr. Mt s
Khoa CNTT
Chng 2: Các khái nim, thut ng liên quan
-Trang 20-
tham s có th đc dùng trong c header yêu cu và header tr li, còn s khác thì
ch đuc dùng riêng trong tng loi. Ví d :
• Header yêu cu:
GET /tintuc/homnay.asp HTTP/1.1
Accept: */*
Accept-Language: en-us
Connection: Keep-Alive
Host: localhost
Referer: http://localhost/lienket.asp

User-Agent: Mozilla/4.0 (compatible; MSIE 5.5; Windows NT 5.0)
Accept-Encoding: gzip, deflate
o Dòng đu là dòng yêu cu cho bit phng thc yêu cu (GET hoc
POST), đa ch yêu cu (/tintuc/homnay.asp) và phiên bn HTTP
(HTTP/1.1)
o Tip theo là các tham s.Chng hn nh:
̇ Accept-Language: Cho bit ngôn ng dùng trong trang web.
̇ Host: Cho bit đa ch ca máy ch.
̇ Referer: Cho bit đa ch ca trang web tham chiu ti.
o Header ca HTTP request s kt thúc bng mt dòng trng.
• Header tr li:
HTTP/1.1 200 OK
Server: Microsoft-IIS/5.0
Date: Thu, 13 Jul 2000 05:46:53 GMT
Khoa CNTT
Chng 2: Các khái nim, thut ng liên quan
-Trang 21-
Content-Length: 2291
Content-Type: text/html
Set-Cookie: ASPSESSIONIDQQGGGNCG=LKLDFFKCINFLDMFHCBCBMFLJ;
path=/
Cache-control: private
<HTML>
<BODY>

o Dòng đu là dòng trng thái, đ cho bit phiên bn HTTP đc dùng
(HTTP/1.1), mã trng thái (200) và trng thái (OK).
o Tip theo là các tham s.
o Tip theo là mt dòng trng đ báo hiu kt thúc header, tip theo là phn
thân ca HTTP response.

Danh sách tham s ca HTTP header đc trình bày trong ph lcA
III. SESSION
HTTP là giao thc hng đi tng tng quát, phi trng thái, ngha là HTTP không
lu tr trng thái làm vic gia trình duyt vi trình ch. S thiu sót này gây khó
khn cho mts ng dng Web, bi vì trình ch không bit đc trc đó trình
duyt đã có nhng trng thái nào. Vì th, đ gii quyt vn đ này, ng dng Web
đa ra mt khái nimphiên làm vic (Session). Còn SessionID là mt chui đ chng
thc phiên làm vic. Mt s trình ch s cung cp mt SessionID cho ngidùng
khi h xem trang web trên trình ch.
 duy trì phiên làm vic thì sessionID thng đc luvào :
Khoa CNTT
Chng 2: Các khái nim, thut ng liên quan
-Trang 22-
• Bin trên URL

Bin n form

Cookie
Phiên làm vicch tn ti trong mt khong thi gian cho phép, thi gian này đc
cu hình qui đnh ti trình ch hoc bi ng dng thc thi. Trình ch s t đng gii
phóng phiên làm vic đ khôi phc li tài nguyên ca h thng.
IV. COOKIE
Cookie là nhng phn d liu nh có cu trúc đc chia s gia trình ch và trình
duyt ca ngi dùng.
Các cookie đc lu tr di nhng file d liu nh dng text, đc ng dng to ra
đ lu tr/truy tìm/nhn bit các thông tin v ngi dùng đã ghé thm trang Web và
nhng vùng mà h đi qua trong trang. Nhng thông tin này có th bao gm tên/đnh
danh ngi dùng, mt khu, s thích, thói quen cookie đc trình duyt ca ngi
dùng chp nhn lu trên đa cng ca máy mình, tuy nhiên không phi lúc nào trình
duyt cng h tr cookie, mà còn tùy thuc vào ngi dùng có chp nhn chuyn lu

tr đó hay không.
 nhng ln truy cp sau đn trang Web đó, ng dng có th dùng li nhng thông
tin trong cookie (nh thông tin liên quan đn vic đng nhp vào Yahoo
Messenger! ) mà ngi dùng không phi làm li thao tác đng nhp hay phicung
cpli các thông tin khác.
Cookie đc phân làm 2 loi secure/non-secure và persistent/non-persistent do đó ta
s có 4 kiu cookie là:

×