Hình 22 Giao di n chính c a Web Base Proxy
• Trang web có giao di n đ n gi n. Phía trên có m t thanh textbox, cho phép user nh p đa ch trang web mu n đ n
• Phía d i là các option cho phép user l a ch n
• Cu i cùng là 2 nút, cho phép ng i dùng kích ho t cho trang web ch y và nút reset l i default.
5.3.2 Ch c n ng:
• Cho phép ng i dùng nh p vào m t đa ch d ng url. Ng i dùng ch c n nh p đa ch , b m Enter, trang web s t i n i dung mà ng i dùng mu n.
• Cho phép s d ng các option, trong đó
o Include a mini URL – form: thêm m t ph n c a Web base Proxy vào đ u trang
Lu n v n t t nghi p M ng máy tính GVHD: ThS Hoàng C ng
Hình 23 Mini form trên m i đ u trang
o Remove all scripts: Lo i b t t c các script
o Accept HTTP cookies: cho phép s d ng cookies đ c i thi n t c đ
o Show images: T i n i dung trang web v trong đó có c hình (l y luôn hình, không lo i b )
o For future: dành cho t ng l i
Lu n v n t t nghi p M ng máy tính GVHD: ThS Hoàng C ng 5.3.3 Thu t toán: 5.3.3.1 Gi i thi u mô hình ho t đ ng: Không Kh i đ ng trang web Ki m tra cookies Load trang web default Có Load trang d a theo cookies Nh p thông tin Ki m tra h p l url Không h p l H p l Ch nh s a url Ki m tra các option Duy t trang web
theo yêu c u N u th t b i: thông báo l i N u thành công Ch nh s a theo option G i k t qu cho client
Lu n v n t t nghi p M ng máy tính GVHD: ThS Hoàng C ng
5.3.3.2 Di n gi i mô hình:
• Kh i đ ng trang web: Bao g m vi c load các form, các đ m c, giao di n trang web
• Ki m tra cookies:Ki m tra xem trên máy hi n có s d ng cookies c a trang hay không
• Load trang web default:N u ki m tra cookies không có, trình duy t s load trang m c đnh, t c là url s tr ng, các option m c đnh s đ c check…
• Load trang d a theo cookies:N u ki m tra cookies có, thì s load theo cookies, bao g m các url đã đ c s d ng, các tr ng thái c a các option.
• Nh p thông tin:Client nh p các thông tin nh url c a trang web c n đ n, check hay b check các option tùy theo ng i dùng. • Ki m tra h p l url:Ki m tra v hình th c nh p nh có thi u http
hay không, có thi u www hay không, n u thi u s t đ ng add thêm vào cho h p l .
• Ki m tra các option:Ki m tra các option xem option nào đ c check, option nào không đ c check đ th c hi n đúng theo yêu c u c a client.
• Duy t trang web theo yêu c u:G i yêu c u đ n webserver t ng ng: phân gi i tên mi n, g i yêu c u http đ n server
• Th t b i, thông báo l i:N u không có trang web, đa ch sai do ng i dùng đánh sai hay b t c nguyên nhân nào làm cho vi c g i http request không đ c đáp ng thì đ u thông báo l i
• Thành công, ch nh s a theo option:N u thành công thì s ch nh s a l i trang: d a theo các option, xem có ph i add thêm ph n ph
Lu n v n t t nghi p M ng máy tính GVHD: ThS Hoàng C ng
vào đ u trang hay không, l y hay lo i b hình nh, l y hay lo i b các script…(các m c này đ c th c hi n khi g i http request). • G i k t qu cho client:G i k t qu cu i cùng đ n cho client là m t
trang web đã đ c tinh ch nh l i, đ c ch nh s a l i cho phù h p.
5.3.3.3 Di n gi i m t s hàm quan tr ng :
• Hàm submit_form():G i yêu c u đ n server
• File url_form.inc:Ph n header c a trang g i cho client.
• File style:Ch a các thông tin v giao di n: màu s c, kích th c… • Hàm set_response(): c u trúc hóa l i trang web
• Hàm set_url(): Ki m tra và tinh ch nh url l i cho h p l • Hàm open_socket():M sock
• Hàm encode_url(): Mã hóa url • Hàm decode_url(): Gi mã url • Hàm set_flags(): Set các option • Hàm set_cookies(): Ghi vào cookies
• Hàm get_cookies(): L y các thông tin t cookies • Hàm delete_cookies(): Xóa cookies
• Hàm include_form(): thêm form c a web-base proxy vào ph n đ u c a trang (tùy thu c vào option có đ c check)
• Hàm remove_scripts(): lo i b các script (tùy thu c vào option có đ c check)
• Hàm send_response_headers(): g i ph n header cho client • Hàm return_response():G i các ph n còn l i cho client.
• Hàm remove_images():Lo i b các hình nh ra kh i trang (tùy thu c vào option có đ c check)
Lu n v n t t nghi p M ng máy tính GVHD: ThS Hoàng C ng PH N TH BA MODULE CH NG V T FIREWALL N i dung : Do m c đích c a lu n v n là nghiên c u các ph ng pháp l p trình v t firewall nh m tìm hi u các cách th c mà ng i dùng có th s d ng đ v t qua firewal. T đó m r ng ra xây d ng các module ch ng v t firewall. Sau th i gian tìm hi u, chúng em đã xây d ng đ c 2 module ng d ng trên Windows nh m ng n ch n ng i dùng v t firewall b ng 2 ph ng pháp đã trình bày bên trên :
- Module ng d ng tích h p vào trình duy t Internet Explorer, nh m phát hi n và ng n ch n ng i dùng v t firewall thông qua Web based
Proxy. Module ho t đ ng d a trên vi c phân tích cách th c ho t đ ng c a các trang Web-Based Proxy và đ a ra 3 chính sách đ hình thành b l c cho Module. Khi ng i dùng duy t b t k 1 trang web nào, b l c c a module s ti n hành ki m tra d a trên các chính sách đã đ c quy đnh s n, n u vi ph m b t k chính sách nào, trang web đó s b ch n l i và l u thông tin (đa ch ) vào c s d li u c a module.
- Module ng d ng d i d ng 1 service trong h th ng, nh m phát hi n và ng n ch n ng i dùng v t firewall thông qua 1 HTTP Proxy server. Module bao g m 2 ph n chính: L c gói tin và ch n gói tin. Module ho t đ ng d a trên vi c l c và ki m tra n i dung các gói tin HTTP. Theo tài li u RFC v HTTP, các gói tin HTTP request thông qua 1 HTTP Proxy Server s có n i dung khác v i các gói tin HTTP Request thông th ng. D a trên đ c đi m này, module s xây d ng chính sách l c và ki m tra các gói tin g i đi trên M ng. Khi 1 gói tin nào đó vi ph m, đa ch đích c a gói tin đó (tr ng h p này chính là đa ch IP c a HTTP Proxy Server) s đ c đ a vào b l c và l u vào c s d li u.
Lu n v n t t nghi p M ng máy tính GVHD: ThS Hoàng C ng
Ch ng 6: Plug-in ch ng v t firewall cho trình
duy t Internet Explorer
Ch ng này chúng em xin phép đ c trình bày v module th nh t: Plug-in ch ng v t firewall cho trình duyêt Internet Explorer
6.1 Gi i thi u s l c :
Plugin là 1 ng d ng đ c vi t tích h p trong trình duy t web Internet Explorer, có nhi m v ki m soát ng i dùng khi duy t web. N u phát hi n ng i dùng có ý đnh mu n v t qua firewall thông qua 1 trang Web Based Proxy nào đó, plugin s ti n hành ng n ch n và l u thông tin v trang web này (đ a ch trang web) vào c s d li u đ làm c s l c v sau. ng d ng đ c vi t trên môi tr ng Visual C 6.0 d i d ng ATL, ch y t t trên các phiên b n trình duy t IE5 tr lên và các phiên b n t Windows 2000 tr lên. Do nhu c u l u tr thông tin v danh sách các Proxy Server, Web-based proxy làm c s cho b l c nên các thông tin này đ c module l u tr vào c s d li u Microsoft Access.
Giao di n chính c a plugin
Giao di n chính c a plug-in Hình 25
Lu n v n t t nghi p M ng máy tính GVHD: ThS Hoàng C ng
Hình 26 Trang thông báo m i khi ng i dùng duy t nh ng trang web vi ph m 6.2 Các tính n ng chính:
6.2.1 L c các trang web d a trên vi c duy t danh sách các trang web có s n trong c s d li u: s n trong c s d li u:
N u ng i dùng có ý đnh mu n duy t 1 trang web có đa ch đã đ c l u trong c s d li u, plugin s hi n ra trang thông báo ng i dùng đã b c m.
6.2.2 L c các trang web d a trên c ch ki m tra đa ch (URL):
Khi ng i dùng duy t đ n 1 trang web m i, n u trang web này có th giúp ng i dùng qua m t đ c firewall (hay còn g i là “vi ph m”), plugin s hi n ra trang thông báo cho ng i dùng và l u l i đ a ch trang web này vào c s d li u. Do đ i đa s các trang Web-based Proxy khi ho t đ ng thì th hi n đa ch c a mình d i d ng http://domain_name c a WebProxy/đa ch th t c a trang web mu n duy t nên d a vào c ch này, ta có th xác đnh các “đa ch
Lu n v n t t nghi p M ng máy tính GVHD: ThS Hoàng C ng
Ví d : gi s trang web www.abc.com là 1 trang vi ph m
Khi ng i dùng thông qua trang này l t vào nh ng trang mình mu n đ n
www.yahoo.com thì k t qu URL c a trang này s thê hi n nh sau:
http://www.webproxy.com/www.yahoo.com
hay http://www.webproxy.com?url=www.yahoo.com
...
Ta có th d dàng tách đa ch trên ra làm 2 đ a ch riêng bi t. N u g p nh ng đa ch quá rõ ràng nh th này thì b l c ch c ch n s phát hi n ra đ c và l u đa ch m i này vào c s d li u cho nh ng l n duy t ti p theo.
6.2.3 L c d a trên n i dung c a các Input Form trong trang web:
Trong tr ng h p các trang ti n hành mã hóa đa ch hay th m chí không th hi n đa ch ra trình duy t thì sao ???
Lúc này ch c n ng th 3 c a b l c l i tr nên h u ích. ây là 1 ch c n ng b sung cho tr ng h p 2 nêu trên. Khi ng i dùng truy c p vào các trang Web-Proxy đ truy c p vào các trang web khác thì g n nh luôn luôn ph i nh p đa ch trang web mình mu n đ n vào 1 textbox, sau đó ti n hành submit cho webserver x lí.
VD: 1 trang web-based proxy th ng có cách trình bày nh sau
Lu n v n t t nghi p M ng máy tính GVHD: ThS Hoàng C ng
Có th th y đ c khi ng i dùng gõ đ y đ tên trang web và click vào nút Go.Trang web s submit n i dung text field v a đ c nh p
(http://www.google.com) lên cho server và server ti n hành duy t
D a trên hành đ ng này, b l c s ti n hành l c các Input tag c a trang web và ki m tra xem có Input tag nào vi ph m hay không. N u vi ph m t c là g n nh ng i dùng đang có ý đnh mu n submit 1 URL đ n cho server và mu n truy c p đ n trang này.
6.2.4 C p nh t các trang web based proxy:
Cho phép ng i dùng có th m quy n đ c c p nh t (thêm xóa) danh sách các trang web based proxy trong c s d li u.
6.2.5 Vô hi u hóa/kích ho t plugin:
Cho phép ng i dùng có th m quy n đ c vô hi u hóa/kích ho t plugin.
6.3 M t s v n đ c n l u ý khi vi t plugin cho trình duy t IE : 6.3.1 Khái ni m Browser Helper Objects (BHO):
Browser Helper Objects (BHO), t m d ch là đ i t ng tr giúp cho trình duy t, là 1 khái ni m do Microsoftđ a ra. ây là 1 d ng ng d ng đ c phát tri n d a trên môi tr ng COM (Component Object Model). Dòng đ i c a đ i t ng này g n li n v i dòng đ i c a trình duy t Internet Explorer, t c là khi kh i đ ng s s d ng chung vùng nh cùng v i trình duy t web Internet
Explorer và ch đ c h y khi trình duy t b đóng. Khi ch y, đ i t ng s có th t ng tác v i t t c m i thành ph n c ng nh đ i t ng khác c a trình duy t (ví d : c a s , toolbar, textfield,…),có th nh n đ c các thông đi p, s ki n do trình duy t phát ra nh các s ki n tr v trang tr c đó (GoBack), trang sau
Lu n v n t t nghi p M ng máy tính GVHD: ThS Hoàng C ng
(GoForward), hay s ki n Download thành công (DocumentComplete),… Các BHO khi đ c kh i t o thì tr c h t ph i tr i qua quá trình đ ng kí vào Registry cho h th ng thông qua giá tr c a CLSID. Giá tr này đóng vai trò nh 1 giá tr đnh danh (Identifier) cho duy nh t BHO.
Hình d i đây minh h a quá trình trình duy t kh i đ ng và n p các BHO vào b nh đ x lí:
Hình 28 Quá trình trình duy t kh i đ ng và n p các BHO
Quá trình ho t đ ng nh sau : - Kh i đ ng trình duy t.
- Trình duy t s tìm trong Registry các giá tr CLSID c a các BHO t ng ng và load các module ng d ng c a các BHO này vào b nh
- M i BHO đ c kh i t o s có 1 Interface (t m d ch là đ i t ng giao ti p) riêng bi t. Khi tìm th y các Interface này c a BHO, trình duy t s chuy n con tr tr đ n Interface c a chính mình (Interface
IUnkown) cho các BHO. Chính vi c chuy n IUnkown cho các BHO mà các BHO này m i có th can thi p đ c vào các đ i t ng c ng nh các s ki n c a trình duy t.
Lu n v n t t nghi p M ng máy tính GVHD: ThS Hoàng C ng
6.3.2 M t s hàm x lí quan tr ng:
- HRESULT SetSite(IUnknown* pUnkSite)
• ây chính là hàm kh i t o đ i t ng BHO. Nhi m v chính c a hàm này là nh n con tr đ i t ng IUnkown và 1 s đ i t ng quan tr ng khác (IWebBrowser2, IConnectionPointContainer) t trình duy t và l u l i đ x lí.
- HRESULT Connect(void)
• Báo cho trình duy t bi t r ng BHO có ý đnh mu n b t các s ki n và x lí tr c khi g i tr l i cho trình duy t.
- HRESULT Invoke()
• B t các s ki n do trình duy t phát ra và chuy n đ n hàm x lí s ki n t ng ng.
- HRESULT Disconnect(void)
• Khi đ i t ng b h y hay ch đ ng k t thúc, c n g i s ki n này đ thông báo ch m d t vi c x lí các s ki n cho trình duy t
- Các hàm x lí s ki n: Tùy theo lo i s ki n mà BHO s có các x lí t ng ng, các s ki n đ c x lí trong Module này l n l t là:
• DISPID_BEFORENAVIGATE2: S ki n chu n b duy t đ n 1 trang web khác trang hi n hành.
• DISPID_ONQUIT : S ki n đóng trình duy t
- Nói thêm v vi c đ ng kí BHO vào registry cho trình duy t
• M c dù khi t o 1 ng d ng d ng COM Plugin cho Internet Explorer, Visual C++ 6.0 s t t o các dòng l nh kh i t o các thông s cho ng d ng trong regsitry trong t p tin có đuôi là rgs. Tuy nhiên các dòng l nh đ ng kí ng d ng vào Registry thì ng i dùng ph i t thêm vào. N i dung c n thêm vào nh sau :
Lu n v n t t nghi p M ng máy tính GVHD: ThS Hoàng C ng
HKLM{SOFTWARE{Microsoft{ Windows {CurrentVersion
{Explorer{'Browser Helper Objects'{ForceRemove {S ID đã đ c VC t o s n} = s 'Tên đ i t ng BHO mu n th hi n'}}}}}}}
6.4 Chi ti t l u tr d li u : 6.4.1 B ng Forbidden
Tên tr ng Ki u Chú thích
URL Text a ch trang web based proxy b c m
6.4.2 B ng Trusted
Tên tr ng Ki u Chú thích
URL Text a ch trang web tin c y