Mạng máy tính - Xây dựng Plugin cho internet exploer để chặn các trang web xấu

pdf 93 trang vanle 1800
Bạn đang xem 20 trang mẫu của tài liệu "Mạng máy tính - Xây dựng Plugin cho internet exploer để chặn các trang web xấu", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên

Tài liệu đính kèm:

  • pdfmang_may_tinh_xay_dung_plugin_cho_internet_exploer_de_chan_c.pdf

Nội dung text: Mạng máy tính - Xây dựng Plugin cho internet exploer để chặn các trang web xấu

  1. TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN KHOA CÔNG NGHỆ THÔNG TIN BỘ MÔN MẠNG MÁY TÍNH & VIỄN THÔNG LÊ NGUYỄN MINH TUẤN – ĐẶNG THANH VI XÂY DỰNG PLUGIN CHO INTERNET EXPLORER ĐỂ CHẶN CÁC TRANG WEB XẤU KHÓA LUẬN CỬ NHÂN TIN HỌC NIÊN KHÓA 2001 - 2005
  2. Luận văn tốt nghiệp Mạng máy tính GVHD: ThS Đỗ Hoàng Cường TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN KHOA CÔNG NGHỆ THÔNG TIN BỘ MÔN MẠNG MÁY TÍNH & VIỄN THÔNG LÊ NGUYỄN MINH TUẤN - 0112468 ĐẶNG THANH VI - 0112455 XÂY DỰNG PLUGIN CHO INTERNET EXPLORER ĐỂ CHẶN CÁC TRANG WEB XẤU KHÓA LUẬN CỬ NHÂN TIN HỌC GIÁO VIÊN HƯỚNG DẪN Th.S ĐỖ HOÀNG CƯỜNG NIÊN KHÓA 2001 – 2005 Lê Nguyễn Minh Tuấn Page 2 of 93 Đặng Thanh Vi Mssv: 0112468 Mssv:0112455
  3. Luận văn tốt nghiệp Mạng máy tính GVHD: ThS Đỗ Hoàng Cường LỜI CẢM ƠN Nhóm chúng tôi xin được gởi lời cảm ơn đến các các thầy cô giảng viên trường Đại học Khoa học Tự nhiên TP.HCM cũng như các bạn đã giúp đỡ chúng tôi nhiều trong quá trình thực hiện luận văn: • Các thầy cô giảng viên trong bộ Mạng máy tính và Viễn thông khoa Công Nghệ Thông Tin đã tạo điều kiện cho chúng tôi thực hiện tốt luận văn. • Ban giám hiệu trường Đại học Khoa học Tự nhiên TP.HCM. • Bạn Phan Trung Hiếu – sinh viên khoa Công Nghệ Thông Tin khóa 2001 đã giúp đỡ hỗ trợ tài liệu cho nhóm chúng tôi trong một số kỹ thuật lập trình. • Bạn Vũ Minh Trọng - sinh viên khoa Công Nghệ Thông Tin khóa 2001 đã giúp đỡ nhóm chúng tôi trong việc tìm hiểu các ý tưởng mới cũng như cung cấp cho chúng tôi các ví dụ thực tế. • Roberto Antollini , lập trình viên cung cấp các class C++ miễn phí dùng để truy cập các cơ sở dữ liệu hỗ trợ ADO trên nền desktop chạy Hệ điều hành Windows(98/2000/XP) ở website www.codeproject.com . • João Paulo Figueira , lập trình viên chuyển đổi các class ADO miễn phí của Roberto Antollini sang phiên bản tương thích với nền tảng Microsoft Windows CE 3.0 ở website www.codeproject.com. • Thầy Lê Thụy Anh – giảng viên khoa Công Nghệ Thông Tin đã giải đáp cho chúng tôi một số thắc mắc về trình duyệt Internet Explorer. Lê Nguyễn Minh Tuấn Page 3 of 93 Đặng Thanh Vi Mssv: 0112468 Mssv:0112455
  4. Luận văn tốt nghiệp Mạng máy tính GVHD: ThS Đỗ Hoàng Cường Đặc biệt , chúng em xin gởi đến thầy Đỗ Hoàng Cường lời cám ơn sâu sắc vì sự nỗ lực và tận tâm mà thầy đã giành cho chúng em. Qua quá trình làm việc với thầy, chúng em đã học được rất nhiều điều bổ ích. Lê Nguyễn Minh Tuấn Page 4 of 93 Đặng Thanh Vi Mssv: 0112468 Mssv:0112455
  5. Luận văn tốt nghiệp Mạng máy tính GVHD: ThS Đỗ Hoàng Cường MỤC LỤC Chương 1: MỞ ĐẦUU 12 Chương 2: TỔNG QUAN 14 Chương 3: NGHIÊN CỨU LÝ THUYẾT VÀ CÀI ĐẶT THỰC TẾ 16 3.1 Phân tích yêu cầu: 16 3.2 Phương pháp , thuật toán chính: 18 3.2.1 Phương pháp đánh giá website dựa trên địa chỉ URL 21 3.2.1.1 Đánh giá dựa trên địa chỉ URL đầy đủ: 22 3.2.1.2 Đánh giá dựa trên URL keyword : 24 3.2.1.2.1 Định nghĩa URL keyword: 25 3.2.1.2.2 Nội dung thuật toán 26 3.2.1.2.3 Đánh giá thuật toán 28 3.2.2 Phương pháp đánh giá website dựa trên nội dung website 28 3.2.2.1 Đánh giá dựa trên số lần xuất hiện của các keyword 30 3.2.2.1.1 Nội dung thuật toán 30 3.2.2.1.2 Đánh giá thuật toán 32 3.2.2.2 Đánh giá dựa trên trọng số của văn bản 33 3.2.2.2.1 Nội dung thuật toán 34 3.2.2.2.2 Đánh giá thuật toán 37 3.2.2.3 Cải tiến phương pháp đánh giá dựa trên trọng số của văn bản: 38 3.3 Các kỹ thuật lập trình và cài đặt thực tế 38 3.4 Ý tưởng chung của chương trình. 40 3.4.1 Encoding của trang web 42 3.4.2 Thiết kế cơ sở dữ liệu: 47 3.4.2.1 Thiết kế logic: 47 3.4.2.2 Cài đặt thực tế CSDL 52 3.4.3 Viết Plug-in bằng ATL COM 57 3.4.3.1 Một số thông tin: 57 3.4.3.2 Viết Plug-in cho Internet Explorer bằng ALT COM 58 3.4.3.2.1 Tạo project bằng ATL COM 58 3.4.3.2.2 Tạo plug-in cho Internet Explorer 60 3.4.3.2.3 Cài đặt code để bắt sự kiện của IE 61 3.4.4 Áp dụng các thuật toán vào plug-in 66 3.4.4.1 Class chứa các thuật toán cài đặt 66 3.4.4.2 Kỹ thuật lập trình lấy thông tin của IE phục vụ cho việc đánh giá 71 3.4.4.2.1 Lấy URL 72 3.4.4.2.2 Lấy nội dung trang web. 72 3.4.5 Các chính sách 77 3.4.5.1 Sử dụng trong gia đình 77 3.4.5.2 Sử dụng ở công sở: 78 Lê Nguyễn Minh Tuấn Page 5 of 93 Đặng Thanh Vi Mssv: 0112468 Mssv:0112455
  6. Luận văn tốt nghiệp Mạng máy tính GVHD: ThS Đỗ Hoàng Cường 3.5 Giao diện tương tác với plug-in, cách sử dụng chương trình 80 Chương 4: ĐÁNH GIÁ KẾT QUẢ ĐẠT ĐƯỢC 89 Chương 5: KẾT LUẬN 90 Chương 6: HƯỚNG PHÁT TRIỂN 91 Chương 7: DANH MỤC TÀI LIỆU THAM KHẢO 92 Lê Nguyễn Minh Tuấn Page 6 of 93 Đặng Thanh Vi Mssv: 0112468 Mssv:0112455
  7. Luận văn tốt nghiệp Mạng máy tính GVHD: ThS Đỗ Hoàng Cường BẢNG HÌNH VẼ CÁC KÝ HIỆU Database Table trong database User Database Server WorkStation Lê Nguyễn Minh Tuấn Page 7 of 93 Đặng Thanh Vi Mssv: 0112468 Mssv:0112455
  8. Luận văn tốt nghiệp Mạng máy tính GVHD: ThS Đỗ Hoàng Cường DANH SÁCH CÁC HÌNH TRONG LUẬN VĂN Hình 1 Các phương pháp đánh giá website 20 Hình 2 Sơ đồThuật toán đánh giá dựa trên URL đầy đủ 23 Hình 3 Sơ đồ thuật toán đánh giá trên URL keyword. 27 Hình 4 Sơ đồ thuật toán đánh giá trên số lần xuất hiện keyword 31 Hình 5 Đánh giá dựa trên trọng số của văn bản 36 Hình 6 Các kỹ thuật lập trình và cài đặt thực tế. 39 Hình 7 Hook toàn cục 40 Hình 8 Chương trình lọc 41 Hình 9 . Encoding Unicode 43 Hình 10.Mô hình Encoding 47 Hình 11.Tham chiếu khóa 49 Hình 12. Các table trong cơ sở dữ liệu 51 Hình 13 Ví dụ dữ liệu trong bảng 53 Hình 14. Các ký tự tiếng Việt 56 Hình 15. Sơ đồ tham chiếu khóa ngoại 57 Hình 16. Chọn project ATL COM 59 Hình 17. Các option trong wizard 60 Hình 18. Chọn đối tượng COM 61 Hình 19. Sử dụng trong gia đình 78 Hình 20. Sử dụng trong văn phòng. 80 Hình 21.Giao diện chính của plug-in 82 Hình 22. Chọn danh sách. 82 Hình 23. Ví dụ nội dung trong danh sách english keyword. 83 Hình 24.Insert phần tử 84 Hình 25. Edit phần tử sẽ Insert 84 Hình 26. Hoàn tất Insert 84 Hình 27. Chọn phần tử cần edit trong danh sách chặn 85 Hình 28.Edit phần tử. 86 Hình 29.Hoàn tất edit. 87 Hình 30. Chọn phần tử để delete. 88 Lê Nguyễn Minh Tuấn Page 8 of 93 Đặng Thanh Vi Mssv: 0112468 Mssv:0112455
  9. Luận văn tốt nghiệp Mạng máy tính GVHD: ThS Đỗ Hoàng Cường TÓM TẮT LUẬN VĂN Thông tin chung về đề tài: Tên đề tài: GVHD: Sinh viên thực hiện: 1. MSSV: Họ và tên: 2. MSSV: Họ và tên: Tóm tắt nội dung luận văn: Một số từ khóa chính liên quan đến nội dung đề tài: Lĩnh vực áp dụng: Lê Nguyễn Minh Tuấn Page 9 of 93 Đặng Thanh Vi Mssv: 0112468 Mssv:0112455
  10. Luận văn tốt nghiệp Mạng máy tính GVHD: ThS Đỗ Hoàng Cường Các thuật toán, phương pháp, quy trình chính được nghiên cứu, ứng dụng trong đề tài Các công cụ, công nghệ chính được nghiên cứu, ứng dụng trong đề tài Xác nhận của GVHD Lê Nguyễn Minh Tuấn Page 10 of 93 Đặng Thanh Vi Mssv: 0112468 Mssv:0112455
  11. Luận văn tốt nghiệp Mạng máy tính GVHD: ThS Đỗ Hoàng Cường NỘI DUNG CHÍNH Lê Nguyễn Minh Tuấn Page 11 of 93 Đặng Thanh Vi Mssv: 0112468 Mssv:0112455
  12. Luận văn tốt nghiệp Mạng máy tính GVHD: ThS Đỗ Hoàng Cường Chương 1: MỞ ĐẦU Ngày nay, máy vi tính cá nhân (Personal Computer - PC) đã trở nên phổ biến trong cuộc sống hiện đại : từ công sở đến gia đình, từ trường học đến viện nghiên cứu, từ phân xưởng đến bệnh viện tất cả hoạt động đều cần đến sự có mặt của máy tính. Máy tính , với khả năng của mình , giúp cho quá trình xử lý dữ liệu được nhanh chóng để cho ra kết quả tốt nhất trong thời gian ngắn nhất. Và cùng với xu thế phổ biến của máy tính , Internet đã ra đời để đáp ứng cho nhu cầu tìm kiếm , chia sẻ thông tin ở mọi nơi trên thế giới cho tất cả các lĩnh vực. Mặc dù Internet cung cấp cho chúng ta rất nhiều giao thức khác nhau để phục vụ cho nhu cầu trao đổi dữ liệu , hơn 90% giao thức dùng trên Internet là giao thức HTTP(Hypertext Transfer Protocol). Nói cách khác, chúng ta truy cập Internet phần lớn dựa trên giao diện Web. Vì thế , các tập đoàn , các công ty lớn trên thế giới trong lĩnh vực software như Microsoft , Nestcape , Mozilla , đua nhau đưa ra các trình duyệt Internet dựa trên giao thức HTTP nhằm tăng khả năng hỗ trợ người dùng và trên hết , tiếp thị hình ảnh về công ty của mình. Người dùng Internet cũng được hưởng lợi từ sự cạnh tranh này : hầu hết các trình duyệt hiện nay như Internet Explorer, Nestcape Navigator, Mozilla Firefox đều miễn phí và được hoàn thiện,cập nhật liên tục.Trong đó trình duyệt Internet Explorer của Microsoft là phổ biến nhất. Nguyên nhân: + Internet Explorer được miễn phí kèm theo trên tất cả các phiên bản của Hệ điều hành Windows. + Ít chiếm tài nguyên hệ thống , hoạt động ổn định. + Các plug-in từ nhà cung cấp thứ ba (third-party) rất phong phú. + Ra đời sớm , chiếm nhiều tình cảm của người dùng v.v Lê Nguyễn Minh Tuấn Page 12 of 93 Đặng Thanh Vi Mssv: 0112468 Mssv:0112455
  13. Luận văn tốt nghiệp Mạng máy tính GVHD: ThS Đỗ Hoàng Cường Hiện nay 90% người sử dụng Hệ điều hành Windows dùng trình duyệt Internet Explorer. Điều này cho thấy , Internet Explorer có 1 ảnh hưởng rất lớn đối với cộng đồng Internet. Bên cạnh những khả năng và lợi ích to lớn mà Internet đã và đang đem lại cho chúng ta, còn tồn tại một số vấn đề khác : thư rác (spam), lừa đảo trên mạng , và đặc biệt là một số cá nhân hay tổ chức đã sử dụng Internet như một phương tiện để tuyên truyền các văn hóa đồi trụy, các tư tưởng phản động . Trong bối cảnh đó , nhóm chúng tôi gồm : • Lê Nguyễn Minh Tuấn – mã số sinh viên 0112468 • Đặng Thanh Vi - mã số sinh viên 0112455 đang là sinh viên ở bộ môn Mạng Máy Tính và Viễn Thông , khoa Công Nghệ Thông Tin trường Đại học Khoa học Tự nhiên TP.HCM , với sự hướng dẫn của Thầy Đỗ Hoàng Cường – giảng viên khoa Công Nghệ Thông Tin trường Đại học Khoa học Tự nhiên TP.HCM đã thực hiện đề tài luận văn mang tên : “Xây dựng plug-in cho trình duyệt Internet Explorer để ngăn chặn các trang web xấu.” Nhận thức được ý nghĩa của luận văn : vừa là một luận văn tốt nghiệp , vừa có vai trò ứng dụng thực tế hết sức quan trọng; đồng thời với sự hướng dẫn tận tâm của thầy Đỗ Hoàng Cường , chúng tôi đã nỗ lực hết sức nhằm để thực hiện tốt đề tài của mình. Lê Nguyễn Minh Tuấn Page 13 of 93 Đặng Thanh Vi Mssv: 0112468 Mssv:0112455
  14. Luận văn tốt nghiệp Mạng máy tính GVHD: ThS Đỗ Hoàng Cường Chương 2: TỔNG QUAN Trước đây , người dùng sử dụng Internet chỉ để tham khảo , tra cứu thông tin. Tìm thấy thông tin mà mình cần là đã đạt yêu cầu. Nhưng đi kèm với sự phát triển vượt bậc mạng Internet, các thông tin xấu hoặc không cần thiết xuất hiện càng nhiều. Do đó dẫn đến nhu cầu lọc thông tin trên Internet để chỉ lấy ra những thông tin mà người dùng cần xem hoặc được phép xem. Tuy các phần mềm đọc và phân loại các tin, báo điện tử hiệu quả đã xuất hiện vài năm nay , việc lọc trang web xấu trên trình duyệt Internet là một hướng tiếp cận còn mới. Trên thế giới đã có các phần mềm để ngăn chặn các trang web xấu như Child Control (download bản dùng thử miễn phí – free trial version - ở www.download.com) Ở Việt Nam hiện nay cũng có một số phần mềm tương tự như Depraved Web Killer của tác giả Vũ Lương Bằng (chung kết cuộc thi Trí Tuệ Việt Nam 2004). Depraved Web Killer được tác giả thực hiện trong 18 tháng , viết trên nền Visual Basic 6.0. Nhìn chung , các phần mềm này hoạt động khá tốt, tuy nhiên xét trên góc độ nhu cầu quản lý thông tin không chỉ có ở gia đình , mà còn có ở văn phòng , thì các phần mềm này còn một số chức năng chưa hỗ trợ: + administrator(quản trị) muốn các máy tính trong phạm vi quản lý phải sử dụng chương trình chặn web xấu, và danh sách các trang web xấu cũng như các từ khóa bị cấm trong trang web được các máy tính trong mạng sử dụng phải đồng bộ với nhau. + administrator muốn mình có khả năng thao tác trên danh sách các trang web bị cấm hoặc các từ khóa bị cấm. Việc thao tác có thể thực hiện trên bất kì máy tính nào trong mạng LAN có cài chương trình ngăn chặn. Từ nhận xét đó , chúng tôi cố gắng thực hiện chương trình chặn với mục tiêu đáp ứng các tiêu chí sau: Lê Nguyễn Minh Tuấn Page 14 of 93 Đặng Thanh Vi Mssv: 0112468 Mssv:0112455
  15. Luận văn tốt nghiệp Mạng máy tính GVHD: ThS Đỗ Hoàng Cường + Nhu cầu quản lý thông tin ở gia đình. Ví dụ : Bố mẹ cài đặt phần mềm vào máy tính của con cái để kiểm soát việc truy cập Internet của con. + Bổ sung thêm 2 tính năng hỗ trợ trong mạng LAN như đã nêu trên. Các phần mềm ngăn chặn không phải là giải pháp triệt để để ngăn chặn các trang web xấu. Mục đích của các phần mềm này là khuyến khích người dùng truy cập những thông tin có ích trên Internet và tránh các thông tin không lành mạnh. Lê Nguyễn Minh Tuấn Page 15 of 93 Đặng Thanh Vi Mssv: 0112468 Mssv:0112455
  16. Luận văn tốt nghiệp Mạng máy tính GVHD: ThS Đỗ Hoàng Cường Chương 3: NGHIÊN CỨU LÝ THUYẾT VÀ CÀI ĐẶT THỰC TẾ Phần này sẽ đề cập đến các thuật toán cũng như kỹ thuật lập trình đã sử dụng để thực hiện luận văn , gồm có: • Phân tích yêu cầu luận văn. • Phương pháp, thuật toán chính • Các kỹ thuật lập trình và cài đặt thực tế. Ghi chú: Có một số kỹ thuật lập trình không nêu ra trong báo cáo này vì mục tiêu của báo cáo là giúp người đọc nắm được các ý tưởng chính, các kỹ thuật chính để thực hiện đề tài. 3.1 Phân tích yêu cầu: Từ yêu cầu của luận văn , có thể chia công việc làm 2 nội dung chính: • Nhận dạng thế nào là trang web xấu(Phương pháp, thuật toán chính). • Viết plug-in cho Internet Explorer (Các kỹ thuật lập trình và cài đặt thực tế). và sẽ được đề cập tương ứng với phần Phương pháp, thuật toán chính và Các kỹ thuật lập trình và cài đặt thực tế . Ở đây chúng ta phải làm rõ khái niệm thế nào là một “trang web xấu” Gần đây , chúng ta quan tâm rất nhiều đến cái gọi là “trang web xấu” . Mọi người tùy theo nhận thức và quan điểm của mình có thể có các đánh giá khác nhau. Tuy nhiên, chúng ta đều thống nhất với nhau rằng 1 trang web là “xấu” khi có một trong 2 điều kiện sau đây: Lê Nguyễn Minh Tuấn Page 16 of 93 Đặng Thanh Vi Mssv: 0112468 Mssv:0112455
  17. Luận văn tốt nghiệp Mạng máy tính GVHD: ThS Đỗ Hoàng Cường + có nội dung mang tính chất phản động chính trị. + có nội dung khiêu dâm hoặc đồi trụy. Các trang web có nội dung phản động: Do các cá nhân hoặc tổ chức phản động thiết lập với mục đích tuyên truyền , rêu rao các tư tưởng phản động , chống phá nhà nước , kêu gọi mọi người hưởng ứng “tự do chính trị” , “đa nguyên đa đảng” , bôi bác chủ tịch Hồ Chí Minh , các vị tổng bí thư và các quan chức chính phủ. Các trang web này có rất nhiều , chủ yếu host ở các site nước ngoài , sử dụng tiếng Việt là ngôn ngữ chính để tuyên truyền. Hệ quả của sự tồn tại các website này hẳn nhiên là làm chia rẽ nội bộ, làm mất phương hướng các thanh thiếu niên trẻ , kích động các phần tử vốn đã manh nha tư tưởng phản động. Chúng ta phải có cái nhìn nghiêm túc đối với các trang web loại này, không thể vì lý do “tự do ngôn luận” mà bỏ qua khi mà có cá nhân hoặc tổ chức đã lợi dụng lý do ấy để thực hiện những ý đồ phá hoại. Các trang web có nội dung đồi trụy: Đây là các website đã và đang luôn được dư luận quan tâm và gần đây đã trở thành đề tài nóng bỏng khi các scandal liên quan đến ca sĩ , người mẫu liên tục xuất hiện. Các site này sử dụng các công cụ khiêu dâm , gợi dục như hình ảnh sex, truyện sex, video sex để thu hút người sử dụng Internet đến với mình. Dưới con mắt của người châu Á nói chung và người Việt Nam nói riêng , các website này làm băng hoại xã hội , khiến cho các thành phần thanh thiếu niên và một số người trưởng thành sao nhãng học tập , làm việc , nảy sinh tư tưởng bệnh hoạn , gia tăng các tệ nạn .đi ngược lại với truyền thống văn hóa dân tộc. Lê Nguyễn Minh Tuấn Page 17 of 93 Đặng Thanh Vi Mssv: 0112468 Mssv:0112455
  18. Luận văn tốt nghiệp Mạng máy tính GVHD: ThS Đỗ Hoàng Cường Tuy nhiên , ta phải biết rằng ở một số quốc gia có nền văn hóa rất thoáng như ở Mỹ hay châu Âu, thì vẫn có một số website khiêu dâm được cấp phép hoạt động và chỉ dành cho người trưởng thành(thậm chí ở Hy Lạp, người ta vẫn có thể quay phim sex một cách công khai miễn là nộp thuế đủ cho chính phủ).Các site này hoạt động có tổ chức rõ ràng và dưới sự kiểm soát của chính quyền nước sở tại. Như vậy , các website này chưa hẳn đã là “xấu” theo khía cạnh pháp lý. Vậy căn cứ vào đâu để chúng ta phân biệt đâu là một trang web “xấu”, đâu là một trang web “không xấu”? Căn cứ vào truyền thống văn hóa của người Việt Nam, căn cứ vào sự nhận xét đánh giá của xã hội nước Việt Nam, căn cứ vào luật pháp hiện tại của chính phủ Việt Nam chưa có sự thừa nhận với nghành công nghiệp sex, tất cả các website sử dụng các công cụ khiêu dâm (như đã liệt kê ở trên) đều bị xem là “trang web xấu”. Cũng trong khuôn khổ đề tài, do tính chất đặc thù của mỗi một dạng trang web như trên, nên ngôn ngữ mà chúng tôi quan tâm như sau: + Trang web có nội dung phản động chính trị - ngôn ngữ quan tâm là tiếng Việt Nam. + Trang web có nội dung khiêu dâm hoặc đồi trụy – ngôn ngữ quan tâm là tiếng Việt Nam và tiếng Anh. 3.2 Phương pháp , thuật toán chính: Trong khuôn khổ luận văn, việc đánh giá một website được dựa trên 2 phương pháp chính: + Đánh giá website dựa trên địa chỉ URL. Lê Nguyễn Minh Tuấn Page 18 of 93 Đặng Thanh Vi Mssv: 0112468 Mssv:0112455
  19. Luận văn tốt nghiệp Mạng máy tính GVHD: ThS Đỗ Hoàng Cường + Đánh giá website dựa trên nội dung. Để cho quá trình theo dõi được tiện lợi, chúng tôi xin tóm tắt nội dung của phần này bằng sơ đồ . Các thầy cô và các bạn có thể duyệt theo sơ đồ để xem chi tiết. Lê Nguyễn Minh Tuấn Page 19 of 93 Đặng Thanh Vi Mssv: 0112468 Mssv:0112455
  20. Luận văn tốt nghiệp Mạng máy tính GVHD: ThS Đỗ Hoàng Cường Hình 1 Các phương pháp đánh giá website. Lê Nguyễn Minh Tuấn Page 20 of 93 Đặng Thanh Vi Mssv: 0112468 Mssv:0112455
  21. Luận văn tốt nghiệp Mạng máy tính GVHD: ThS Đỗ Hoàng Cường 3.2.1 Phương pháp đánh giá website dựa trên địa chỉ URL Địa chỉ URL(Universal Resource Location) của một website là một chuỗi kí tự mà người dùng Internet sử dụng để truy cập website đó. Ví dụ: Website của khoa Công nghệ Thông tin trường Đại học Khoa học Tự nhiên TP.HCM có địa chỉ URL là: www.fit.hcmuns.edu.vn Khi muốn truy cập website này , người dùng sẽ đánh vào ô địa chỉ trong trình duyệt như sau: ( Các thông tin thêm về địa chỉ URL có thể xem phần phụ lục) Dựa vào tính chất cơ bản của địa chỉ URL là : một địa chỉ URL tương ứng với một và chỉ một website, chúng ta có thể chặn website xấu dựa trên địa chỉ URL của nó. Trong phần này có 2 thuật toán được áp dụng: Thuật toán 1: Đánh giá dựa trên địa chỉ URL đầy đủ. Thuật toán 1: Đánh giá dựa trên URL keyword. Lê Nguyễn Minh Tuấn Page 21 of 93 Đặng Thanh Vi Mssv: 0112468 Mssv:0112455
  22. Luận văn tốt nghiệp Mạng máy tính GVHD: ThS Đỗ Hoàng Cường 3.2.1.1 Đánh giá dựa trên địa chỉ URL đầy đủ: Trong ngữ cảnh này , địa chỉ URL đầy đủ của một website tính từ sau phần “http://” đến hết đuôi tên miền. Ví dụ: • Địa chỉ URL là ►► URL đầy đủ sẽ là www.truyentranh.com • Địa chỉ URL là ►► URL đầy đủ sẽ là www.doctruyen.com • ►► URL đầy đủ sẽ là www.vnexpress.net Thuật toán đánh giá dựa trên địa chỉ URL đầy đủ được mô tả như sau: B1. Người dùng truy cập Internet thông qua URL. B2. Lấy URL B3. Đem vào database tìm kiếm B4. Nếu tìm thấy ► trang web xấu Ngược lại , là trang web thông thường Lê Nguyễn Minh Tuấn Page 22 of 93 Đặng Thanh Vi Mssv: 0112468 Mssv:0112455
  23. Luận văn tốt nghiệp Mạng máy tính GVHD: ThS Đỗ Hoàng Cường Hình 2 Sơ đồThuật toán đánh giá dựa trên URL đầy đủ Lê Nguyễn Minh Tuấn Page 23 of 93 Đặng Thanh Vi Mssv: 0112468 Mssv:0112455
  24. Luận văn tốt nghiệp Mạng máy tính GVHD: ThS Đỗ Hoàng Cường Ví dụ: www.truyenviet.com là một website bị cấm, khi người sử dụng truy cập trang web này thì trình tự sẽ diễn ra như sau Độ chính xác: độ chính xác của thuật toán này phụ thuộc vào database. Ưu điểm của thuật toán: + Nếu đúng là website xấu có trong database, độ chính xác tuyệt đối 100%. + Không cần filter qua nội dung trang web, có kết quả ngay khi trình duyệt truy cập URL mới. + Thuật toán đơn giản, dễ cài đặt. + Quá trình thực hiện không đòi hỏi nhiều tài nguyên. + Tốc độ thực hiện nhanh. Nhược điểm của thuật toán: + Kết quả phụ thuộc vào tính chất đầy đủ của database, đòi hỏi phải liên tục cập nhật database. + Sẽ để lọt các website mới chưa có trong database. 3.2.1.2 Đánh giá dựa trên URL keyword : Thuật toán đánh giá dựa trên URL đầy đủ có các nhược điểm chính là database phải luôn được cập nhật. Mặt khác , khi số lượng URL tăng lên, thời gian quét sẽ tăng Lê Nguyễn Minh Tuấn Page 24 of 93 Đặng Thanh Vi Mssv: 0112468 Mssv:0112455
  25. Luận văn tốt nghiệp Mạng máy tính GVHD: ThS Đỗ Hoàng Cường theo.Vì thế , chúng tôi bổ sung vào thuật toán đánh giá dựa trên URL keyword nhằm hoàn thiện thêm khả năng chặn web xấu dựa trên URL. 3.2.1.2.1 Định nghĩa URL keyword: URL keyword trong ngữ cảnh này là chuỗi con nằm trong một địa chỉ URL mà các website có URL chứa chuỗi này luôn hoặc thường xuyên là trang web xấu. Ví dụ: Các website sau đây đều là các trang web sex: www.sexviet.com www.sexocean.com www.sex700.com www.sexygirls.com và đều chứa keyword là sex. Hoặc các trang web sex sau đây: www.freeporns.com www.childporn.com www.asiaporns.com đều chứa keyword là porn. Lê Nguyễn Minh Tuấn Page 25 of 93 Đặng Thanh Vi Mssv: 0112468 Mssv:0112455
  26. Luận văn tốt nghiệp Mạng máy tính GVHD: ThS Đỗ Hoàng Cường Lý do để bổ sung thuật toán này vào là vì đa số các trang web khiêu dâm đều muốn thu hút sự chú ý của người dùng Internet bằng cách dùng các từ khiêu dâm,gợi dục để đặt tên cho website của mình. Và thuật toán này đưa ra chủ yếu là ngăn chặn các trang web khiêu dâm. 3.2.1.2.2 Nội dung thuật toán Thuật toán đánh giá dựa trên URL keyword được mô tả như sau: B1. Người dùng truy cập Internet thông qua URL. B2. Lấy URL. B4. Đem vào database. Tìm URL keyword chứa trong URL này. B3. Nếu tìm thấy ► trang web xấu Ngược lại , là trang web thông thường Lê Nguyễn Minh Tuấn Page 26 of 93 Đặng Thanh Vi Mssv: 0112468 Mssv:0112455
  27. Luận văn tốt nghiệp Mạng máy tính GVHD: ThS Đỗ Hoàng Cường Hình 3 Sơ đồ thuật toán đánh giá trên URL keyword. Lê Nguyễn Minh Tuấn Page 27 of 93 Đặng Thanh Vi Mssv: 0112468 Mssv:0112455
  28. Luận văn tốt nghiệp Mạng máy tính GVHD: ThS Đỗ Hoàng Cường 3.2.1.2.3 Đánh giá thuật toán Ưu điểm của thuật toán: + Mức độ chính xác khá cao. + Không đòi hỏi không gian lưu trữ lớn ở database. + Thuật toán đơn giản, dễ cài đặt. + Quá trình thực hiện không đòi hỏi nhiều tài nguyên. + Thời gian thực thi rất nhanh vì số lượng keyword không nhiều. Nhược điểm của thuật toán: + Chắc chắn bỏ qua các trang web không sử dụng các URL keyword phổ biến. + Có thể có một số rất ít các trang web không đồi trụy có chứa một URL keyword nào đó và bị xem là xấu. 3.2.2 Phương pháp đánh giá website dựa trên nội dung website Nội dung của một trang web là phần thông tin hiển thị trên trình duyệt khi người dùng Internet truy cập trang web đó. Vì nội dung của một trang web có thể được xem là một văn bản , nên các hướng xử lý mà chúng ta có thể tiếp cận là: • Đọc hiểu ngôn ngữ , từ đó phân tích được nội dung trang web và cho kết quả.(1) Lê Nguyễn Minh Tuấn Page 28 of 93 Đặng Thanh Vi Mssv: 0112468 Mssv:0112455
  29. Luận văn tốt nghiệp Mạng máy tính GVHD: ThS Đỗ Hoàng Cường • Phân tích hình ảnh có trên trang web rồi cho kết quả.(2) • Duyệt qua văn bản, thống kê các từ ngữ xuất hiện, từ đó cho kết quả tương ứng.(3) Sau quá trình đánh giá , phân tích các hướng tiếp cận, chúng tôi thấy có các nhân tố khách quan và chủ quan sau: + Hiện thời khả năng đánh giá văn bản theo hướng đọc hiểu chưa có kết quả rõ ràng (đối với các ứng dụng phổ biến) , và với tốc độ xứ lý của máy tính hiện nay, tiếp cận theo hướng đọc hiểu đòi hỏi tốn nhiều thời gian và tài nguyên của hệ thống . + Tính đến thời điểm thực hiện đề tài ,công nghệ phân tích hình ảnh cũng chỉ đang ở mức nhận dạng người , chưa có khả năng nhận dạng được những hình ảnh liên quan đến chính trị và sex. Vì vậy , chúng tôi đã đi theo hướng tiếp cận (3). Mặt khác, do thời gian có hạn và một số khó khăn trong kỹ thuật xử lý ngôn ngữ nên hiện thời chúng tôi chỉ dừng lại ở việc áp dụng chặn trên nội dung đối với các trang web có nội dung sex .Ngôn ngữ được quan tâm là cả tiếng Việt Nam và tiếng Anh. Hướng tiếp cận trong phần này dựa trên cách thống kê các keyword xuất hiện trong nội dung trang web. Trong đó keyword là các từ hoặc cụm từ dùng để miêu tả hình ảnh, hoạt động , trạng thái liên quan đến sex. Hướng tiếp cận này có hai thuật toán được áp dụng: Thuật toán 1: Lê Nguyễn Minh Tuấn Page 29 of 93 Đặng Thanh Vi Mssv: 0112468 Mssv:0112455
  30. Luận văn tốt nghiệp Mạng máy tính GVHD: ThS Đỗ Hoàng Cường Đánh giá dựa trên số lần xuất hiện của các keyword. Thuật toán 2: Đánh giá dựa trên trọng số của văn bản. Ngoài ra, còn có phần: Cải tiến thuật toán 2. 3.2.2.1 Đánh giá dựa trên số lần xuất hiện của các keyword. 3.2.2.1.1 Nội dung thuật toán Thuật toán này như sau: B1. Trình duyệt load trang web. B2. Duyệt qua trang web. B3. Đếm tổng số keyword xuất hiện trong trang web. B4. Nếu số keyword lớn hơn hoặc bằng ngưỡng qui định ► web xấu , block trang web.Đưa URL vào database. Ngược lại , ►là trang web thông thường, trả về cho trình duyệt. Lê Nguyễn Minh Tuấn Page 30 of 93 Đặng Thanh Vi Mssv: 0112468 Mssv:0112455
  31. Luận văn tốt nghiệp Mạng máy tính GVHD: ThS Đỗ Hoàng Cường Hình 4 Sơ đồ thuật toán đánh giá trên số lần xuất hiện keyword Lê Nguyễn Minh Tuấn Page 31 of 93 Đặng Thanh Vi Mssv: 0112468 Mssv:0112455
  32. Luận văn tốt nghiệp Mạng máy tính GVHD: ThS Đỗ Hoàng Cường 3.2.2.1.2 Đánh giá thuật toán Ưu điểm của thuật toán: + Thuật toán khá hiệu quả với các trang web sex. + Chỉ sử dụng danh sách keyword nên không gian chiếm dụng trên database rất ít. + Không đòi hỏi nhiều tài nguyên khi xử lý. + Thời gian thực thi khá nhanh. Khuyết điểm + Các keyword khác nhau có thể có mức độ thể hiện nội dung sex khác nhau nhưng vẫn được xem là như nhau khi thực hiện đếm trên trang web, nên có thể gây hiểu nhầm về mức độ sex của trang web đó. Ví dụ: Các từ như “xxx” có mức độ sex cao hơn từ “áo lót”. Và chẳn hạn, ta qui định ngưỡng bị cấm là xuất hiện từ 4 keyword trở lên. Khi đó chúng ta chặn được trang web chứa đoạn văn bản sau đây: (trích từ website www.truyenviet.com) “ xxx1 xxx2 xxx3 xxx4 “ (bị chặn , không nêu ra ở đây) Lê Nguyễn Minh Tuấn Page 32 of 93 Đặng Thanh Vi Mssv: 0112468 Mssv:0112455
  33. Luận văn tốt nghiệp Mạng máy tính GVHD: ThS Đỗ Hoàng Cường Nhưng đoạn văn bản sau có thể bị nhầm là chứa nội dung sex nếu xét theo tiêu chuẩn trên: “Các phụ nữ mặc áo lót quá nhiều giờ trong ngày có thể gặp một số bệnh về hô hấp.Các bác sĩ khuyên phụ nữ không nên mặc áo lót trước khi đi ngủ Mặc khác, áo lót làm từ các chất liệu không phù hợp còn có thể gây các bệnh về da.Tố nhất nên chọn loại áo lót bằng cotton mịn, có thể co giãn, kích thước không quá chật.” + Chỉ quét được nội dung text , còn hình ảnh không thể biết được. 3.2.2.2 Đánh giá dựa trên trọng số của văn bản. Được áp dụng để lọc các trang web có nội dung đồi trụy. Nhắc lại: phương pháp đánh giá dựa trên số lần xuất hiện của keyword có nhược điểm chính là đánh đồng các keyword khác nhau mặc dù các keyword này có thể có mức độ sex khác nhau. Trong phương pháp đánh giá dựa trên trọng số của văn bản, văn bản cũng được duyệt dựa trên các keyword, tuy nhiên có một số điểm ta cần quan tâm sau đây: • trọng số của keyword là một giá trị thể hiện mức độ khiêu dâm của keyword. • mỗi keyword được gán cho một trọng số khác nhau • Trọng số của văn bản là tổng trọng số của các keyword được tìm thấy trong văn bản. Lê Nguyễn Minh Tuấn Page 33 of 93 Đặng Thanh Vi Mssv: 0112468 Mssv:0112455
  34. Luận văn tốt nghiệp Mạng máy tính GVHD: ThS Đỗ Hoàng Cường 3.2.2.2.1 Nội dung thuật toán Thuật toán cho phương pháp này như sau: B1. Trình duyệt load trang web. B2. Trọng số của trang web gán = 0. B3. Duyệt qua trang web. B4. Nếu tìm thấy keyword, cộng trọng số của keyword đó vào trọng số của trang web. B5. Nếu trọng số của trang web >= trọng số qui định trước ► trang web xấu ►Block trang web. ►Đưa URL của trang web vào database. Ngược lại, ►là trang web thông thường, trả về cho trình duyệt. Lê Nguyễn Minh Tuấn Page 34 of 93 Đặng Thanh Vi Mssv: 0112468 Mssv:0112455
  35. Luận văn tốt nghiệp Mạng máy tính GVHD: ThS Đỗ Hoàng Cường Thuật toán đánh giá dựa trên số điểm của văn bản 7/19/2005 Trình duyệt load trang web Duyệt qua trang web Database chứa danh sách keyword bị cấm Nếu tìm thấy keyword, tăng trọng số của trang web. Còn keyword Hết keyword Nếu trọng số = ngưỡng Trang web thông thường Trang web xấu Block trang web,đưa Trả về cho trình duyệt URL vào database Lê Nguyễn Minh Tuấn Page 35 of 93 Đặng Thanh Vi Mssv: 0112468 Mssv:0112455
  36. Luận văn tốt nghiệp Mạng máy tính GVHD: ThS Đỗ Hoàng Cường Hình 5 Đánh giá dựa trên trọng số của văn bản Ví dụ: Xét lại 2 website chứa 2 đoạn văn bản đã dùng ở ví dụ trên: Đoạn văn bản đầu tiên chứa nội dung sex: “ xxx1 xxx2 xxx3 xxx4 “ (bị chặn , không nêu ra ở đây)(1) Còn đoạn văn sau đây mang nội dung bình thường “Các phụ nữ mặc áo lót quá nhiều giờ trong ngày có thể gặp một số bệnh về hô hấp.Các bác sĩ khuyên phụ nữ không nên mặc áo lót trước khi đi ngủ Mặc khác, áo lót làm từ các chất liệu không phù hợp còn có thể gây các bệnh về da.Tốt nhất nên chọn loại áo lót bằng vải cotton mịn, có thể co giãn, kích thước không quá chật.” (2) Giả sử ta có bảng trọng số sau đây cho các keyword: Keyword Trọng số xxx1 10 xxx2 10 xxx3 10 xxx4 10 áo lót 5 Và giả sử ta đặt ngưỡng giới hạn cho trọng số của 1 trang web là 40 (tất cả các website có trọng số >= 40 được xem là trang web có nội dung đồi trụy) Lê Nguyễn Minh Tuấn Page 36 of 93 Đặng Thanh Vi Mssv: 0112468 Mssv:0112455
  37. Luận văn tốt nghiệp Mạng máy tính GVHD: ThS Đỗ Hoàng Cường Khi đó , trọng số của (1) là 40, trọng số của (2) chỉ là 20. Î Block (1) ,nhưng không block (2). Như vậy ta giải quyết được trường hợp nhầm lẫn mà phương pháp đánh giá dựa vào số lần xuất hiện của keyword mắc phải. Ghi chú Có thể người đọc sẽ thắc mắc : tại sao không nâng giới hạn về số lần xuất hiện của các keyword để tránh nhầm lẫn các trang web không sex là trang web sex ? Câu trả lời là vì nếu làm như thế sẽ bỏ qua một số trang web có nội dung sex nhưng dùng ít từ ngữ gợi sex hơn mức qui định. 3.2.2.2.2 Đánh giá thuật toán Ưu điểm của thuật toán: + Chỉ sử dụng danh sách keyword nên không gian chiếm dụng trên database rất ít. + Không đòi hỏi nhiều tài nguyên khi xử lý. + Thời gian thực thi khá nhanh. Khuyết điểm của thuật toán: + Chỉ quét được nội dung text , còn hình ảnh không thể biết được. Lê Nguyễn Minh Tuấn Page 37 of 93 Đặng Thanh Vi Mssv: 0112468 Mssv:0112455
  38. Luận văn tốt nghiệp Mạng máy tính GVHD: ThS Đỗ Hoàng Cường 3.2.2.3 Cải tiến phương pháp đánh giá dựa trên trọng số của văn bản: Thuật toán đánh giá dựa trên trọng số văn bản gặp khó khăn với một số website khiêu dâm chỉ chứa toàn hình ảnh và có rất ít nội dung chữ (những website này đa số không nổi tiếng , nhưng vẫn là dạng xấu và cần chúng ta quan tâm). Khi gặp những website này , có một số trường hợp , phương pháp đánh giá dựa trên trọng số của văn bản không phát hiện được . Nguyên nhân là do có quá ít nội dung bằng chữ khiến cho trọng số của trang web không đạt tới ngưỡng (mặc dù đây là các nội dung khiêu dâm) Để khắc phục hiện tượng này, ta cải tiến thuật toán đánh giá dựa trên trọng số như sau: Sau khi quét nội dung trang web, nếu trang web đạt một trọng số nhất định (nhưng nhỏ hơn ngưỡng qui định) mà chiều dài nội dung chữ trong trang web đó quá ít thì nó cũng bị xem là trang web xấu. 3.3 Các kỹ thuật lập trình và cài đặt thực tế Trong phần này sẽ đề cập đến việc cài đặt thực tế chương trình của đề tài và các kỹ thuật lập trình cần thiết để thực hiện việc cài đặt. Ở phần 2, chúng ta đã xem xét qua các phương pháp , thuật toán có thể áp dụng để chặn trang web xấu. Trong quá trình xem xét , phân tích các hướng tiếp cận đó, chúng ta đều thấy rằng: + Các phương pháp bổ sung, gia tăng hiệu quả cho nhau. + Không có phương án nào thật sự hoàn thiện. Lê Nguyễn Minh Tuấn Page 38 of 93 Đặng Thanh Vi Mssv: 0112468 Mssv:0112455
  39. Luận văn tốt nghiệp Mạng máy tính GVHD: ThS Đỗ Hoàng Cường Do đó , khi cài đặt thực tế , tất cả các phương pháp đã đề cập trong phần 2, đều được áp dụng vào chương trình. Các nội dung chính sẽ bao gồm: Các kỹ thuật lập trình và cài đặt thực tế Ý tưởng chung của chương trình Encoding của trang web Thiết kế cơ sở dữ liệu Viết plug-in bằng ATL COM Áp dụng các thuật toán vào plug-in Các chính sách Hình 6 Các kỹ thuật lập trình và cài đặt thực tế. Lê Nguyễn Minh Tuấn Page 39 of 93 Đặng Thanh Vi Mssv: 0112468 Mssv:0112455
  40. Luận văn tốt nghiệp Mạng máy tính GVHD: ThS Đỗ Hoàng Cường 3.4 Ý tưởng chung của chương trình. Chương trình chúng ta viết sẽ có chức năng như bộ lọc để ngăn chặn các trang web xấu mỗi khi người dùng truy cập Internet bằng trình duyệt Internet Explorer. Ta hãy xem lại cách mà một Hook toàn cục trong Windows hoạt động: Trước khi bất cứ một thông điệp nào (thuộc dạng mà Hook đã đăng ký) được gởi từ hàng đợi hệ thống đến hàng đợi của ứng dụng, thông điệp đó phải đi qua Hook. Hình 7 Hook toàn cục Tương tự như thế, chương trình (plug-in) của chúng ta cũng có thể xem là một “Hook” đối với trình duyệt Internet Explorer: “Mỗi khi trình duyệt load một trang web, thì trang web đó phải đi qua chương trình của chúng ta trước khi được hiển thị cho người xem” Lê Nguyễn Minh Tuấn Page 40 of 93 Đặng Thanh Vi Mssv: 0112468 Mssv:0112455
  41. Luận văn tốt nghiệp Mạng máy tính GVHD: ThS Đỗ Hoàng Cường Hình 8 Chương trình lọc Ghi chú: Có một chút khác biệt so với Hook : • Đối với Hook, người cung cấp thông điệp (hàng đợi hệ thống) và người nhận thông điệp (hàng đợi ứng dụng) là khác nhau. • Đối với bộ lọc của chúng ta, người cung cấp và người nhận nội dung trang web đều là trình duyệt Internet Explorer. Nguyên tắc lọc của chương trình sẽ như sau: B1. Người dùng nhập vào URL mới. B2. Chương trình kiểm tra URL keyword. (Phương pháp đánh giá dựa trên URL keyword) Nếu là trang xấu ►Block trang web. Lê Nguyễn Minh Tuấn Page 41 of 93 Đặng Thanh Vi Mssv: 0112468 Mssv:0112455
  42. Luận văn tốt nghiệp Mạng máy tính GVHD: ThS Đỗ Hoàng Cường Ngược lại ►là trang web thông thường, trả về trình duyệt. Quay lại B1. B3. Chương trình kiểm tra URL. (Phương pháp đánh giá dựa trên URL) Nếu là trang xấu ►Block trang web. Ngược lại ►là trang web thông thường, trả về trình duyệt. Quay lại B1. B4. Trình duyệt load nội dung trang web. B5. Chương trình kiểm tra nội dung. (Phương pháp đánh giá dựa trên nội dung) Nếu là trang xấu ►Block trang web. Đưa URL của trang đó vào database. Ngược lại ►là trang web thông thường, trả về trình duyệt. Quay lại B1. 3.4.1 Encoding của trang web. Vì sao chúng ta phải quan tâm tới Encoding của trang web? Nguyên nhân là t rong phương pháp đánh giá dựa trên nội dung, chúng ta phải lấy ra nội dung text của trang web, mà việc này lại liên quan đến encoding của trang web đó. Khái niệm về encoding: Lê Nguyễn Minh Tuấn Page 42 of 93 Đặng Thanh Vi Mssv: 0112468 Mssv:0112455
  43. Luận văn tốt nghiệp Mạng máy tính GVHD: ThS Đỗ Hoàng Cường Đối với giao thức HTTP, mỗi trang web khi load về cho trình duyệt đều phải được encode (mã hóa) theo một chuẩn nào đó , mà ta gọi là encoding. Chúng ta hãy tưởng tượng khi mở một file .doc bằng chương trình Microsoft Word thì trong máy phải có sẵn font chữ của thích hợp , nếu không thì văn bản hiển thị sẽ không đúng và không xem được file .doc đó. Cũng tương tự như vậy , trình duyệt phải hiểu được encoding của trang web thì mới hiển thị đúng. Ví dụ: Trang web sau trích từ website www.vnexpress.net, được encoding bằng chuẩn Unicode(UTF-8). Khi hiển thị bằng trình duyệt Internet Explorer , thiết lập encoding cho trình duyệt là Unicode(UTF-8) thì nội dung hiển thị đúng: Hình 9 . Encoding Unicode Lê Nguyễn Minh Tuấn Page 43 of 93 Đặng Thanh Vi Mssv: 0112468 Mssv:0112455
  44. Luận văn tốt nghiệp Mạng máy tính GVHD: ThS Đỗ Hoàng Cường Nhưng nếu ta thiết lập encoding cho Internet Explorer là Western European (Windows) thì kết quả sẽ là không xem được trang web này. Hoặc nếu ta thiết lập encoding cho Internet Explorer là Chinese Traditional (Big5) thì kết quả như sau: Lê Nguyễn Minh Tuấn Page 44 of 93 Đặng Thanh Vi Mssv: 0112468 Mssv:0112455
  45. Luận văn tốt nghiệp Mạng máy tính GVHD: ThS Đỗ Hoàng Cường Ghi chú:Hầu hết các trình duyệt Internet đều có thể tự động chọn encoding phù hợp với trang web(chức năng AutoSelect). Như vậy, khi cài đặt ứng với mỗi dạng encoding (chủ yếu là tương ứng với tiếng Việt) ta phải có một danh sách URL, URL keyword và keyword riêng biệt. Điều này gặp khó khăn vì số lượng các dạng encoding rất nhiều. Tuy nhiên, do hầu hết các website hiện nay đều sử dụng chuẩn encoding là: • Unicode hoặc Unicode(UTF-8) cho các trang tiếng Viêt.(1) • Họ Western hoặc Unicode(UTF-8) cho các trang tiếng Anh.(2) Lê Nguyễn Minh Tuấn Page 45 of 93 Đặng Thanh Vi Mssv: 0112468 Mssv:0112455
  46. Luận văn tốt nghiệp Mạng máy tính GVHD: ThS Đỗ Hoàng Cường Îchúng ta chỉ tập trung vào các dạng encoding ở (1) và (2). Cả hai trường hợp trên, chỉ cần thiết lập một phiên bản danh sách các • URL • URL keyword • keyword (dành cho nội dung) được mã hóa bằng bảng mã Unicode là đủ.(SẼ GIẢI THÍCH THÊM ở phần sau). Danh sách của được chứa trong database , mà hầu hết các database hiện nay như Microsoft SQL Server, Oracle, Microsoft Access đều hỗ trợ Unicode chuẩn mặc định nên chúng ta không gặp khó khăn gì khi thiết lập các danh sách này. Mô hình Encoding sẽ như sau: Lê Nguyễn Minh Tuấn Page 46 of 93 Đặng Thanh Vi Mssv: 0112468 Mssv:0112455
  47. Luận văn tốt nghiệp Mạng máy tính GVHD: ThS Đỗ Hoàng Cường Hình 10.Mô hình Encoding 3.4.2 Thiết kế cơ sở dữ liệu: Vì chương trình lọc của chúng ta cần đến một cơ sở dữ liệu , nên trong phần này ta sẽ thiết kế và triển khai một cơ sở dữ liệu phù hợp với các thuật toán đã tìm hiểu. 3.4.2.1 Thiết kế logic: Về cơ bản , cơ sở dữ liệu (CSDL) của ta chỉ bao gồm một số bảng dữ liệu để chứa các danh sách cần thiết trong thuật toán như sau: Lê Nguyễn Minh Tuấn Page 47 of 93 Đặng Thanh Vi Mssv: 0112468 Mssv:0112455
  48. Luận văn tốt nghiệp Mạng máy tính GVHD: ThS Đỗ Hoàng Cường • Danh sách các URL bị cấm. • Danh sách các URL keyword. • Danh sách các keyword bị cấm (dành cho nội dung). Ngoài ra, còn cần đến 2 bảng dữ liệu : • Danh sách các user có quyền thao tác trên CSDL. • Các URL ngoại lệ (luôn đươc phép truy cập). Ta biết rằng , trong phương pháp đánh giá dựa trên nội dung, các keyword có mức độ sex khác nhau sẽ có trọng số tương ứng khác nhau. Vì thế , trong bảng chứa các keyword (dành cho nội dung) sẽ phải thể hiện được trọng số của từng keyword. Nếu ta chứa trong CSDL các cặp dữ liệu dạng: ( keyword, trọng số) thì ở hiện tại sẽ đáp ứng được nhu cầu trên. Ví dụ:Bảng chứa các keyword bị cấm Keyword Điểm số Keyword1 10 Keyword2 5 Keyword3 2 Tuy nhiên, sau này chúng ta muốn thay đổi trọng số của một số keyword có cùng mức độ sex (chẳn hặn ta thấy rằng keyword “nõn nà”,”trắng hồng” , nên giảm bớt trọng Lê Nguyễn Minh Tuấn Page 48 of 93 Đặng Thanh Vi Mssv: 0112468 Mssv:0112455
  49. Luận văn tốt nghiệp Mạng máy tính GVHD: ThS Đỗ Hoàng Cường số từ 10 xuống 5) thì phải tìm và thay đổi một loạt các vị trí . Điều này sẽ hơi khó khăn và phiền phức vì số lượng các keyword không dưới 200 từ ( cho cả tiếng Anh và tiếng Việt). Do đó, để chứa được danh sách các keyword và trọng số tương ứng, ta cần 2 bảng: • một bảng chứa danh sách các keyword và loại keyword. • một bảng chứa danh sách loại keyword và trọng số của loại đó. Hình 11.Tham chiếu khóa Lê Nguyễn Minh Tuấn Page 49 of 93 Đặng Thanh Vi Mssv: 0112468 Mssv:0112455
  50. Luận văn tốt nghiệp Mạng máy tính GVHD: ThS Đỗ Hoàng Cường Mặt khác, khi cài đặt chương trình thực tế, ta sẽ có một xử lý như sau: + Lấy nội dung text từ trang web về. + Biến tất kí tự hoa trong nội dung này thành chữ thường , rồi duyệt trang web. ( ) Chúng tôi sẽ giải thích vì sau như vậy ở phần Áp dụng thuật toán vào plug-in, bây giờ ta cần biết là để thực hiện thao tác ( ) cần có danh sách các kí tự hoa và thường tương ứng. Với tiếng Anh, ta có thể sử dụng ngay các hàm có sẵn trong ngôn ngữ lập trình để biến một đoạn văn bản từ chữ hoa thành thương, nhưng các ngôn ngữ lập trình hiện nay đều không hỗ trợ việc đó đối với tiếng Việt. Do đó, ta phải lập các cặp hoa-thường tương ứng trong tiếng Việt. Ví dụ: Đ Æ đ I Æ i Ế Æ ế ả Æ ả (Nên nhớ là đối với tiếng Việt thì I, Í ,Ì , Ị phải có kí tự thường tương ứng là i, í , ì, ị.) Vậy , CSDL của ta sẽ bao gồm các bảng sau: Lê Nguyễn Minh Tuấn Page 50 of 93 Đặng Thanh Vi Mssv: 0112468 Mssv:0112455
  51. Luận văn tốt nghiệp Mạng máy tính GVHD: ThS Đỗ Hoàng Cường Hình 12. Các table trong cơ sở dữ liệu Lê Nguyễn Minh Tuấn Page 51 of 93 Đặng Thanh Vi Mssv: 0112468 Mssv:0112455
  52. Luận văn tốt nghiệp Mạng máy tính GVHD: ThS Đỗ Hoàng Cường 3.4.2.2 Cài đặt thực tế CSDL Ta có thể cài đặt cơ sở dữ liệu trên Microsoft Acess hoặc Microsoft SQL Server , cả 2 hệ quản trị này đều hỗ trợ Unicode mặc định và chương trình lọc có thể truy xuất cả Access và SQL Server. Ta chọn cài đặt CSDL trên SQL Server. Cơ sở dữ liệu thực tế như sau: • Kinds_Keyword: Chứa danh sách các loại keyword và trọng số tương ứng từng loại. Các column: . ID : loại keyword. . Kind of keyword: ghi chú. . Mark : trọng số của keyword đó. Loại keyword (ID) có 3 dạng : danh từ , động từ , tính từ. Ở mỗi dạng sẽ được phân thành các cấp độ thể hiện sex khác nhau: mạnh , vừa phải, nhẹ. Mức độ thể hiện sex càng cao thì trọng số càng lớn. Ví dụ , dữ liệu trong bảng này như sau: Lê Nguyễn Minh Tuấn Page 52 of 93 Đặng Thanh Vi Mssv: 0112468 Mssv:0112455
  53. Luận văn tốt nghiệp Mạng máy tính GVHD: ThS Đỗ Hoàng Cường . ID = 11: 1 đầu tiên là danh từ, 1 kế tiếp chỉ từ thể hiện sex mạnh Æ trọng số đạt tối đa là 10.Tương tự: . ID = 12: danh từ sex vừa phải . . ID = 13: danh từ sex nhẹ. Hình 13 Ví dụ dữ liệu trong bảng . ID = 21: động từ sex mạnh. . ID = 22: động từ sex vừa phải . ID = 31: tính từ sex mạnh . • Text_Keyword_1_1: Chứa danh sách các keyword bằng tiếng Việt. Các column: . ID : loại keyword. . Keyword: giá trị của keyword. (vì lý do tế nhị nên sẽ không ví dụ về các record có trong bảng này) Lê Nguyễn Minh Tuấn Page 53 of 93 Đặng Thanh Vi Mssv: 0112468 Mssv:0112455
  54. Luận văn tốt nghiệp Mạng máy tính GVHD: ThS Đỗ Hoàng Cường • Text_Keyword_1_2: Chứa danh sách các keyword bằng tiếng Anh. Các column: . ID : loại keyword. . Keyword: giá trị của keyword. (vì lý do tế nhị nên sẽ không ví dụ về các record có trong bảng này) • URL: Chứa danh sách các URL bị cấm truy xuất. Các column: . URL : chứa URL bị cấm . Last Used: thời gian sử dụng trước đó.Dùng phục vụ cho các chính sách cập nhật. Ví dụ dữ liệu trong bảng này như sau: Lê Nguyễn Minh Tuấn Page 54 of 93 Đặng Thanh Vi Mssv: 0112468 Mssv:0112455
  55. Luận văn tốt nghiệp Mạng máy tính GVHD: ThS Đỗ Hoàng Cường • URL_Exception: Chứa danh sách các URL ngoại lệ. Các URL nằm trong bảng này luôn được phép truy cập. • URL_Keyword Chứa các keyword bị cấm trong URL Các column: . Keyword: giá trị của URL keyword. Ví dụ dữ liệu trong bảng này như sau: Lê Nguyễn Minh Tuấn Page 55 of 93 Đặng Thanh Vi Mssv: 0112468 Mssv:0112455
  56. Luận văn tốt nghiệp Mạng máy tính GVHD: ThS Đỗ Hoàng Cường • VietNamese_Vowel: Chứa các ký tự hoa-thường tương ứng trong tiếng Việt. Các column: . Upper_case: kí tự hoa. . Lower_case: kí tự thường. Ví dụ dữ liệu trong bảng này như sau: Hình 14. Các ký tự tiếng Việt. Cuối cùng, sơ đồ tham chiếu khóa ngoại: Lê Nguyễn Minh Tuấn Page 56 of 93 Đặng Thanh Vi Mssv: 0112468 Mssv:0112455
  57. Luận văn tốt nghiệp Mạng máy tính GVHD: ThS Đỗ Hoàng Cường Hình 15. Sơ đồ tham chiếu khóa ngoại. 3.4.3 Viết Plug-in bằng ATL COM 3.4.3.1 Một số thông tin: Khái niệm về COM: Component Object Model (COM) là một mô hình software , trong đó các ứng dụng hay hệ thống có thể xây dựng từ các module được cung cấp bởi các hãng khác nhau. Ví dụ: Khi ta cài Norton Antivirus vào máy tính có sẵn Microsoft Office, thì trong Norton Antivirus có một module gắn vào trong Microsoft Office thực hiện chức năng quét các file .doc. Module này chính là một COM. Các dạng COM: COM có nhiều dạng như ATL COM, DCOM, COM+, ActiveX Trình soạn thảo Visual C++ 6.0 cung cấp bởi Microsoft hỗ trợ 2 nền tảng COM là ALT COM và MFC ActiveX. Lê Nguyễn Minh Tuấn Page 57 of 93 Đặng Thanh Vi Mssv: 0112468 Mssv:0112455
  58. Luận văn tốt nghiệp Mạng máy tính GVHD: ThS Đỗ Hoàng Cường 3.4.3.2 Viết Plug-in cho Internet Explorer bằng ALT COM Qui trình để tạo một plug-in cho Internet Explorer bằng ATL COM: • B1: Tạo project ATL COM bằng VC++6.0. • B2: Tạo mới một đối tượng COM dạng “Internet Explorer Object”. • B3: Overwrite các event handler của đối tượng COM để yêu cầu IE gởi thông điệp cho đối tượng COM. • B4: Dựa trên các thông điệp của IE để xử lý theo yêu cầu. • B5: Đăng ký COM với COM server của máy hiện hành và với trình duyệt IE bằng registrar script code (RGS). 3.4.3.2.1 Tạo project bằng ATL COM Mở VC++, chọn Project ATLCOM AppWizard. Điền các thông tin khác theo qui định thông thường (Project Name, Location) . Chon OK Lê Nguyễn Minh Tuấn Page 58 of 93 Đặng Thanh Vi Mssv: 0112468 Mssv:0112455
  59. Luận văn tốt nghiệp Mạng máy tính GVHD: ThS Đỗ Hoàng Cường Hình 16. Chọn project ATL COM Kế tiếp , chọn file thực thi là DLL, check vào option: support MFC. File DLL chứa COM sẽ được load theo IE mỗi khi IE chạy. Option support MFC để chúng ta có sự hỗ trợ tốt khi lập trình bằng thư viên MFC của Microsoft. Lê Nguyễn Minh Tuấn Page 59 of 93 Đặng Thanh Vi Mssv: 0112468 Mssv:0112455
  60. Luận văn tốt nghiệp Mạng máy tính GVHD: ThS Đỗ Hoàng Cường Hình 17. Các option trong wizard 3.4.3.2.2 Tạo plug-in cho Internet Explorer Chọn Menu Insert/New ATL Object. Cửa sổ dialog mở ra. + Ở mục Category chọn Objects. + Ở mục Objects chọn Internet Explorer Object. Lê Nguyễn Minh Tuấn Page 60 of 93 Đặng Thanh Vi Mssv: 0112468 Mssv:0112455
  61. Luận văn tốt nghiệp Mạng máy tính GVHD: ThS Đỗ Hoàng Cường Hình 18. Chọn đối tượng COM Chọn Next, sau đó điền các thông tin : + shortname :AtlComPlugin. + Các thông tin khác để mặc định Chọn OK. VC ++ sẽ tự động tạo ra 1 class COM ở dạng plug-in vào trình duyệt Internet Explorer có tên là CAtlComPlugin. 3.4.3.2.3 Cài đặt code để bắt sự kiện của IE. Chi tiết về source code xin tham khảo trong thư mục đi kèm. Ở đây chỉ giới thiệu các điểm chính khi coding. Một plug-in vào trình duyệt Internet Explorer ngoài việc kế thừa các class COM cơ bản : CComObjectRootEx, CComCoClass , còn kế thừa 2 interface là + IObjectWithSiteImpl Lê Nguyễn Minh Tuấn Page 61 of 93 Đặng Thanh Vi Mssv: 0112468 Mssv:0112455
  62. Luận văn tốt nghiệp Mạng máy tính GVHD: ThS Đỗ Hoàng Cường + IDispatchImpl Đây là 2 interface rất quan trọng.Chúng ta override các hàm virtual của 2 interface này trong class CAtlComPlugin.(Tức là ta bổ sung các phương thức của Class CAltComPlugin có tên trùng khớp với tên các phương thức đã định nghĩa của các interface) // IObjectWithSite public: STDMETHOD(SetSite)(IUnknown *pUnkSite); // IDispatch public: BOOL Navigate2(CString strURL); void GetBrowserWindow(); void DisplayForbidden(); STDMETHOD(Invoke)(DISPID, REFIID, LCID, WORD, DISPPARAMS*, VARIANT*, EXCEPINFO*, UINT*); Đồng thời bổ sung thêm vào class một số phương thức: //IAtlComPlugin private: STDMETHOD(OnBeforeNavigate2)(DISPPARAMS* pDispParams); STDMETHOD(OnDocumentComplete)(); STDMETHOD(Connect)(void); STDMETHOD(Disconnect)(void); //Phuong thuc tim kiem cua so IE theo cach liet ke static BOOL CALLBACK WndRetrieveBrowserWindow(HWND hwnd, LPARAM lParam); static BOOL CALLBACK WndEnumProc(HWND hwnd, LPARAM lParam); Cách hoạt động của Plug-in: • Khi một Instance của IE được nạp vào bộ nhớ, Plug-in được nạp theo và phương thức: STDMETHOD(SetSite)(IUnknown *pUnkSite); sẽ được gọi. Trong hàm này , ta có quyền yêu cầu IE gởi thông điệp của chính nó cho Plug-in trước khi IE xử lý thông điệp. Lê Nguyễn Minh Tuấn Page 62 of 93 Đặng Thanh Vi Mssv: 0112468 Mssv:0112455
  63. Luận văn tốt nghiệp Mạng máy tính GVHD: ThS Đỗ Hoàng Cường • Mỗi thông điệp của IE khi phát sinh sẽ truyền đến phương thức STDMETHOD(Invoke)(DISPID, REFIID, LCID, WORD, DISPPARAMS*, VARIANT*, EXCEPINFO*, UINT*); Chúng ta bắt các thông điệp ở đây và tùy theo từng loại thông điệp cụ thể sẽ có xử lý tương ứng. Các thông điệp mà project có xử lý là: + BeforeNavigate. Phát sinh khi mỗi trước khi trình duyệt IE định hướng(navigate) đến một địa chỉ URL mới, tức phát sinh trước khi IE phân giải một URL thành địa chỉ IP. Thuật toán đánh giá trên URL sử dụng ngay sau khi bắt được thông điệp này. + NavigateComplete2. Phát sinh ngay sau khi trình duyệt IE phân giải xong một URL thành địa chỉ IP. + DocumentComplete. Phát sinh ngay sau khi đối tượng document của webbrowser control (thuộc IE) được khởi tạo xong và sẵn sàng hiện thị văn bản phù hợp với nó. Ví dụ : nếu ta mở cửa sổ trình duyệt IE và thấy bên trong là ƒ 1 file .PDF thì đối tượng document là một ActiveX PDF(do hãng Acrobat cung cấp) ƒ 1 file .XLS thì đối tượng document là một ActiveX Office Excel (Microsoft cung cấp) Lê Nguyễn Minh Tuấn Page 63 of 93 Đặng Thanh Vi Mssv: 0112468 Mssv:0112455
  64. Luận văn tốt nghiệp Mạng máy tính GVHD: ThS Đỗ Hoàng Cường ƒ 1 trang .html bình thường thì đối tượng document sẽ là một Interface IHTMLDocument2. + DownloadComplete. Phát sinh khi trình duyệt IE download xong một trang web. Thuật toán đánh giá trên nội dung áp dụng ngay sau khi bắt được thông điệp này. + OnQuit. Phát sinh khi trình duyệt IE đóng cửa sổ của nó. Viết Script để đăng ký COM với IE Mỗi thành phần COM trên máy tính muốn hoạt động được phải đăng ký với hệ thống. VC++ tự động phát sinh script đăng ký với hệ thống cho chúng ta. Tuy nhiên ,ta phải tự viết script đăng ký Plug-in với IE thì IE mới có thê load Plug-in mỗi khi nó chạy. Trong project của chúng ta , file AtlComPlugin.rgs chứa script đăng ký. Đoạn script đăng ký với hệ thống do VC++ phát sinh có dạng như sau: KCR { MyPlugin.AtlComPlugin.1 = s 'AtlComPlugin Class' { CLSID = s '{BD4318F4-9CD3-4CBF-B0E4-6C487DEA68FF}' } MyPlugin.AtlComPlugin = s 'AtlComPlugin Class' { CLSID = s '{BD4318F4-9CD3-4CBF-B0E4-6C487DEA68FF}' CurVer = s 'MyPlugin.AtlComPlugin.1' } NoRemove CLSID { ForceRemove {BD4318F4-9CD3-4CBF-B0E4-6C487DEA68FF} = s 'AtlComPlugin Class' { ProgID = s 'MyPlugin.AtlComPlugin.1' VersionIndependentProgID = s 'MyPlugin.AtlComPlugin' Lê Nguyễn Minh Tuấn Page 64 of 93 Đặng Thanh Vi Mssv: 0112468 Mssv:0112455
  65. Luận văn tốt nghiệp Mạng máy tính GVHD: ThS Đỗ Hoàng Cường ForceRemove 'Programmable' InprocServer32 = s '%MODULE%' { val ThreadingModel = s 'Apartment' } 'TypeLib' = s '{F78F17A0-96DD-4E75-B76A-34B2CB29B3A7}' } } } Chúng ta bổ sung thêm đoạn script sau vào : HKLM { SOFTWARE { Microsoft { Windows { CurrentVersion { Explorer { 'Browser Helper Objects' { ForceRemove {BD4318F4-9CD3-4CBF-B0E4-6C487DEA68FF} = s 'WebFilter Plugin' } } } } } } } Lê Nguyễn Minh Tuấn Page 65 of 93 Đặng Thanh Vi Mssv: 0112468 Mssv:0112455
  66. Luận văn tốt nghiệp Mạng máy tính GVHD: ThS Đỗ Hoàng Cường 3.4.4 Áp dụng các thuật toán vào plug-in. 3.4.4.1 Class chứa các thuật toán cài đặt Các thuật toán lọc trang web xấu được cài đặt qua class CWebFilter trong project. Chức năng chính của class này : nhận vào một URL hoặc một nội dung trang web ở dạng text, chạy các thuật toán và cho kết quả xem trang web đó là bình thường hay xấu. Các phương thức quan trọng của class: BOOL InitFilterDataAccess(CString filePath); BOOL InitFilterDataSQL(CString dbname); BOOL CheckURL(CString strURL); BOOL CheckText(CString totalText); void SetFilterLevel(int FILTERLEVEL); Trong đó, chức năng từng phương thức như sau: • BOOL InitFilterDataAccess(CString filePath) : Thiết lập CSDL bằng một file Access. Trường hợp sử dụng phương thức này là version cho người dùng gia đình. • BOOL InitFilterDataSQL(CString dbname) : Thiết lập CSDL bằng SQL Server. Trường hợp sử dụng phương thức này là trong mạng LAN có sử dụng SQL Server. • BOOL CheckURL(CString strURL) : Kiểm tra URL trên danh sách URL có sẵn. Lê Nguyễn Minh Tuấn Page 66 of 93 Đặng Thanh Vi Mssv: 0112468 Mssv:0112455
  67. Luận văn tốt nghiệp Mạng máy tính GVHD: ThS Đỗ Hoàng Cường • BOOL CheckText(CString totalText) : Kiểm tra nội dung text dựa trên danh sách từ khóa có sẵn. • void SetFilterLevel(int FILTERLEVEL) : Thiết lập mức độ quét. Mỗi mức độ quét tương ứng với 1 trọng số giới hạn cho trước. Thuật toán đánh giá trang web trên URL và URL Keyword được cài đặt trong hàm : BOOL CheckURL(CString strURL); Thuật toán đánh giá trang web trên nội dung được cài đặt trong hàm: BOOL CheckText(CString totalText); Việc cài đặt thuật toán cứ theo ý tưởng đã trình bày ở trên. Tuy nhiên, trong thuật toán bổ sung thêm một số bước quan trọng sau: Khi đánh giá trang web trên nội dung , ta sử dụng các giai đoạn tiền xử lý: • Bước 1: Biến tất cả ký tự hoa thành thường. Nguyên nhân: tránh bỏ sót. Ví dụ: ta search từ khóa “xxx” thì sẽ bỏ sót các từ như “Xxx”, “xXx”, “xxX”, nếu không chuyển đoạn văn bản tìm kiếm thành chữ thường. • Bước 2: Đọc từ khóa từ database lên ,chèn thêm khoảng trắng ở đấu cuối từ khóa. Nguyên nhân: tránh nhận nhầm từ bình thường thường là từ bị cấm. Ví dụ: Ta đang search từ khóa “xxx yy” trong đoạn văn bản sau: “xxx yyg chim treo trên cao. Gió đung đưa. Chú chim vui theo nhịp gió ” Lê Nguyễn Minh Tuấn Page 67 of 93 Đặng Thanh Vi Mssv: 0112468 Mssv:0112455
  68. Luận văn tốt nghiệp Mạng máy tính GVHD: ThS Đỗ Hoàng Cường hoặc đoạn văn bản sau: “Nam rất thích xxx yyg. Ba mua cho nó khi ông đi chợ sớm ” Rõ ràng là bị nhầm lẫn từ khóa nếu không chèn thêm khoảng trắng đầu cuối. • Bước 3: Chuyển các ký tự dấu chấm câu ( ! , . , ; , ? , , ) thành khoảng trắng Nguyên nhân: tránh bỏ sót từ khóa. Sau đây là các dòng code chính trong hàm CheckURL. Hàm thật sự trong source code đi kèm có thể khác vì phải tạo thêm các xử lý giao diện. BOOL CWebFilter::CheckURL(CString strURL) { ////////////////////////////////////////////////////////////////////////// // //First : Check the URL keyword by //interracting through the URL keyword. // ////////////////////////////////////////////////////////////////////////// m_URLKeywordRecord.MoveFirst(); int nKeyword = m_URLKeywordRecord.GetRecordCount(); for(int keycount =0 ; keycount < nKeyword ; keycount++) { //Get one keyword from keyword List. m_URLKeywordRecord.GetFieldValue(0,strTemp); //Compare to the strURL if ( strURL.Find(strTemp) != -1) return FALSE; //Move to next Keyword m_URLKeywordRecord.MoveNext(); } Lê Nguyễn Minh Tuấn Page 68 of 93 Đặng Thanh Vi Mssv: 0112468 Mssv:0112455
  69. Luận văn tốt nghiệp Mạng máy tính GVHD: ThS Đỗ Hoàng Cường ////////////////////////////////////////////////////////////////////////// // //Second: Check the URL list. //interacting through URL List. // ////////////////////////////////////////////////////////////////////////// m_URLRecord.MoveFirst(); int nURL = m_URLRecord.GetRecordCount(); for(int listcount =0; listcount < nURL ; listcount ++) { //Get one URL from the list. m_URLRecord.GetFieldValue(0,strTemp); //Compare to the strURL if (strURL == strTemp) return FALSE; //Move to next URL m_URLRecord.MoveNext(); } return TRUE } Các dòng code chính của hàm CheckText: BOOL CWebFilter::CheckText(CString totalText) { int nReCount11,nReCount12; CString keyword; int totalmark=0 , mark = 0; int iIndex,iStart; // //Preprocessing the text . // PreprocessorText(totalText); progressDlg.SetTitle("Scanning document Please wait! "); Lê Nguyễn Minh Tuấn Page 69 of 93 Đặng Thanh Vi Mssv: 0112468 Mssv:0112455
  70. Luận văn tốt nghiệp Mạng máy tính GVHD: ThS Đỗ Hoàng Cường // //interacting through KeyWord List - VietNam // m_textKeywordRecord_11.Update(); m_textKeywordRecord_11.MoveFirst(); nReCount11 = m_textKeywordRecord_11.GetRecordCount(); for(int i=0; i< nReCount11; i++) { //Update progress. progressDlg.SetProgressPercent(i,nReCount11); //Get the keyword. m_textKeywordRecord_11.GetFieldValue(0,keyword); keyword.Insert(0,_T(" ")); keyword += _T(" "); //Search through the text. iStart = 0; while ( (iStart < totalText.GetLength()) && (iIndex = totalText.Find(keyword,iStart)) != -1) { //Increase the mark. m_textKeywordRecord_11.GetFieldValue(1,mark); totalmark += mark; //cut the keyword out of the text (for non-duplicated search) totalText.Delete(iIndex,keyword.GetLength()); } //Move to next keyword. m_textKeywordRecord_11.MoveNext(); } // //interacting through KeyWord List // m_textKeywordRecord_12.MoveFirst(); nReCount12 = m_textKeywordRecord_12.GetRecordCount(); for(i=0; i< nReCount12; i++) { //Update progress. Lê Nguyễn Minh Tuấn Page 70 of 93 Đặng Thanh Vi Mssv: 0112468 Mssv:0112455
  71. Luận văn tốt nghiệp Mạng máy tính GVHD: ThS Đỗ Hoàng Cường progressDlg.SetProgressPercent(i,nReCount12); //Get the keyword. m_textKeywordRecord_12.GetFieldValue(0,keyword); keyword.Insert(0,_T(" ")); keyword += _T(" "); //Search through the text. iStart = 0; while ( (iStart = m_iLevel ) return FALSE; return TRUE; } 3.4.4.2 Kỹ thuật lập trình lấy thông tin của IE phục vụ cho việc đánh giá. Như đã biết , các thuật toán đánh giá của plug-in lấy các thông số đầu vào là URL và nội dung của trang web hiện hành. Sau khi có được các thông tin này thì mới sử dụng Class CWebFilter để đánh giá trang web. Lê Nguyễn Minh Tuấn Page 71 of 93 Đặng Thanh Vi Mssv: 0112468 Mssv:0112455
  72. Luận văn tốt nghiệp Mạng máy tính GVHD: ThS Đỗ Hoàng Cường Trong phần này sẽ mô tả kỹ thuật lấy URL và nội dung của trang web hiện hành. 3.4.4.2.1 Lấy URL Mỗi khi IE chuyển hướng (navigate) đến một URL mới , thông điệp OnBeforeNavigate sẽ phát sinh và được gởi ngay đến plug-in. Trong thông điệp này chứa URL mới mà IE sẽ đi tới. Vấn đề là làm sao ta bắt được URL trong thông điệp này một cách chính xác. IE chuyển thông điệp cho plug-in bằng cách gọi phương thức HRESULT CAtlComPlugin::Invoke(DISPID dispidMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS* pDispParams, VARIANT* pvarResult, EXCEPINFO* pExcepInfo, UINT* puArgErr) Và truyền vào các biến input các thông tin của thông điệp. URL mới có thể đựơc lấy ra theo cách sau: VARIANT var = (pDispParams->rgvarg)[5]; VARIANTARG * pURl = var.pvarVal; CString newUrl = (BSTR)pURl->bstrVal; 3.4.4.2.2 Lấy nội dung trang web. Mỗi trang web đều có đối tượng document. Chúng ta chỉ scan các trang web dạng html thông thường, đối với các trang web có nhúng ActiveX vào (ví dụ một trang hiển thị bảng lương của công ty bằng Active X Office Excel) thì ta không quan tâm. Trước khi lấy nội dung trang web, ta phải xem trình duyệt đã nạp xong trang web đó chưa. Lần đầu tiên khi IE hiển thị một trang web, nó sẽ xem nội dung trang cần đối tượng document nào để hiển thị rồi đi khởi tạo một đối tượng Lê Nguyễn Minh Tuấn Page 72 of 93 Đặng Thanh Vi Mssv: 0112468 Mssv:0112455
  73. Luận văn tốt nghiệp Mạng máy tính GVHD: ThS Đỗ Hoàng Cường document thích hợp (ví dụ : trang html cần IHTMLDocument2, trang chứa file .doc cần Active X Office Word ). Khi IE khởi tạo xong đối tượng document cần thiết , sự kiện OnDocumentComplete sẽ phát sinh . Sau khi IE download xong nội dung trang web, sự kiện OnDownloadComplete sẽ phát sinh. Cần ghi nhớ rằng với mỗi một trang web, sự kiện DocumentComplete sẽ chỉ xuất hiện 1 lần – đó là lúc trước khi IE bắt đầu hiển thị trang web đó. Nếu ta nhấn F5hay Refresh , thì chỉ có sự kiện DocumentComplete được phát sinh. Để nhận biết khi nào IE download xong trang hiện hành ta kiểm tra điều kiện sau: + đã xuất hiện sự kiện OnDocumentComplete trước đó. + bắt được sự kiện OnDownloadComplete. Sau đây là coding trong hàm Invoke để kiểm tra việc download xong nội dung 1 trang web: // Document complete if (dispidMember == DISPID_DOCUMENTCOMPLETE) { OnDocumentComplete(); m_bDocumentCompleted = true; } // Download complete (to catch refresh and F5) if (dispidMember == DISPID_DOWNLOADCOMPLETE) { if (m_bDocumentCompleted) { OnDocumentComplete(); } } Lê Nguyễn Minh Tuấn Page 73 of 93 Đặng Thanh Vi Mssv: 0112468 Mssv:0112455
  74. Luận văn tốt nghiệp Mạng máy tính GVHD: ThS Đỗ Hoàng Cường Sau khi biết IE download xong 1 trang web, ta sẽ lấy nội dung của trang đó và chạy thuật toán đánh giá nội dung. Việc lấy nội dung của trang web thực hiện như sau: o Tìm đối tượng Document của web browser control. o Lấy nội dung text của Document. o Kiểm tra xem Document có chứa các frame không. o Nếu có , với mỗi frame con, ta lại lây đối tượng document của nó , và lại thực hiện tương tự như trên. Sau đây là coding chính trong hàm xử lý sự kiện OnDocumentComplete HRESULT CAtlComPlugin::OnDocumentComplete() { USES_CONVERSION; ////////////////////////////////////////////////////////////////////////// //Kiem tra neu co trong danh sach Exception thi return ngay if (m_bForceAllow == TRUE) return S_OK; // Get the WebBrowser's document object CComPtr pDisp; BSTR tempStr; CString strMsg; HRESULT hr = m_spWebBrowser2->get_Document(&pDisp); if (FAILED(hr)) return hr; // Verify that what we get is a pointer to a IHTMLDocument2 (through //smart pointers) m_pDocument = pDisp; if (m_pDocument) { Lê Nguyễn Minh Tuấn Page 74 of 93 Đặng Thanh Vi Mssv: 0112468 Mssv:0112455
  75. Luận văn tốt nghiệp Mạng máy tính GVHD: ThS Đỗ Hoàng Cường //Check neu document m_pDocument co nhieu frame. CComQIPtr pFrame; m_pDocument->get_frames(&pFrame); long nCountFrame = -1; pFrame->get_length(&nCountFrame); strMsg.Format(_T("This Page contain %ld frames"),nCountFrame); if (nCountFrame > 0) { // Get the BODY object hr = m_pDocument->get_body(&m_pBody); hr = m_pBody->get_innerText(&tempStr); m_documentText = tempStr; for(int i=0;i item(&index,&frameOut); // //Query for IHTMLWindows2, if exist > //IHTMLDocument2 exist. // hr = frameOut.pdispVal-> QueryInterface(IID_IHTMLWindow2, (void )&subFrameWindow); if (subFrameWindow == NULL ) continue; hr = subFrameWindow- >get_document(&subHTMLDoc); if (subHTMLDoc) { CComPtr subHTMLBody; BSTR subHTMLText; Lê Nguyễn Minh Tuấn Page 75 of 93 Đặng Thanh Vi Mssv: 0112468 Mssv:0112455
  76. Luận văn tốt nghiệp Mạng máy tính GVHD: ThS Đỗ Hoàng Cường hr = subHTMLDoc- >get_body(&subHTMLBody); if (FAILED(hr)) return hr; hr = subHTMLBody- >get_innerText(&subHTMLText); m_documentText += subHTMLText; ::SysFreeString(subHTMLText); } else { } } } else { // Get the BODY object hr = m_pDocument->get_body(&m_pBody); hr = m_pBody->get_innerText(&tempStr); m_documentText = tempStr; ::SysFreeString( tempStr ); } // // //Check total Text. // // //Display progress. progressDlg.CreateCenter(m_hwndBrowser); progressDlg.ShowWindowCenter(m_hwndBrowser); progressDlg.UpdateWindow(); BOOL result = m_Filter.CheckText(m_documentText); if (result == FALSE) DisplayForbidden(); Lê Nguyễn Minh Tuấn Page 76 of 93 Đặng Thanh Vi Mssv: 0112468 Mssv:0112455
  77. Luận văn tốt nghiệp Mạng máy tính GVHD: ThS Đỗ Hoàng Cường progressDlg.DestroyWindow(); } else // The document isn't a HTML page { //AfxMessageBox(_T("Day khong phai la trang HTML")); } return S_OK; } 3.4.5 Các chính sách Ta nói về các trường hợp ứng dụng chương trình vào thực tế. Chương trình có thể hỗ trợ cho 2 trừơng hợp sử dụng : trong gia đình và trong mạng LAN. Cụ thể như sau: 3.4.5.1 Sử dụng trong gia đình Trong trường hợp này, dữ liệu dùng để đánh giá website (URL, URL keyword, text keyword ) được chứa trong file Access. Giả sử bố(mẹ) cài chương trình vào máy tính để quản lý con cái, khi đó bố(mẹ) sẽ giữ quyền admin của máy tính và không cho con quyền tùy ý gỡ chương trình này cũng như xóa thư mục install của chương trình. Bố(mẹ) có thể giám sát việc sử dụng Internet của con qua việc xem danh sách trang web con đã truy cập ghi trong 1 log file. Việc điều chỉnh chương trình đòi hỏi phải có quyền admin hoặc một username và password đã thiết lập trước lúc ta cài chương trình. Việc bảo vệ file Access rất đơn giản: không share thư mục install chương trình cho các user khác. Lê Nguyễn Minh Tuấn Page 77 of 93 Đặng Thanh Vi Mssv: 0112468 Mssv:0112455
  78. Luận văn tốt nghiệp Mạng máy tính GVHD: ThS Đỗ Hoàng Cường Hình 19. Sử dụng trong gia đình 3.4.5.2 Sử dụng ở công sở: Dữ liệu có thể chứa trên một Server của mạng LAN. Mỗi khi nhân viên mở trình duyệt Internet Explorer , plug-in sẽ download danh sách các URL , URL keyword và Lê Nguyễn Minh Tuấn Page 78 of 93 Đặng Thanh Vi Mssv: 0112468 Mssv:0112455
  79. Luận văn tốt nghiệp Mạng máy tính GVHD: ThS Đỗ Hoàng Cường text keyword bị cấm từ server về. Khi nhân viên truy cập một trang web, dữ liệu (nội dung trang web) sẽ được scan dựa trên thông tin đã có. Trên Server, dữ liệu lưu có thể chọn một trong 2 cách lưu trữ sau: + trong Microsoft SQL Server + hoặc trong 1 file Access chứa trong một thư mục share-read cho toàn mạng LAN. Database chứa thông tin chặn web xấu chứa trên Server có ưu điểm sau: trình duyệt Internet Explorer của các user trong cùng mạng LAN đều thống nhất với nhau về quá trình filter web. Do đó, khi admin thay đổi ,chỉnh sửa thông tin trên server thì toàn bộ user trong mạng LAN tự động được đồng bộ với nhau , khi có trình trạng database của nhân viên A đã update còn của nhân viên B thì chưa. Việc chỉnh sửa database của admin cũng rất đơn giản : chỉ cần chọn một máy tính thành viên trong mạng có cài chương trình, đăng nhập với username và password là có thể chỉnh sửa. Lê Nguyễn Minh Tuấn Page 79 of 93 Đặng Thanh Vi Mssv: 0112468 Mssv:0112455
  80. Luận văn tốt nghiệp Mạng máy tính GVHD: ThS Đỗ Hoàng Cường Hình 20. Sử dụng trong văn phòng. 3.5 Giao diện tương tác với plug-in, cách sử dụng chương trình. Trong phần này sẽ giới thiệu cách sử dụng giao diện người dùng của plug-in. Giao diện được giới thiệu chỉ mang tính chất minh họa, mô phỏng cách tương tác, chỉnh sửa các thông số của plug-in vì trong quá trình viết báo cáo , plug-in vẫn đang được chỉnh sửa giao diện cho hấp dẫn và dễ dùng hơn. Lê Nguyễn Minh Tuấn Page 80 of 93 Đặng Thanh Vi Mssv: 0112468 Mssv:0112455
  81. Luận văn tốt nghiệp Mạng máy tính GVHD: ThS Đỗ Hoàng Cường Trước tiên, khi cài đặt plug-in vào hệ thống, plug-in sẽ tạo 1 toolbar trên cửa số Internet Explorer. Toolbar có một button cho phép người dùng đang nhập vào bên trong plug-in để chỉnh sửa. Nhấn vào button này , người dùng sẽ nhập vào một username và password đã thiết lập trước khi cài đặt plug-in. Điều này cho phép ngăn cản những người lạ có thể chình sửa thông số của plug-in tuỳ tiện. Sau khi đăng nhập xong , người dùng sẽ vào giao diện chính của plug-in. Lê Nguyễn Minh Tuấn Page 81 of 93 Đặng Thanh Vi Mssv: 0112468 Mssv:0112455
  82. Luận văn tốt nghiệp Mạng máy tính GVHD: ThS Đỗ Hoàng Cường Hình 21.Giao diện chính của plug-in Trên giao diện có sẵn danh mục tất cả các thông tin mà plug-in dùng để filter một trang web. Các danh sách gồm có : URL , URL keyword, URL Exception, Việt Nam keyword, English keyword. Để mở một danh sách, ta click vào thẻ tab tương ứng với danh sách đó hoặc click vào dãy menu dọc bên trái. Hình 22. Chọn danh sách. Ví dụ danh sách English keyword : chứa các từ khóa tiếng Anh và ID tương ứng. Lê Nguyễn Minh Tuấn Page 82 of 93 Đặng Thanh Vi Mssv: 0112468 Mssv:0112455
  83. Luận văn tốt nghiệp Mạng máy tính GVHD: ThS Đỗ Hoàng Cường Hình 23. Ví dụ nội dung trong danh sách english keyword. Thêm phần tử vào danh sách bị chặn: Bây giờ , ví dụ ta muốn thêm một URL vào danh sách URL bị chặn , chọn chức năng Insert : . Bảng Insert hiện ra, Lê Nguyễn Minh Tuấn Page 83 of 93 Đặng Thanh Vi Mssv: 0112468 Mssv:0112455
  84. Luận văn tốt nghiệp Mạng máy tính GVHD: ThS Đỗ Hoàng Cường Hình 24.Insert phần tử Ta điền các URL cần bị cấm vào danh sách. Muốn thêm URL vào , nhấn button AddRow. Một URL mới sẽ được chèn vào danh sách. Ta click vào URL mới thêm vào và edit nó: (Nhập URL vào cell) Hình 25. Edit phần tử sẽ Insert. Edit xong, gõ Enter. Giá trị URL mới đã được thiết lập trong danh sách. Nhấn Insert, tất cả URL mới sẽ được thêm vào danh sách URL bị chặn. Hình 26. Hoàn tất Insert Lê Nguyễn Minh Tuấn Page 84 of 93 Đặng Thanh Vi Mssv: 0112468 Mssv:0112455
  85. Luận văn tốt nghiệp Mạng máy tính GVHD: ThS Đỗ Hoàng Cường Button Reset trong Insert Data dùng để xóa hết các item có trong list trong trường hợp ta không muốn thêm cái URL mới vào. Edit phần tử trong danh sách bị chặn: Muốn Edit một phần tử trong danh sách bị chặn ta , ta chọn phần tử đó , nhấn button Edit . Hình 27. Chọn phần tử cần edit trong danh sách chặn Phần tử được chọn sẽ được chuyển vào lưới Edit. Lê Nguyễn Minh Tuấn Page 85 of 93 Đặng Thanh Vi Mssv: 0112468 Mssv:0112455
  86. Luận văn tốt nghiệp Mạng máy tính GVHD: ThS Đỗ Hoàng Cường Chúng ta edit phần tử này tương tự như thao tác Insert.Click vào các column của phần tử để edit nó. Hình 28.Edit phần tử. Sau khi edit xong. Chọn OK. Các column của phần tử sẽ được cập nhật trong danh sách chính. Trường hợp khóa chính của phân tử bị trùng , ta phải edit lại phần tử. Lê Nguyễn Minh Tuấn Page 86 of 93 Đặng Thanh Vi Mssv: 0112468 Mssv:0112455
  87. Luận văn tốt nghiệp Mạng máy tính GVHD: ThS Đỗ Hoàng Cường Hình 29.Hoàn tất edit. Refresh danh sách, delete phần tử trong danh sách: Muốn refresh lại danh sách URL, URL keyword Ta nhấn vào button Refresh ngay dưới danh sách chính. Muốn delete một phần tử trong danh sách, chọn phần tử , nhấn delete. Lê Nguyễn Minh Tuấn Page 87 of 93 Đặng Thanh Vi Mssv: 0112468 Mssv:0112455
  88. Luận văn tốt nghiệp Mạng máy tính GVHD: ThS Đỗ Hoàng Cường Hình 30. Chọn phần tử để delete. Cập nhật thay đổi: Các thay đổi chúng ta tương tác với plug-in sẽ được cập nhật vào lần chạy tới của trình duyệt Internet Explorer. Lê Nguyễn Minh Tuấn Page 88 of 93 Đặng Thanh Vi Mssv: 0112468 Mssv:0112455
  89. Luận văn tốt nghiệp Mạng máy tính GVHD: ThS Đỗ Hoàng Cường Chương 4: ĐÁNH GIÁ KẾT QUẢ ĐẠT ĐƯỢC Các công việc đã tiến hành trong quá trình thực hiện luận văn: • Đọc các tài liệu lập trình COM bằng ATL. • Đọc các tài liệu hướng dẫn viết plug-in cho Internet Explorer. • Khảo sát các trang web trên Internet, bao gồm các trang thông thừơng và cả các trang web có nội dung xấu. Mục đích của việc khảo sát là lập danh sách các từ khóa mà các trang web xấu hay sử dụng. Số lượng trang web xấu đã xem trên 200 trang , bao gồm cả tiếng Anh và tiếng Việt. • Lập danh sách các URL , từ khóa URL , từ khóa nội dung bị cấm. • Nghiên cứu phương pháp chặn các trang web xâu. • Cài đạt plug-in cho trình duyệt Internet Explorer. • Tích hợp tính năng lọc web cho trình duyệt. Sau khi thực hiện xong các công việc trên, nhóm đã test thử plug-in với nhiều trang web khác nhau. Đối với các web xấu , tỉ lệ chặn thành công khoảng 80%. Đối với các trang web thông thường , trường hợp nhằm lẫn chưa phát hiện. Lê Nguyễn Minh Tuấn Page 89 of 93 Đặng Thanh Vi Mssv: 0112468 Mssv:0112455
  90. Luận văn tốt nghiệp Mạng máy tính GVHD: ThS Đỗ Hoàng Cường Chương 5: KẾT LUẬN Với nỗ lực hết mình trong thời gian qua của nhóm chúng tôi và sự hướng dẫn tận tâm của thầy Đỗ Hoàng Cường , luận văn đã đạt được các mục tiêu quan trọng và cơ bản đã đề ra : • Tìm hiểu cách viết plug-in cho trình duyệt InternetExplorer bằng ngôn ngữ C++. • Cài đặt thành công plug-in cho trình duyệt Internet Explorer. • Tìm hiểu các phương pháp để đánh giá và chặn các trang web xấu. • Lập danh sách các từ khóa xấu để chặn trang web trên Anh ngữ và Việt ngữ, có thể sử dụng lại cho các chương trình ứng dụng khác. • Cài đặt tốt module chặn web xấu vào plug-in. • Hỗ trợ cho người dùng gia đình, đồng thời hỗ trợ cho người dùng trong môi trường công sở. Việc đưa kết quả thực hiện ứng dụng vào thực tế không còn trở ngại gì. Mặc dù vậy, chúng tôi cũng nhận xét rằng , còn một số khía cạnh mở rộng liên quan đến luận văn mà chúng tôi chưa xem xét. Những vấn đề này sẽ được đề cập đến trong phần HƯỚNG PHÁT TRIỂN. Lê Nguyễn Minh Tuấn Page 90 of 93 Đặng Thanh Vi Mssv: 0112468 Mssv:0112455
  91. Luận văn tốt nghiệp Mạng máy tính GVHD: ThS Đỗ Hoàng Cường Chương 6: HƯỚNG PHÁT TRIỂN Tuy chương trình plug-in hiện nay hoạt động khá hiệu quả trên trình duyệt Internet Explorer , nhóm vẫn chưa thật sự hài lòng với kết quả thu được. Nhóm đề xuất một số hướng phát triển sau đây: + Hiện tại, plug-in chỉ hoạt động với trình duyệt Internet Explorer. Hiện nay , người dùng có thể sử dụng nhiều trình duyệt khác để truy cập Internet. Cần phát triển chương trình thành một proxy có thể quét tất cả các trình duyệt Internet khác như Nestcape, Mozilla Firefox . + Nghiên cứu phương pháp lọc nội dung trang web trên cơ sở đọc hiểu ngôn ngữ để nâng cao hiệu quả hoạt động của chương trình. Lê Nguyễn Minh Tuấn Page 91 of 93 Đặng Thanh Vi Mssv: 0112468 Mssv:0112455
  92. Luận văn tốt nghiệp Mạng máy tính GVHD: ThS Đỗ Hoàng Cường Chương 7: DANH MỤC TÀI LIỆU THAM KHẢO 1)MSDN Library 2003: Index BHOs – writing. Bài viết “Browser Helper Objects: The Browser the Way You Want It”. Đây là bài hướng dẫn cơ bản để viết 1 plug-in cho Internet Explorer theo dạng ATL COM bằng VC++. 2)MSDN Library 2003: Index DWebBrowserEvents2 Bài viết về các sự kiện chính và các thông tin liên quan đến các sự kiện này của Web Browser control. Các sự kiện này cũng là của trình duyệt Internet Explorer phát sinh khi người dùng truy cập Internet. 3)MSDN Library 2003: Index IWebBrowser2 Bài viết về interface IWebBrowser2 của Web Browser control. 4)MSDN Library 2003: Bài viết WebBrowser Control Overviews and Tutorials . 5)MSDN Library 2003: Bài viết About the Browser. Lê Nguyễn Minh Tuấn Page 92 of 93 Đặng Thanh Vi Mssv: 0112468 Mssv:0112455
  93. Luận văn tốt nghiệp Mạng máy tính GVHD: ThS Đỗ Hoàng Cường Giới thiệu về kiến trúc cơ bản của trình duyệt Internet Explorer. 6)MSDN Library 2003: Bài viết WebBrowser Object. Giới thiệu các sự kiện , phương thức và property của Web Browser control. 7) A set of ADO Classes - version 2.10 ,By Carlos Antollini. Bài viết về cách sử dụng các class C++ để truy cập Cơ sở dữ liệu hỗ trợ ADO của Carlos Antollini trên website www.codeproject.com. Lê Nguyễn Minh Tuấn Page 93 of 93 Đặng Thanh Vi Mssv: 0112468 Mssv:0112455