Gi i thi uv trang Web Based Proxy:

Một phần của tài liệu Lập trình vượt firewall (Trang 67)

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. (adsbygoogle = window.adsbygoogle || []).push({});

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 (adsbygoogle = window.adsbygoogle || []).push({});

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. (adsbygoogle = window.adsbygoogle || []).push({});

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

Một phần của tài liệu Lập trình vượt firewall (Trang 67)