„ ỨNG DỤNG MÃ NGUỒN MỞ DRUPAL XÂY DỰNG WEBSITE QUẢN LÝ DÀNH CHO BỆNH VIỆN

126 3 0
„ ỨNG DỤNG MÃ NGUỒN MỞ DRUPAL XÂY DỰNG WEBSITE QUẢN LÝ DÀNH CHO BỆNH VIỆN

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

TỔNG LIÊN ĐOÀN LAO ĐỘNG VIỆT NAM TRƯỜNG ĐẠI HỌC TÔN ĐỨC THẮNG KHOA ĐIỆN ĐIỆN TỬ LUẬN VĂN TỐT NGHIỆP ỨNG DỤNG MÃ NGUỒN MỞ DRUPAL XÂY DỰNG WEBSITE QUẢN LÝ DÀNH CHO BỆNH VIỆN Giảng viên hướng dẫn: Th.S NGUYỄN DƯƠNG THẾ NHÂN Sinh viên thực hiện: VÕ LÂM THƠNG MSSV : 810034D Lớp : 08DD2N Khố : 08 TP Hồ Chí Minh, tháng năm 2009 Ứng dụng mã nguồn mở Drupal xây dựng website quản lý bệnh viện GVHD: Th.S Nguyễn Dương Thế Nhân LỜI CẢM ƠN Em xin gửi lời cảm ơn chân thành sâu sắc đến thầy Nguyễn Dương Thế Nhân nhiệt tình hướng dẫn, cung cấp nhiều tư liệu q giá để chúng em hồn thành luận văn Em xin cảm ơn thầy cô khoa Điện tử viễn thông cung cấp cho chúng em kiến thức cần thiết suốt năm đại học, giúp chúng em có đủ kiến thức để hồn thành luận văn làm tảng cho công việc sau Trong trình làm luận văn, có nhiều cố gắng luận văn khơng khỏi tránh thiếu sót Kính mong thầy khoa bạn tận tình bảo góp ý kiến để luận văn hoàn thiện Em xin chân thành cảm ơn quý thầy cô Trang Ứng dụng mã nguồn mở Drupal xây dựng website quản lý bệnh viện GVHD: Th.S Nguyễn Dương Thế Nhân NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN TPHCM, Tháng năm 2009 Giáo viên hướng dẫn Trang Ứng dụng mã nguồn mở Drupal xây dựng website quản lý bệnh viện GVHD: Th.S Nguyễn Dương Thế Nhân NHẬN XÉT CỦA GIÁO VIÊN PHẢN BIỆN TPHCM, Tháng năm 2009 Giáo viên phản biện Trang Ứng dụng mã nguồn mở Drupal xây dựng website quản lý bệnh viện GVHD: Th.S Nguyễn Dương Thế Nhân MỤC LỤC LỜI CẢM ƠN MỤC LỤC DANH MỤC HÌNH DANH MỤC BẢNG BIỂU 10 LỜI MỞ ĐẦU 11 CHƯƠNG 1: HẠ TẦNG DỊCH VỤ WEB SERVER 12 1.1.Giao thức ip: 12 1.1.1.Tổng quát: 12 1.1.2.Các giao thức mạng ip: 12 1.1.3.Các bước hoạt động ip: 13 1.1.4.Giao thức điều khiển truyền liệu tcp 13 1.2.Tổng quan địa ip: 17 1.3.Các lớp địa chỉ: 19 1.3.1.Lớp a: 19 1.3.2.Lớp b: 20 1.3.3.Lớp c: 20 1.3.4.Lớp d e: 21 1.4.Các dịch vụ cho máy chủ webserver 21 1.4.1.Hệ điều hành centos 21 1.4.2.Dịch vụ máy chủ web apache 21 1.4.3.Cơ sở liệu mysql 22 1.4.3.1.Giới thiệu 22 1.4.3.2.Tổng quan mysql 23 1.4.3.3.Các mệnh đề truy xuất liệu 27 1.4.3.4.Sao chép sở liệu (replication) 30 Trang Ứng dụng mã nguồn mở Drupal xây dựng website quản lý bệnh viện GVHD: Th.S Nguyễn Dương Thế Nhân 1.5.Ngơn ngữ lập trình php 35 1.5.1.Giới thiệu 35 1.5.2.Kịch (script) 36 1.5.3.Cú pháp phương thức php 39 1.5.4.Câu lệnh điều kiện toán tử 44 1.6.Mơ hình mạng 46 CHƯƠNG 2: BẢO MẬT DỊCH VỤ WEB 49 2.1.Giới thiệu 49 2.2.Các phương pháp công phổ biến giải pháp phòng thủ 50 2.2.1.Lỗ hỏng 1: khai thác thông tin máy chủ webserver 50 2.2.2.Lỗ hỏng 2: công trực diện sử dụng phương pháp sql injection 57 2.2.3.Lỗ hỏng 3: công cục (local hack) 65 CHƯƠNG 3: PHÂN TÍCH PHƯƠNG ÁN LÀM VIỆC 70 3.1.Các yêu cầu: 70 3.1.1.Yêu cầu chức 70 3.1.2.Yêu cầu nghiệp vụ 70 3.2.Phân tích: 70 3.2.1.Bản đặc tả website: 70 3.2.2.Sơ đồ usecase: 72 3.2.3.Phân tích usecase: 73 3.2.3.1.Quản lý tin tức: 73 3.2.3.2.Quản lý thông tin y-bác sĩ: 74 3.2.3.3.Đăng ký khám bệnh: 75 3.2.3.4.Khám bệnh 77 3.2.3.5.Quản lý tài khoản: 79 3.2.3.6.Xem hồ sơ bệnh án: 81 3.2.3.7.Quản lý bệnh nhân: 82 3.2.3.8.Xem thông tin phản hồi: 84 3.2.3.9.Trao đổi với y-bác sĩ (bệnh nhân): 85 Trang Ứng dụng mã nguồn mở Drupal xây dựng website quản lý bệnh viện GVHD: Th.S Nguyễn Dương Thế Nhân 3.2.3.10.Xem lịch trực: 86 3.2.3.11.Đăng nhập: 87 3.2.3.12.Quản lý sở liệu: 88 3.2.3.13.Quản lý toàn tài khoản: 90 3.2.3.14.Hệ thống: 91 CHƯƠNG 4: LẬP TRÌNH DRUPAL 92 4.1.Giới thiệu drupal 92 4.1.1.Drupal gì? 92 4.1.2.Lịch sử hình thành phát triển drupal 92 4.1.3.Các tính hệ thống cms nói chung 93 4.1.4.Ưu điểm drupal 93 4.2.Các thành phần drupal 94 4.2.1.Kỹ thuật phân tầng (technology stack) 94 4.2.2.Nhân (core) 94 4.2.3.Giao diện quản trị (administrative interface) 95 4.2.4.Modules (các module) 96 4.2.5.Hooks 97 4.2.6.Themes (các theme – giao diện) 97 4.2.7.Nodes (các node) 98 4.2.8.Blocks 98 4.3.Lập trình module drupal 100 4.4.Một số hình ảnh minh họa trang web 113 TÀI LIỆU THAM KHẢO 125   Trang Ứng dụng mã nguồn mở Drupal xây dựng website quản lý bệnh viện GVHD: Th.S Nguyễn Dương Thế Nhân DANH MỤC HÌNH hình 1.1: cổng truy nhập dịch vụ tcp 144 hình 1.2: dạng thức segment tcp 166 hình 1.3: mô tả lớp a 199 hình 1.4: mơ tả lớp b 20 hình 1.5: mơ tả lớp c 20 hình 1.6: kết nối với csdl dòng lệnh 233 hình 1.7: sử dụng câu lệnh use 233 hình 1.8: sử dụng câu lệnh show databases 244 hình 1.9: sử dụng câu lệnh show tables 244 hình 1.10: sử dụng câu lệnh create database 244 hình 1.11: sử dụng câu lệnh drop database 255 hình 1.12: sử dụng câu lệnh show create database 255 hình 1.13: mơ hình master-slave: 31 hình 1.14: xem tình trạng mysql master 322 hình 1.15: cấu hình master slave server 322 hình 1.16: mơ hình master-master 333 hình 1.17: trình thông dịch trang php 366 hình 1.18: kết trả trình duyệt 377 hình 1.19: kết trả trình duyệt 399 hình 1.20: mơ hình mạng trường hợp bệnh viện có triển khai sở hạ tầng mạng 477 hình 1.21: mơ hình mạng trường hợp thuê nhà cung cấp dịch vụ hosting 488 hình 2.1: bước cơng webserver 50 hình 2.2: add-on server thể thông tin máy chủ 50 hình 2.3: thơng tin lỗi máy chủ chạy dịch vụ web apache 51 hình 2.4: thơng tin lỗi máy chủ chạy dịch vụ web iis 51 hình 2.5: tùy chỉnh thơng tin file ap_release.h 522 hình 2.6: chế hoạt động modsecurity 533 Trang Ứng dụng mã nguồn mở Drupal xây dựng website quản lý bệnh viện GVHD: Th.S Nguyễn Dương Thế Nhân hình 2.7: kiểm tra kết 555 hình 2.8: sửa đường dẫn file httpd.conf 555 hình 2.9: thông báo lỗi 404 not found thay trang khác 566 hình 2.10: sửa file htaccess 577 hình 2.11: thơng báo lỗi 404 not found thay trang khác 577 hình 2.12: bước thực cơng sql injection 588 hình 2.13: lỗi trả trang web bị sql injection 598 hình 2.14: số trường tìm 10 598 hình 2.15: bảng khai thác 60 hình 2.16: cột khai thác 60 hình 2.17: kết khai thác 61 hình 2.18: file index.php 622 hình 2.19: file new.php bị lỗi sql injection 622 hình 2.20: file new.php sửa lỗi sql injection 633 hình 2.21: mơ hình tường lửa greensql 644 hình 2.22: kết trả khai thác lỗi sql injection sau tích hợp tường lửa modsecurity 655 hình 2.23: công cục 666 hình 2.25: thực bypass tập tin index.php đường dẫn /home/yhoc/ 677 hình 2.26: thông tin kết nối sở liệu www.yhoc.com 688 hình 2.27: kết nối vào sở liệu www.yhoc.com 688 hình 3.1: sơ đồ usecase 722 hình 3.2: lưu đồ quản lý tin tức 733 hình 3.3: lưu đồ quản lý thông tin y-bác sĩ 744 hình 3.4: lưu đồ đăng ký khám bệnh 755 hình 3.5: lưu đồ tạo hồ sơ khám bệnh 777 hình 3.6: lưu đồ quản lý tài khoản 799 hình 3.7: lưu đồ trang xem hồ sơ bệnh án 81 hình 3.8: lưu đồ quản lý bệnh nhân 822 Trang Ứng dụng mã nguồn mở Drupal xây dựng website quản lý bệnh viện GVHD: Th.S Nguyễn Dương Thế Nhân hình 3.9: lưu đồ xem thông tin phản hồi 844 hình 3.10: lưu đồ trao đổi thông tin bác sĩ bệnh nhân 855 hình 3.11: lưu đồ xem lịch trực 866 hình 3.12: lưu đồ đăng nhập vào website 877 hình 3.13: lưu đồ quản lý csdl 899 hình 3.14: lưu đồ quản lý tài khoản 90 hình 4.1: kỹ thuật phân tầng 944 hình 4.2: tổng quan nhân drupal 955 hình 4.3: cách xử lý module 966 hình 4.4: tương tác giao diện tên_module.info 100 hình 4.5: tương tác với sở liệu tên_module.install 1022 hình 4.6: tương tác giao diện hook menu file tên_module.module 1044 hình 4.7: tương tác giao diện hook perm file tên_module.module 1055 hình 4.8: tương tác giao diện chức page call file tên_module.module 1066 hình 4.9: tương tác giao diện hook form file tên_module.module 1088 hình 4.10: tương tác giao diện hook form_submit file tên_module.module 11010 hình 4.11: tương tác giao diện hook form_delete file tên_module.module 1122 hình 4.12: tương tác giao diện hook form_delete file tên_module.module 1133 hình 4.13: trang chủ website 1144 hinh 4.14: trang admin web tạo hồ sơ cho bác sĩ 1155 hình 4.15: trang bệnh nhân xem lịch trực bệnh viện 1166 hình 4.16: trang bệnh nhân đăng ký khám bệnh 1177 hình 4.17: trang bác sĩ xem lịch khám 1188 hình 4.18: trang admin web tạo hồ sơ cho bệnh nhân 1199 hình 4.19: trang bác sĩ quản lý bệnh nhân 12020 Trang Ứng dụng mã nguồn mở Drupal xây dựng website quản lý bệnh viện GVHD: Th.S Nguyễn Dương Thế Nhân $ten = db_result(db_query("SELECT ten FROM khoa WHERE kid = %d",$num)); $output = "

Bạn muốn xóa $ten khỏi danh sách khoa ?

"; $output = '

Lưu ý liệu xóa khơng phục hồi lại được

'; $_SESSION['bqt']['del_khoa'] = $num; $output = drupal_get_form('khoa_delete_form'); } return $output; } function khoa_delete_form() { if(is_array($_SESSION['bqt'])) { $form['kid'] = array( '#type' => 'hidden', '#value' => $_SESSION['bqt']['del_khoa'], ); $form['submit'] = array( '#type' => 'step_button', '#next_value' => t('Đồng ý xóa'), '#back_value' => t('Trở trang trước'), ); unset($_SESSION['bqt']); // Giải phóng session['bqt'] để thu hồi nhớ cho hệ thống return form_ext_pass ($form); } } function khoa_delete_form_submit($form,$form_state) { if($form_state['values']['op']=='Đồng ý xóa') { $kid = $form_state['values']['kid']; Trang 111 Ứng dụng mã nguồn mở Drupal xây dựng website quản lý bệnh viện GVHD: Th.S Nguyễn Dương Thế Nhân $ten = db_result(db_query("SELECT ten FROM khoa WHERE kid = %d",$kid)); if(db_query("DELETE FROM khoa WHERE kid = %d",$kid)){ drupal_set_message(t('Đã xóa thành công %khoa khỏi danh sách khoa !',array('%khoa' => $ten))); drupal_goto('bqt/khoa'); } } } /* End of handler page call menu khoa */ Hình 4.11: Tương tác giao diện hook form_delete file tên_module.module Trang 112 Ứng dụng mã nguồn mở Drupal xây dựng website quản lý bệnh viện GVHD: Th.S Nguyễn Dương Thế Nhân Hình 4.12: Tương tác giao diện hook form_delete file tên_module.module 4.4 Một số hình ảnh minh họa trang web Trang 113 Ứng dụng mã nguồn mở Drupal xây dựng website quản lý bệnh viện GVHD: Th.S Nguyễn Dương Thế Nhân Hình 4.13: Trang chủ website Trang 114 Ứng dụng mã nguồn mở Drupal xây dựng website quản lý bệnh viện GVHD: Th.S Nguyễn Dương Thế Nhân Hinh 4.14: Trang admin web tạo hồ sơ cho bác sĩ Trang 115 Ứng dụng mã nguồn mở Drupal xây dựng website quản lý bệnh viện GVHD: Th.S Nguyễn Dương Thế Nhân Hình 4.15: Trang bệnh nhân xem lịch trực bệnh viện Trang 116 Ứng dụng mã nguồn mở Drupal xây dựng website quản lý bệnh viện GVHD: Th.S Nguyễn Dương Thế Nhân Hình 4.16: Trang bệnh nhân đăng ký khám bệnh Trang 117 Ứng dụng mã nguồn mở Drupal xây dựng website quản lý bệnh viện GVHD: Th.S Nguyễn Dương Thế Nhân Hình 4.17: Trang bác sĩ xem lịch khám Trang 118 Ứng dụng mã nguồn mở Drupal xây dựng website quản lý bệnh viện GVHD: Th.S Nguyễn Dương Thế Nhân Hình 4.18: Trang admin web tạo hồ sơ cho bệnh nhân Trang 119 Ứng dụng mã nguồn mở Drupal xây dựng website quản lý bệnh viện GVHD: Th.S Nguyễn Dương Thế Nhân Hình 4.19: Trang bác sĩ quản lý bệnh nhân Trang 120 Ứng dụng mã nguồn mở Drupal xây dựng website quản lý bệnh viện GVHD: Th.S Nguyễn Dương Thế Nhân Hình 4.20: Trang bác sĩ cập nhật kết điều trị Trang 121 Ứng dụng mã nguồn mở Drupal xây dựng website quản lý bệnh viện GVHD: Th.S Nguyễn Dương Thế Nhân Hình 4.21: Trang bệnh nhân xem kết điều trị Trang 122 Ứng dụng mã nguồn mở Drupal xây dựng website quản lý bệnh viện GVHD: Th.S Nguyễn Dương Thế Nhân Hình 4.22: Trang bệnh nhân gửi ý kiến cho bác sĩ Trang 123 Ứng dụng mã nguồn mở Drupal xây dựng website quản lý bệnh viện GVHD: Th.S Nguyễn Dương Thế Nhân Hình 4.23: Trang bác sĩ trả lời cho bệnh nhân Trang 124 Ứng dụng mã nguồn mở Drupal xây dựng website quản lý bệnh viện GVHD: Th.S Nguyễn Dương Thế Nhân TÀI LIỆU THAM KHẢO Tiếng Anh [1] Steven Pritchard, 2006, LPI.Linux.Certification.in.a.Nutshell.2nd.Edition, By O'Reilly Publisher, USA [2] Tony Steidler-Dennison, 2005 Run Your Own Web Server Using Linux & Apache, Dennison [3] Ivan Ristic, 2005, Apache.Security, O'Reilly Publisher, USA [4] Paul Dubois, Stefan Hinz, Carsten Pedersen, 2006, MySQL® Certification Study Guide, MySQLAB, USA [5] Eric Rosebrock, Eric Filson, 2004, Setting Up LAMP: Getting Linux, Apache, MySQL, and PHP Working Together, SYBEX, USA [6] John K.VanDyk, 2007, Pro Drupal Development, Apress, USA Trang 125 ... log-bin=mysql-bin binlog-do-db=adam binlog-ignore-db=mysql binlog-ignore-db=test server-id=1 #information for becoming slave master-host = 192.168.100.2 (ip Server B) master-user = repl master-password... MySQL  Mơ hình MySQL replication Gồm có mơ hình:  Chính-Phụ (Master-Slave)  Chính-Chính(Master-Master)  Mơ hình Chính-Phụ (Master-Slave) Mơ hình gồm máy chủ Master nhiều máy chủ Slave Máy... = repl master-password = 12345 master-port = 3306 log-bin binlog-do-db=adam  Tạo user có quyền replication Server B: mysql> GRANT REPLICATION SLAVE ON *.* -> TO 'repl'@'%.192.168.100.3' IDENTIFIED

Ngày đăng: 30/10/2022, 20:15

Mục lục

    DANH MỤC BẢNG BIỂU

    CHƯƠNG 1: HẠ TẦNG DỊCH VỤ WEB SERVER

    1.2. Tổng quan địa chỉ IP:

    1.3. Các lớp địa chỉ:

    CHƯƠNG 2: BẢO MẬT DỊCH VỤ WEB

    CHƯƠNG 3: PHÂN TÍCH PHƯƠNG ÁN LÀM VIỆC

    CHƯƠNG 4: LẬP TRÌNH DRUPAL

    4.3. Lập trình module trong Drupal

    4.4. Một số hình ảnh minh họa trang web

    TÀI LIỆU THAM KHẢO

Tài liệu liên quan