HUTECH
B GIÁO DC ÀO VÀ O TO
TRNG I HC DÂN LP K THUT CÔNG NGH
KHOA CÔNG NGH THÔNG TIN
B MÔN CÔNG NGH PHN MM
LUN VN TT NGHIP
TÀI :
Nghiên cu bo mt ASP.NET. ng dng trong
thit k Website Khoa CNTT
GVHD : Th.S Nguyn Hà Giang
SVTH : Lê Phng Nam 10102099
Thiu ng Phúc 10102133
TP. H CHÍ MINH
2005
HUTECH
HUTECH
LI CM N
ooOOoo—
Trong sut khóa hc (2001-2005) ti trng K Thu Công Ngh TP.H
Chí Minh, vi s giúp đ ca quí thy cô và ging viên hng dn t nhiu phía
và nhât là trong thi gian thc hin đ tài, nên đ tài đã đc hoàn thành đng qui
đnh. Em xin chân thành cm n đn:
Em xin cm n các thy cô trong khoa công ngh thông tin đã ging dy
nhng kin thc chuyên môn làm c s đ chúng em thc hin tt lun vn và
hoàn tt khóa hc thun li.
c bit, em xin cm n Thy Nguyn Hà Giang giáo viên hng dn đ
tài đã nhit tình giúp đ và cho chúng em nhng li ch dy quí báu, giúp chúng
em đnh hng tt trong khi thc hin lun vn và Thy Bùi Âu Phng đã to
mi điu kin cho chúng em trin khai cài đt chng trình.
Tt c bn bè đã giúp đ và đng viên trong quá trình làm lun vn.
Tp.H Chí Minh Tháng 12 nm 2005
Sinh viên thc hin
HUTECH
NHN XÉT CA GIÁO VIÊN HNG DN
oOOo—
K thut công ngh, Ngày tháng nm 2005
Giáo viên hng dn
HUTECH
NHN XÉT CA GIÁO VIÊN PHN BIN
oOOo—
K thut công ngh, Ngày tháng nm 2005
Giáo viên phn bin
HUTECH
B GIÁO DC & ÀO TO CNG HÒA XÃ HI CH NGHA VIT NAM
I HC DL K THUT CÔNG NGH TP.HCM C LP – T DO – HNH PHÚC
Khoa : CNTT, B môn : …………………… _____oOo_____
Chú ý : Sinh viên phi dán bn nhim v
H và tên sinh viên : …………………………… MSSV :………………….……
Ngành : : ……………………………… Lp :……………………………………
:
2. Nhim v :
a. D liu ban đu :
b. Ni dung
· Phn tìm hiu công ngh :
· Phn phân tích, thit k & xây dng ng dng minh ha :
:
:
5. H tên giáo viên hng dn :
Ni dung và yêu c
.
TP.HCM, ngày ………. tháng ……… nm 200
CH NHIM KHOA GIÁO VIÊN HNG DN CHÍNH
(Ký và ghi rõ h tên) (Ký và ghi rõ h tên)
PHN DÀNH CHO B MÔN
Ngi duyt (chm s b) :……………………….Ngày bo v : ………………………
HUTECH
HUTECH
Nghiên cu bo mt ASP.NET. ng dng trong thit k Website Khoa CNTT
Trang 1
MC LC
MC LC 1
CHNG 1 : GII THIU TÀI 3
1.1 Hoàn cnh ra đi. 3
1.2 Ni dung các chng. 3
CHNG 2 : TÌM HIU V BO MT 4
2.1 Các khái nim. 4
2.1.1 Cracker. 4
2.1.2 Hacker. 4
2.1.3 Router. 4
2.1.4 Cookie. 4
2.1.5 Proxy. 5
2.1.6 Ping. 6
2.1.7 Cng o (Virtual Port). 6
2.1.8 Tng la (Fire wall). 6
2.1.9 Virus. 7
2.1.10 Trojan. 7
2.1.11 Worms. 7
2.1.12 Bom th. 7
2.1.13 IP Spoofing. 7
2.2 Các nguyên nhân ch quan làm cho h thng hay ng dng web b tn công. 8
2.2.1 Cu hình sai máy ch. 8
2.2.2 H điu hành và ng dng b li. 8
2.2.3 Nhà cung cp thiu trách nhim. 8
2.2.4 Thiu s t vn đy đ. 9
2.3 Các bc khi ngi tn công mun tn công vào h thng. 9
2.3.1 FootPrinting. 9
2.3.2 Scanning. 9
2.3.3 Enumeration. 10
2.3.5 Escalating Privileges (Leo thang đc quyn). 10
2.3.6 Pilfering. 10
2.3.8 To BackDoor. 11
2.3.9 Denial of Services (Tn công t chi dch v). 11
2.4 Bo mt trong ASP.NET. 11
2.4.1 nh dng bo mt ASP.NET 12
2.4.2 nh dng phân cp (Configuraion hierarcy) 12
2.4.3 Thc thi ASP.NET authorization. 15
2.4.4 Cu trúc bo mt ASP.NET 17
2.4.5 Windows authentication. 19
2.4.6 Forms authentication. 22
2.4.7 Passport authentications. 29
2.4.7.1 Cu trúc tng quan. 29
2.4.7.2 Các bc tng quát đ thc thi mt ng dng web s dng Passport. 32
2.4.7.3 Thc thi bo mt đi vi Passport. 33
CHNG 3 : CÁC BIN PHÁP BO MT TRONG ASP.NET 37
HUTECH
Nghiên cu bo mt ASP.NET. ng dng trong thit k Website Khoa CNTT
Trang 2
3.1 Bo mt đng truyn. 37
3.2 Mã hóa. 38
3.2.1 Mã hóa trong .NET 39
3.2.2 DPAPI 42
3.3 Phòng tránh SQL injection. 45
3.4 Phòng tránh tn công CSS. 48
3.5 Bo mt tài nguyên. 51
CHNG 4 : THC THI CHNG TRÌNH 53
4.1 Mc đích xây dng trang web 53
4.2 Ni dung trang web. 53
4.3 S đ user case. 54
4.2 S đ lp. 57
4.3 C s d liu. 60
4.6 Các component. 63
4.7.1 To tài khon bt buc ngi dùng nhp mt khu phc tp. 64
4.7.2 Dùng các k thut mã hóa cho mt khu, cho các kt ni c s d liu. 65
4.7.3 Bo mt đng truyn. 67
4.7.4 Kim tra các giá tr nhp vào tránh b CSS. 67
4.7.5 Bo mt cookie. 67
4.7.6 Gii hn thi gian tn ti ca các phiên làm vic (session). 67
4.7.7 Thông tin bo mt đc lu trong registry. 68
4.7.8 To mt tài khon kt ni ni c s d liu. 69
4.7.9 Tránh SQL injection. 69
4.7.10 Bo mt các tài nguyên h thng. 69
4.7.11 Qun lý các debug li. 69
4.8 Các giao din. 70
CHNG 5 : TNG KT VÀ ÁNH GIÁ. 75
5.1 Kt qu đt đc. 75
5.2 Hn ch thiu sót. 75
5.4 Hng phát trin. 76
DANH SÁCH CÁC HÌNH 77
DANH MC BNG 78
TÀI LIU THAM KHO 80
PH LC 81
HNG DN CÀI T 81
HUTECH
Nghiên cu bo mt ASP.NET. ng dng trong thit k Website Khoa CNTT
Trang 3
CHNG 1 : GII THIU TÀI
1.1 Hoàn cnh ra đi.
Cùng vi s phát trin ca công ngh thông tin thì các ng dng web cng
phát trin theo ngày mt mnh m hn đ đáp ng nhng nhu cu v trao đi
thông tin, hc tp nghiên cu, qung cáo mua bán, dch v, du lch…Vì vy mà
các ngôn ng, công c cng nh các tin ích đ thit k web ra đi ngày càng
nhiu đ đáp ng cho nhu cu trên.
Các ngôn ng nh ASP.NET, PHP, Perl, JSP , Servlet… là mt trong các
ngôn ng mnh hin nay dùng đ thit k các ng dng web
. Bên cnh nhng tính
nng u vit
ca mi ngôn ng trên đ xây dng các ng dng web thì nhng
khuyt đim v vn đ bo mt ngun tài nguyên cho ng dng, và các thông tin
bo mt ca ngi s dng ca tng ngôn ng cng là mt
vn đ thách thc cho
các nhà phát trin ng dng. T nhng vn đ trên chúng em đã chn
tài : Nghiên cu bo mt ASP.NET ng dng trong thit k website
khoa công ngh thông tin.
Bo mt không ch da vào vic dùng mt ngôn ng sao cho ng dng
đc an toàn mà là s kt hp ca nhiu yu t nh bo mt đng truyn, bo
mt c s d liu, thit b, qun tr h điu hành… và bài toán bo mt không có
li gii chính xác, nó ch tng đi trong tng giai đon, tng môi trng c th vì
các tin tc ngày mt tinh vi hn luôn tìm ra các l hng bo mt vì vy bo mt
cho mt ng dng cn phi đa ra mt chin lc, nghiên cu bo mt lâu dài phù
hp vi tng thi đim.
1.2 Ni dung các chng.
Chng 1: Phn tng quan ca đ tài.
Chng 2: Tìm hiu khái nim trong bo mt và các mô hình bo mt ASP.NET
Chng 3 : Tìm hiu các k thut bo mt trong ASP.NET và bin pháp xây dng
Chong 4: Thc thi cài đt ng dng.
Chung 5: Kt lun đánh giá kt qu làm đc và hng phát trin.
HUTECH
Nghiên cu bo mt ASP.NET. ng dng trong thit k Website Khoa CNTT
Trang 4
CHNG 2 : TÌM HIU V BO MT
2.1 Các khái nim.
Mt s khái nim thng dùng khi làm công tác bo mt
2.1.1 Cracker.
Cracker là nhng ngi phá hoi máy tính vi mc đích tr thù hay mc
đích tài chính nào đó. Nhng ngi này là nh ng
chuyên gia phá hoi h thng
vi mc đích tr thù hay li ích cá nhân…
2.1.2 Hacker.
Không ít nhng ngi thng đánh đng hacker vi cracker. Ngun gc
ban đu hacker là nhng ngi có k nng lp trình, có kin thc v h thng, mc
đích ca hacker thng khám phá tìm hiu hc hi, và phô bày nhng l hng h
thng đ giúp các nhà qun tr sa li, ch không phi vì tin hay phá hoi. Nhiu
hacker đã đc tuyn vào các công ty làm nhim v khc phc khuyt đim cho
h thng hay phn mm. Tuy nhiên cng hin ti cng có mt s quan nim
hacker m trng và hacker m đen, hacker m trng thì tt, hacker m đen ging
nh cracker
2.1.3 Router.
Còn gi là b dn đng, là nhng máy tính có nhim v đa các s 1 và 0
trong h nh phân bit cách tìm đn ni cn thit trên không gian o. Tin tc dùng
hình thc tn công s dng nhng máy tính đã b khng ch đ đánh la các
router gi thông tin gi ti nhiu trang web trong mng.
2.1.4 Cookie.
Cookie là nhng phn d liu nh có cu trúc đc chia s gia web site và
browser ca ngi dùng. Cookies đc lu tr di nhng file d liu nh dng
text (size di 4k). Chúng đc các trang
web to ra đ lu tr/truy tìm/nhn bit
các thông tin v ngi dùng đã ghé thm trang web và nhng vùng mà h đi qua
trong trang web.
HUTECH
Nghiên cu bo mt ASP.NET. ng dng trong thit k Website Khoa CNTT
Trang 5
Nhng thông tin này có th bao gm tên/đnh danh ngi dùng, mt khu,
s thích, thói quen Cookie đc browser ca ngi dùng chp nhn lu trên đa
cng ca máy mình, không phi browser nào cng h tr cookie. Sau mt ln truy
cp vào site, nhng thông tin v ngi dùng đc lu tr trong cookie. nhng
ln truy cp sau đn site đó, trang web có th dùng li nhng thông tin trong
cookie (nh thông tin liên quan đn vic đng nhp vào mt din đàn, tài khon
mua bán ) mà ngi dùng không phi làm li thao tác đng nhp hay phi nhp
li các thông tin khác. Vn đ đt ra là có nhiu site qun lý vic dùng li các
thông tin lu trong cookie không chính xác, kim tra không đy đ hoc mã hoá
các thông tin trong cookie còn s h giúp cho tin tc khai thác đ vt qua kim
tra đng nhp, đot quyn điu khin trang web.
Cookies thng có các thành phn sau :
+ Tên: do ngi lp trình trang web chn
+ Domain: là tên min t máy ch
(server) mà cookie đc to và gi đi
+ ng dn: thông tin v đng dn trang web mà ngi dùng đang xem
+ Ngày ht hn: là thi đim mà cookie ht hiu lc .
+ Bo mt: Nu giá tr này đc thit lp bên trong cookie, thông tin s đc mã
hoá trong quá trình truyn gia server và browser.
+ Các giá tr khác: là nhng d liu đc trng đc máy ch (web server) lu tr
đ nhn dng v sau các giá tr này ko cha các khong trng, du chm, phy và
b gii hn trong khong 4kb.
2.1.5 Proxy.
Proxy cung cp cho ngi s dng truy xut internet vi nhng host đn.
Nhng proxy server phc v nhng nghi thc đt bit hoc mt tp nhng nghi
thc thc thi trên dual_homed host hoc basion host. Nhng chng trình client
ca ngi s dung s qua trung gian proxy server thay th cho server tht s mà
ngi s dng cn giao tip. Proxy server xác đnh nhng yêu cu t client và
quyt đnh đáp ng hay không đáp ng, nu yêu cu đc đáp ng, proxy server
HUTECH
Nghiên cu bo mt ASP.NET. ng dng trong thit k Website Khoa CNTT
Trang 6
s kt ni vi server tht thay cho client và tip tc chuyn tip đn nhng yêu cu
t client đn server, cng nh đáp ng nhng yêu cu ca server đn client. Vì vy
proxy server ging cu ni trung gian gia server và client.
Proxy cho ngi dùng truy xut dch v trên internet theo ngha trc tip.
Vi dual host homed cn phi đng nhp vào host trc khi s dng dch v nào
trên internet. iu này thng không tin li, và mt s ngi tr nên tht vng
khi h có cm giác thông qua firewall, vi proxy nó gii quyt đc vn đ này.
Tt nhiên nó còn có nhng giao thc mi nhng nói chung nó cng khá tin li
cho user. Bi vì proxy cho phép user truy xut nhng dch v trên internet t h
thng cá nhân ca h, vì vy nó không cho phép gói tin (packet) đi trc tip gia
h thng s dng và internet.
ng đi là giáng tip thông qua dual homed host
hoc thông qua s kt hp gia bastion host và screening rounter.
2.1.6 Ping.
Thut ng này ch vic gi mt thông đip đn gin ti mt máy tính khác
và nó s gi thông tin v cho ngi gi. c s dng nh mt công c kim tra
xem hai máy tính có th liên lc đc vi nha u không, nhng chng trình ping
nguy him có th gây ri lon h thng.
2.1.7 Cng o (Virtual Port).
2.1.8 Tng la (Fire wall).
Là mt s t nhiên đc gói trong TCP (Tranmission Control Protocol)
và UDP (User Diagram Protocol) header. Nh
chúng ta đã bit, Windows có th
chy nhiu chng trình 1 lúc, mi chng trình này có mt cng riêng dùng đ
truyn và nhn d liu.
Là ni đ kim tra thông tin vào ra máy tính, tng la kim tra và phân
tích xem thông tin đi đâu và v đâu ,
nu mt v trí b nghi ng thì tng la s
chn thông tin đn và đi đó. Khi mt v trí b chn tng la có th to ra mt
nht kí ghi li các đa ch mun xâm nhp vào máy tính.
HUTECH
Nghiên cu bo mt ASP.NET. ng dng trong thit k Website Khoa CNTT
Trang 7
2.1.9 Virus.
ây là chng trình vi nhng mã đc bit đc cài (hoc lây lan t máy
khác) lên máy ca nn nhân và thc hin nhng yêu cu ca mã đó , đa s
virus
đc s dng đ phá hoi d liu hoc phá hoi máy tính.
2.1.10 Trojan.
ây là chng trình đip viên đc cài vào máy ca ngi khác đ n cp
nhng tài liu trên máy đó gi v cho ch nhân ca nó ,
nhng thông tin mà trojan
n cp có th là mt khu, account, hay cookie ………. tu theo ý mun ca ngi
to ra nó.
2.1.11 Worms.
ây là chng trình đc lp có th t nhân bn bn thân nó và lây lan khp
bên trong mng .Cng ging nh virus, nó cng có th phá hoi d liu, hoc nó
có th phá hoi bên trong mng, nhiu khi còn làm c mng b ngng hot đng.
2.1.12 Bom th.
Là chng trình gi mt lúc nhiu g ói d liu cho cùng mt đa
ch, làm
quá ti h
thng, tt nghn đng truyn (trên server) hoc dùng làm công c đ
phá ri tinh thn đi phng (bom Mail).
2.1.13 IP Spoofing.
Mt s IP có mc đích đ xác đnh mt thit b duy nht trên th gii. Vì
vy trên mng mt máy ch có th cho phép mt thit b khác trao đi d liu qua
li mà không cn kim tra máy ch. Tuy nhiên tin tc có th thay đi IP ca h,
ngha là h có th gi mt thông tin gi đn mt máy khác mà máy đó s tin rng
thông tin nhn đc xut phát t mt máy nào đó (tt nhiên là không phi máy ca
tin tc). Tin tc có th vt qua máy ch mà không cn phi có quyn điu khin
máy ch đó. IP Spoofing có hiu qu khi tin tc vt qua tng la đánh cp tài
khon.
HUTECH
Nghiên cu bo mt ASP.NET. ng dng trong thit k Website Khoa CNTT
Trang 8
2.2 Các nguyên nhân ch quan làm cho h thng hay ng dng web b
tn công.
Có th có nhiu nguyên nhân nhng mt trong nhng nguyên nhân sau
khin cho trang web d b tn công
2.2.1 Cu hình sai máy ch.
ây là nguyên nhân to ra đa phn các l hng bo mt. Rt nhiu khi
ngi qun tr không nhn bit đc các dch v đang chy trên máy ch ca
h Hoc vì nguyên nhân ch quan nào đó nên vic cu hình máy ch sai, hoc
cha kp sa li.
2.2.2 H điu hành và ng dng b li.
S thay đi nhanh chóng ca công ngh nên vic cp nht nu nh không
đy đ,
nên khi các máy tính ni mng hin nhiên là đang đi mt vi nguy c b
xâm nhp
ây là mt s ví d v dch v và ng dng.
H thng in trên mng.
H thng điu khin t xa.
Chia s tp tin.
Các mã CGI và script ví d.
Khi nhng h thng này s dng các giá tr mc đnh hoc b cu hình sai thì s là
c hi tt đ tin tc xâm nhp.
Li trong các ng dng : nhng li ny sinh khi lp trình là mt yu t làm cho
ng dng vt ra ngoài tm kim soát ca ngi s dng. Ví d nh nhng li ca
MS IIS hay trong ISC BIND hay SSH và rt nhiu li khác na trong các h thng
ca Sun. n
gin hn na là li ca IE mà ngi dùng có th tr thành mc tiêu
ca virus.
2.2.3 Nhà cung cp thiu trách nhim.
Rt nhiu nhà cung cp không quan tâm đn điu gì xy ra trong chng
trình ca h. Vic đm bo cht lng (QA) trong ngành công nghip phn mm
HUTECH
Nghiên cu bo mt ASP.NET. ng dng trong thit k Website Khoa CNTT
Trang 9
rt yu. tit kim chi phí thì ngi ta thng không áp dng nhng tiêu chun
v qui trình sn xut. Và đó là nguyên nhân làm cho các h thng mng và máy
tính ca ngi s dng b phá hoi. Trong tròng hp các bn sa li b chm ch
cng có th làm hi đn công tác bo mt.
2.2.4 Thiu s t vn đy đ.
Nu nh tt c các vn đ trên đu đc gii quyt thì các công ty hay t
chc li vp phi mt vn đ khác là thiu nhng các nhân đáng tin tng. Có th
thu thp mt
đi ng k s, qun tr và lp trình viên đ trình đ, nhng không d
tìm ra các chuyên gia bo mt gii.Và không th đào to đi ng chuyên gia bo
mt trong vài ngày. ó là mt quá trình rt dài, phi bt đu t các kin thc
c
bn nh, phn cng, h điu hành, mã hoá và lp trình. Nhng nh vy mi ch đ
cho các hiu bit s đng v bo mt. Vic thiu nhân s làm cho các chng trình
v bo mt trong các t chc b xao lãng hoc đi sai đng. Không có các chính
sách v bo mt hoc nu có thì
cha đc hoàn chnh. Chính điu đó làm cho h
thng b
nh hng trc các cuc tn công.
2.3 Các bc khi ngi tn công mun tn công vào h thng.
2.3.1 FootPrinting.
ây là cách mà tin tc làm khi mun ly mt lng thông tin ti đa v máy
ch/doanh nghip/ngi dùng. Nó bao gm chi tit v đa ch IP, Whois, DNS
đó là nhng thông tin chính thc có liên quan đn mc tiêu. Nhiu khi đn gin tin
tc ch cn s dng các công c tìm kim trên mng đ tìm nhng thông tin đó. Và
nhng thông tin này là mt trong nhng yu t đu tiên giúp tin tc tn công h
thng web.
2.3.2 Scanning.
Khi đã có
nhng thông tin giai đon footprinting ri thì tip đn là đánh
giá và đnh danh nhng nhng dch v mà mc tiêu có. Vic này bao gm quét
HUTECH
Nghiên cu bo mt ASP.NET. ng dng trong thit k Website Khoa CNTT
Trang 10
cng, xác đnh h điu hành, tên máy ch, schema ca c s d liu … Các công
c đc s dng đây nh nmap, WS pingPro, siphon, fscam…
2.3.3 Enumeration.
Bc th ba là tìm kim nhng tài nguyên đoc bo v kém, hoch tài
khon ngi dung mà có th s dng đ xâm nhp. Nó bao gm các mt khu mc
đnh, các script và dich v mc đnh. Rât nhiu ngi qun tr mng không bit
đn hoc không sa đi li các giá tr này.
2.3.4 Gaining Access.
Bây gi ngi xâm nhp s tìm cách truy cp vào mng bng nhng thông
tin có đc ba bc trên. Phng pháp đc s dng đây có th là tn công
vào li tràn b đm, ly và gii mã tp tin mt khu, hay brute force (kim tra tt
c các trng hp –
vét cn) mt khu. Các công c thng đc s dng bc
này là NAT, podium, hoc Lopht
.
2.3.5 Escalating Privileges (Leo thang đc quyn).
Ngi tn công tìm cách xâm nhp đc vào mng vi tài khon hp l (tài
khon guest), thì h s tìm cách kim soát toàn b h thng. Tin tc s tìm cách b
khóa mt khu ca ngi qun tr h thng, hoc s dng l hng đ leo thang đc
quyn chim quyn qun tr. John và Riper là hai chng trình b khóa mt khu
rt hay đc s dng.
2.3.6 Pilfering.
Thêm mt ln na các máy tìm kim li đc s dng đ tìm các phng
pháp truy cp vào mng. Nhng tp tin vn bn cha mt khu hay các c ch
không an toàn khác là c hi cho tin tc tn công.
2.3.7 Covering Tracks.
Sau khi đã có nhng thô ng tin cn thit, tin tc tìm cách xoá du vt, xoá
các tp tin log ca h điu hành làm cho ngi qun lý không nhn ra h thng đã
b xâm nhp hoc có biêt cng không tìm ra k xâm nhp là ai.
HUTECH
Nghiên cu bo mt ASP.NET. ng dng trong thit k Website Khoa CNTT
Trang 11
2.3.8 To BackDoor.
Ngi tn công đ li "Back Doors", tc là mt c ch cho phép ngi tn
công truy cp tr li bng con đng bí mt không phi tn nhiu công sc, bng
vic cài đt Trojan hay to user mi (đi vi t chc có nhiu user), hay m mt
cng nào đó. Công c đây là các loi Trojan, keylog…
2.3.9 Denial of Services (Tn công t chi dch v).
Nêu không thành công trong vic xâm nhp, thì DoS là phng tiên cui
cùng đ tn công h thng. Nu h thng không đc cu hình đúng cách, nó s b
phá v và cho phép ngi tn công truy cp. Hoc trong trng hp khác thì DoS
s làm cho h thng không hot đng đc na. Các công c hay đc s dng đ
tn công DoS là trin00, Pong Of Death, teardrop, và các loi nuker, flooder.
2.4 Bo mt trong ASP.NET.
Authentication (thm đnh quyn) : Khi ng dng web đc xây dng,
ngoài nhng tài nguyên chung ai cng đc quyn s dng, thì có nhng
tài nguyên đc gi kín gii hn bi mt s ngi, đ truy cp nhng
ngun tài nguyên này thì client trc tiên phi đc kim tra xem có quyn
truy xut tài nguyên hay không qua tên đng nhp và mt khu.
Authorization : Khi đã đc chng nhn v quyn truy xut tài nguyên thì
authorization là vic chng nhn client có nhng quyn nào đ truy xut
nhng ngun tài nguyên nào (tp tin, c s d liu…).
Hình 2.1 : Mô hình truy xut tài nguyên.
HUTECH
Nghiên cu bo mt ASP.NET. ng dng trong thit k Website Khoa CNTT
Trang 12
ASP.NET h tr các k thut thm đnh quyn : Window (mc đnh), Form,
Passport, None.
• Window
• Form
• Passport
• None
2.4.1 nh dng bo mt ASP.NET
Vic đnh dng bo mt đc t chc tp trung theo các dng tp tin XML
có cha các th (tag) chc các thuc tính và đnh dng cài đt đ cu hình bo mt
cho tài nguyên h thng. Trong ASP.NET có hai loi tp tin đnh dng là
machine.config và web.config.
• Tp tin đnh dng gc machine.config cung cp các đnh dng mc đnh
cho toàn b web server. Tp tin này đc h tr bi .NET Framework,
mi phiên bn ca .NET Framwork s có các machine.config riêng bit.
• Tp tin đnh dng web.config cng có ch đnh dng tng t nh
machine.config, nhng nó đc dùn g đ áp dng cho tng ng dng c
th vi các đnh dng c th vì c ch đnh dng trong ASP.NET là mt
h thng đnh dng phân cp vì vy trong mt ng dng ASP.NET có th
có nhiu tp tin web.config.
2.4.2 nh dng phân cp (Configuraion hierarcy)
Khi tp tài nguyên nhn đc yêu cu thì ht thng ASP.NET s đnh dng nh
sau:
Cài đt đnh dng đt trong tp tin web.config đt trong ng dng con s
cài đè lên các cài đt trong web.config ca ng dng cha.
Tng t cài đt trong web.config ca ng dng c ha s đè lên cài đt
web.config ca ng dng gc và cài đt ng dng web.config ca ng dng gc s
đè lên cài đt ng dng trong machine.config ca .NET Framework. Tuy nhiên
HUTECH
Nghiên cu bo mt ASP.NET. ng dng trong thit k Website Khoa CNTT
Trang 13
vn mang tính k tha các cài đt ca ng dng con ch đè lên các cài đt ng
dng nào mà ng dng cha có và k tha nhng cài đt nào mà nó không có.
Hình 2.2 : Mô hình phân cp đnh dng ca ASP.NET
Tt c các thông tin cu hình trong web.config đc đt trong th <configuration>
</configuration>. Th <system.web> trình bày tt c các thit lp các lp ca
ASP.NET
<configuration>
<system.web>
<!—Authentication section >
<forms name=”[name]” loginUrl=”[Url]” protection=”[All, None,
Encryption, Validation]” timeout=”s phút” path=”[path]” >
<!—Credentials Attributes >
<credentials passwordFormat=”[Clear, SHA1, MD5]”>
<user name=”[username]” password=”[password]” />
</credentials>
< Passport Attributes >
<passport redirectUrl=”Internal” />
< Authorization section >
<authorization>
<allow user=”*” /> <!—Allow all user >
<! <allow users=”[comma separated list of users]”
roles=”[comma separated list of roles]” />
<deny users=”[comma separated list of users]”
roles=”[comma separated list of users]” />
</authorization>
</system.web>
</configuration>
HUTECH
Nghiên cu bo mt ASP.NET. ng dng trong thit k Website Khoa CNTT
Trang 14
Th <AUTHENTICATION> :
• Th này thit lp tt c các ch đ tài nguyên ca toàn ng dng web.
Có các la chn nh “Windows”, “Forms”, “Passport” và “None”.
• Thit lp mc đnh là <authentication mode="Windows">.
• Authentication không th đt di th mc gc ca ng dng.
Thuc tính FORMS : đuc đt trong th <authentication> dùng cu hình
tên ca cookie s dng, đa ch trang đng nhp, thi gian tn ti ca
cookie, đng dn dùng cookie.
name = “[cookie name]” : Tên ca cookie dùng phng thc HTTP
khi s dng xác nhn truy cp bng Forms. Mc đnh đc đt là
<forms name=”.ASPXAUTH”>. Nu có nhiu ng dng s dng xác
nhn truy cp dng Forms trên cùng mt máy thì vic đt cùng mt tên
có th xy ra vic giao thoa quyn truy cp tài nguyên gia các ng
dng.
loginUrl = “[url]” : Cha đa ch trang đng nhp nu ngi dùng
khôn đc quyn truy cp tài nguyên. Giá tr mc đnh là <forms
loginUrl=”default.aspx”>.
protection = ”[All|None|Encryption|Validation]” : Ch đ bo v d
liu trong cookie. Giá tr mc đnh là <forms protection=”All”>
All : cookie đc bo v bng vic mã hóa và xác nhn d liu.
None : Thit lp này đc thc hin tt hn các phng thc khác khi
thc hin bng .NET Framework. Khi thc hin phng thc này vic
mã hóa và kim tra đu không hot đng.
Encryption : Cookie đc mã hóa di dng Triple DES hay DES,
nhng trong phng thc này cookie không đc kim tra.
Validation : Vic mã hóa không thc hin trong cookie
HUTECH
Nghiên cu bo mt ASP.NET. ng dng trong thit k Website Khoa CNTT
Trang 15
timeout = ”[minutes]” khon thi gian cho mt cookie hp l. Giá tr
mc đnh là <forms timeout=”30”>. Timeout là giá tr chuyn đng,
thi gian ht hn đc tính t ln yêu cu cui cùng đc nhn.
path = ”/” thit lp đng dn đ lu cookie trên máy ngi dùng.
Các thuc tính CREDENTIALS.
Thành phn <credentials> cho phép lu tr danh sách ngi dùng trong tp
tin web.config. Tuy nhiên cng có th thc thi kim tra password t ngun bên
ngoài mà không cn dùng <credentials>
passwordFormat=”[Clear|SHA1|MD5]” : đnh dng giá tr mt khu
ca ngi dùng lu trong <user>
th con <credentials> h tr mt thuc tính và mt th con.
Th con <user> có hai thuc tính là tên đng nhp
(username) và
mt khu
(password)
Mc đnh <credentials passwordFormat=”SHA1”>
Clear : ch đnh mt khu không đc mã hóa.
MD5 : ch đnh mt khu đc mã hóa theo thut gii MD5.
SHA1 : ch đnh mt khu đc mã hóa dùng thut gii SHA1.
Thuc tính PASSPORT.
Thuc tính passport là redirectUrl = ”[url]” ch đnh trang đ yêu cu xác nhn
quyn truy cp tài nguyên nu nh ngi dùng không đng nhp bng
passport
.
2.4.3 Thc thi ASP.NET authorization.
Vic cp quyn truy cp là mt x lý là ni mà nhng ngi phát trin web
quyt đnh mt ngi đc đc cp quyn truy xut đn mt trang web hay tài
nguyên. Trong ASP.NET có hai cách chính đ truy xut đn mt tài nguyên cho
phép là : s cp quyn tp tin (File Authorization) và quyn đa ch URL (ULR
Authorization)
HUTECH
Nghiên cu bo mt ASP.NET. ng dng trong thit k Website Khoa CNTT
Trang 16
S cp quyn tp tin đc thc hin da vào tài khon đc xác nhn
cung cp bi IIS. Nó đc thc thi bi FileAuthorizationModule. Nó kim tra
danh sách điu khin truy xut
(Access Control List - ACL) hoc các quyn truy
xut đn tài nguyên đ quyt đnh ngi s dng có quyn truy cp ngun tài
nguyên đc bo v hay không. FileAuthorizationModule cung cp dch v xác
nhn quyn da vào các h thng tp tin ACL. Ngi s dng có th cu hình các
tp tin ACL cho tp tin hay th mc s dng Security tab trong trang thuc tính
Explorer. AccessCheck ch đc gi nu có mt windowsIdentity kt hp vi yêu
cu (request), vì vy nó b gii hn s dng cho xác nhn Forms hay Passport, ni
có đúng mt tài khon Window (truy cp tài khon n danh – anonymous
account).
Vic cp quyn URL (URL Authorization) đc thc thi bi
URLAuthorizationModule. cp quyn URL, ngi dùng n danh đc kim
tra vi cu hình d liu. Nu truy cp đc chp nhn cho yêu cu URL, thì truy
xut ca ngi dùng đc chp nhn. Vic s dng URLAuthorizationModule,
ngi phát trin web có th thc thi s đòi hi cp quyn khng đnh hay ph
đnh. ó là ngi phát trin trin web có th cho phép hay t chi nhóm ngi
đc s dng tài
nguyên. thc thi cp quyn URL, đt danh sách ngi dùng
hay các quyn truy cp tài nguyên trong th <deny> ca <authorization> ca file
cu hình .config.
Cú pháp chung ca <authorization>
<[element] [users] [roles] [verbs] />
• Th <allow> cho phép ngi s dng truy xut đn tài nguyên
• Th <deny> hy b vic s dng truy xut đn tài nguyên
Các thuc tính h tr cho <allow> và <deny>
Roles : đnh danh mt vai trò
(role) đích cho phn t này. Kt hp đi tng
IPprincipal cho yêu cu quyt đnh vai trò ca thành viên. Có th gán đi tng
HUTECH
Nghiên cu bo mt ASP.NET. ng dng trong thit k Website Khoa CNTT
Trang 17
IPrincipal tùy theo yêu cu ng cnh đã cho v à có th quyt đnh vai trò thành
viên bt c khi nào có th. Ví d lp WindowsPrincipal mc đnh s dng cho
nhóm Windows NT đ quyt đnh vai trò thành viên.
User : inh danh các đnh danh đích cho phn t này
Verb : nh ngha các hành đng ca HTTP nh GET, HEAD, POST.
Có hai đnh danh dùng cho users và roles : * dùng cho tt c ngi dùng, ? các
ngi dùng không đc chng thc.
2.4.4 Cu trúc bo mt ASP.NET
ASP làm vic chung vi IIS, .NET framework, và các cu trúc service ca
h điu hành. Khi clien yêu cu mt request ti ti mt trang web thì nó phi qua
mt dãy xác đnh danh (authentication) và xác đnh quyn (authorization).
Hình 2.3: K thut xác nhn và phân quyn truy cp tài nguyên ca IIS và
ASP.NET
• IIS nhn đc yêu cu HTTP(S) web t mng. SSL đc s dng đ bo
đm rng đc các nhn dng ca server, ca client và các la chn khác là
bo mt.
HUTECH
Nghiên cu bo mt ASP.NET. ng dng trong thit k Website Khoa CNTT
Trang 18
• IIS xác nhn yêu cu này bng vic s dng Basic, Digest, Integrated
(NTLM hoc Kerberos), hoc Certificate authentication. Nu tt c hoc
mt phn trang web không yêu cu xác đnh danh cho vic truy cp t IIS.
Thì IIS s cu hình xác đnh n danh có ngha là b qua vic kim tra
mc IIS. IIS to mt Window access token cho mi xác thc ngi dùng.
Nu xác nhn n danh đc chn (anonymous authentication) đ c chn
thì IIS to mt du hiu truy cp (access token) cho tài khon ngi dùng
n danh trên Internet (mc đnh là IUSR_MACHINE)
• IIS phân quyn truy cp cho đi tng gi
(caller) đ truy cp tài nguyên
đc yêu cu
(request). Quyn truy cp dng NTFS đc đnh ngha bi
ACL đính kèm đ yêu cu v tài nguyên đc phân quyn truy cp. IIS
cng có th đc cu hình đ chp nhn yêu cu ngun tài nguyên t mt
đa ch IP đã đc ch đnh.
• IIS truyn du hiu xác nhn truy cp t Window đn ASP.NET
• ASP.NET xác nhn đi tng gi
Nu ASP.NET đc cu hình là xác nhn truy cp tài nguyên dùng
chung vi cp quyn ca Window thì khi IIS chp nhn yêu cu truy
cp thì ASP.NET chp nhn bt kì du hiu truy cp nào t IIS
Nu ASP.NET đc cu hình cho xác nhn quyn truy cp dng Form
thì vic xác nhn s da vào d liu lu tr nh c s d liu SQL hay
dch v Active Dirctory hoc các thông tin đc lu tr client
Nu ASP.NET đuc cu hình là xác đnh danh là Passport thì các thông
tin đng nhp ca ngi dùng s đuc gi trc tip đn trang web
Passport ca Microsoft đ xác đnh quyn hn truy cp.
• ASP.NET phân quyn truy cp ti các yêu cu tài nguyên hay các thao tác
UrlAuthorizationModule dùng đ xác nhn quyn truy cp đc cu hình
trong web.config (nm t rong th <authorization>) đ bo đm các quyn
truy cp trong tp tin hay th mc.