1. Trang chủ
  2. » Luận Văn - Báo Cáo

Xây dựng mô đun firewall tích hợp cho web

96 442 0

Đ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

Thông tin cơ bản

Định dạng
Số trang 96
Dung lượng 1,71 MB

Nội dung

Xây dựng mô đun firewall tích hợp cho web

Trang 1

MỤC LỤC

MỤC LỤC 1

DANH MỤC HÌNH ẢNH 5

c) Dòng phiên bản 1.6.x 13 1 5

c) Dòng phiên bản 1.6.x 17 5

DANH MỤC KÍ HIỆU VÀ CHỮ VIẾT TẮT 10

LỜI MỞ ĐẦU 11

Chương 1 13

TỔNG QUAN VỀ HỆ THỐNG QUẢN LÝ NỘI DUNG 13

1.1 Khái niệm Hệ thống quản lý nội dung 13

1.2 Giới thiệu Joomla 14

1.2.1 Lịch sử phát triển 14

1.2.2 Các phiên bản 16

c) Dòng phiên bản 1.6.x 17

1.2.3 Kiến trúc Joomla 1.5! 17

1.2.3.1 Ba tầng hệ thống của Joomla! 1.5 18

1.2.2.2 Mô hình Model-View-Controller (MVC) 20

1.2.4 Nhóm Nòng cốt 21

Chương 2 23

GIỚI THIỆU CHUNG VỀ TƯỜNG LỬA ỨNG DỤNG WEB 23

2.1 Tổng quan về tường lửa ứng dụng web 23

2.2 Ưu điểm của tường lửa ứng dụng web 24

2.3 Hạn chế của tường lửa ứng dụng web 25

2.4 Những rủi ro của WAF 25

Trang 2

2.5 Firewall Script 28

2.5.1 Khái niệm 28

2.5.2 Chức năng của Firewall Script 28

Chương 3 30

MÔ ĐUN FIREWALL TÍCH HỢP CHO WEBSITE JOOMLA 30

Theo thống kê của trang web (www.webappsecroadmap.com) năm 2008 thì có tới 68% các trang web bị tấn công dựa vào lỗi SQL injection, 61% là bị tấn công theo XSS Đây là những lỗi rất cơ bản nhưng nó rất là nguy hiểm Nguyên nhân chủ yếu là do các nhà phát triển web chưa cẩn thận, chưa ý thức rõ tầm quan trọng của việc bảo vệ dự liệu của website hoặc sơ suất trong quá trình phát triển dẫn đến không kiểm tra kỹ dữ liệu đầu vào 31

Joomla! là một framework dành cho các tổ chức, cá nhân dùng để giới thiệu tin tức, giới thiệu về công ty, làm blog hoặc làm sử dụng vào thương mại điện tử như: bán hàng qua mạng Bản thân Joomla! cũng chưa có mô-đun nào dùng cho việc kiểm tra dữ liệu đầu vào trước khi tới các thành phần mở rộng Do đó, khi một người sử dụng cài những phần mở rộng không đảm bảo an toàn thì rất dễ bị kẻ xấu lợi dụng và tấn công 31

Việc trang bị những sản phẩm chuyên dụng hay các sản phẩm đã được thương mại hóa thì quá đắt Những sản phẩm tường lửa cho Joomla! có thể chống lại được kiểu tấn công này những không chống được các kiểu tấn công khác như: chống được SQL injection, XSS nhưng không chống được DoS hoặc upshell Đối với những sản phẩm, những thiết bị chuyên dụng cấu hình rất phức tạp đối với các doanh nghiệp vừa và nhỏ 31

Do đó em chọn giải pháp xây dựng một Firewall Script tích hợp vào Joomla! 1.5 để bảo vệ các tấn công cũng như làm sạch các dữ liệu trước khi các thành phần khác của Joomla! xử lý dữ liệu 31 Xfirewall là tường lửa ứng dụng web, hoạt động ở tầng Ứng dụng của mô hình OSI Nó có thể chống được nhiều kiểu tấn công tại tầng Ứng dụng như:

Trang 3

HTTP Flood, SQL injection, XSS, up shell Ngoài ra, Xfirewall có nhiều chức năng bảo vệ an toàn cho người quản trị như: thay đổi link admin, đặt password

sử dụng htpasswd, hay sử dụng master password để quản lí Xfirewall 31

Hiện nay có nhiều component cũng như plugin được viết ra với mục đích ngăn chặn các tấn công từ bên ngoài vào hệ thống Song nhưng thành phần mở rộng (extension) trên còn có nhiều hạn chế Do đó Xfirewall được viết ra với mong muốn có thể hạn chế tối đa thiệt hại cho máy chủ cũng như cho chính trang web đang được triển khai 32

3.1 Xây dựng mô-đun Xfirewall 32

3.1.1 Luồng dữ liệu vào ra trong Joomla! 32

3.1.2 Cách thức xây dựng một component trong Joomla! 33

3.1.3 Các thành phần trong mô-đun Xfirewall 35

3.1.4 Hoạt động của modun Xfirewall 42

3.1.5 Cài đặt 44

3.2 Một số chức năng của mô-đun Xfirewal 49

3.2.1 SQL injection Attack 49

3.2.2 XSS Attack 52

3.2.3 DDoS Attack (Distributed Denial of Service) 56

3.2.4 Up shell 59

3.2.5 Enable / Disable các chức năng trong admin 61

3.2.6 Chặn user 62

3.2.7 Chặn IP 63

3.2.8 Bảo vệ link admin 63

3.2.9 Master password 66

3.2.10 Ghi log 66

Trang 4

3.3 So sánh với một số firewall cùng loại 67

3.3.1 Blind SQL Injection 68

3.3.2 DoS 69

3.3.3 File upload 69

3.3.4 File inclusion 70

3.3.5 XSS 70

3.4 Ưu nhược điểm của Xfirewall 71

3.4.1 Ưu điểm 71

3.4.2 Nhược điểm 72

KẾT LUẬN 74

TÀI LIỆU THAM KHẢO 77

PHỤ LỤC 78

Trang 5

DANH MỤC HÌNH ẢNH

MỤC LỤC 1

c) Dòng phiên bản 1.6.x 13 1 5 1

c) Dòng phiên bản 1.6.x 17 5 1

c) Dòng phiên bản 1.6.x 17 1

DANH MỤC HÌNH ẢNH 5

DANH MỤC KÍ HIỆU VÀ CHỮ VIẾT TẮT 11

LỜI MỞ ĐẦU 12

Chương 1 14

TỔNG QUAN VỀ HỆ THỐNG QUẢN LÝ NỘI DUNG 14

1.1 Khái niệm Hệ thống quản lý nội dung 14

1.2 Giới thiệu Joomla 15

1.2.1 Lịch sử phát triển 15

1.2.2 Các phiên bản 17

c) Dòng phiên bản 1.6.x 18

1.2.3 Kiến trúc Joomla 1.5! 18

1.2.3.1 Ba tầng hệ thống của Joomla! 1.5 19

Hình 1.1 Kiến trúc Joomla! 1.5 19

1.2.2.2 Mô hình Model-View-Controller (MVC) 21

Hình 1.2 Mô hình MVC 21

1.2.4 Nhóm Nòng cốt 22

Chương 2 24

GIỚI THIỆU CHUNG VỀ TƯỜNG LỬA ỨNG DỤNG WEB 24

2.1 Tổng quan về tường lửa ứng dụng web 24

Trang 6

2.2 Ưu điểm của tường lửa ứng dụng web 25

2.3 Hạn chế của tường lửa ứng dụng web 26

2.4 Những rủi ro của WAF 26

Hình 2.1 Bảng đánh giá các kiểu tấn công Website 27

Hình 2.2 HTTP Parameter Pollution HPP 28

Hình 2.3: Cross-site Script HTTP 28

Hình 2.4: Path Traversal, Local/Remote File Inclusion 29

2.5 Firewall Script 29

2.5.1 Khái niệm 29

2.5.2 Chức năng của Firewall Script 29

Chương 3 31

MÔ ĐUN FIREWALL TÍCH HỢP CHO WEBSITE JOOMLA 31

Theo thống kê của trang web (www.webappsecroadmap.com) năm 2008 thì có tới 68% các trang web bị tấn công dựa vào lỗi SQL injection, 61% là bị tấn công theo XSS Đây là những lỗi rất cơ bản nhưng nó rất là nguy hiểm Nguyên nhân chủ yếu là do các nhà phát triển web chưa cẩn thận, chưa ý thức rõ tầm quan trọng của việc bảo vệ dự liệu của website hoặc sơ suất trong quá trình phát triển dẫn đến không kiểm tra kỹ dữ liệu đầu vào 32

Joomla! là một framework dành cho các tổ chức, cá nhân dùng để giới thiệu tin tức, giới thiệu về công ty, làm blog hoặc làm sử dụng vào thương mại điện tử như: bán hàng qua mạng Bản thân Joomla! cũng chưa có mô-đun nào dùng cho việc kiểm tra dữ liệu đầu vào trước khi tới các thành phần mở rộng Do đó, khi một người sử dụng cài những phần mở rộng không đảm bảo an toàn thì rất dễ bị kẻ xấu lợi dụng và tấn công 32 Việc trang bị những sản phẩm chuyên dụng hay các sản phẩm đã được thương mại hóa thì quá đắt Những sản phẩm tường lửa cho Joomla! có thể chống lại được kiểu tấn công này những không chống được các kiểu tấn công

Trang 7

khác như: chống được SQL injection, XSS nhưng không chống được DoS hoặc upshell Đối với những sản phẩm, những thiết bị chuyên dụng cấu hình rất phức

tạp đối với các doanh nghiệp vừa và nhỏ 32

Do đó em chọn giải pháp xây dựng một Firewall Script tích hợp vào Joomla! 1.5 để bảo vệ các tấn công cũng như làm sạch các dữ liệu trước khi các thành phần khác của Joomla! xử lý dữ liệu 32

Xfirewall là tường lửa ứng dụng web, hoạt động ở tầng Ứng dụng của mô hình OSI Nó có thể chống được nhiều kiểu tấn công tại tầng Ứng dụng như: HTTP Flood, SQL injection, XSS, up shell Ngoài ra, Xfirewall có nhiều chức năng bảo vệ an toàn cho người quản trị như: thay đổi link admin, đặt password sử dụng htpasswd, hay sử dụng master password để quản lí Xfirewall 32

Hiện nay có nhiều component cũng như plugin được viết ra với mục đích ngăn chặn các tấn công từ bên ngoài vào hệ thống Song nhưng thành phần mở rộng (extension) trên còn có nhiều hạn chế Do đó Xfirewall được viết ra với mong muốn có thể hạn chế tối đa thiệt hại cho máy chủ cũng như cho chính trang web đang được triển khai 33

3.1 Xây dựng mô-đun Xfirewall 33

3.1.1 Luồng dữ liệu vào ra trong Joomla! 33

Hình 3.1 Mô tả luồng dữ liệu vào/ra trong Joomla! 33

3.1.2 Cách thức xây dựng một component trong Joomla! 34

3.1.3 Các thành phần trong mô-đun Xfirewall 36

Hình 3.4 Các Model trong Xfirewall 40

Hình 3.5 Các View trong Xfirewall 41

Hình 3.6 Plugin trong Xfirewall 42

Hình 3.7 Helpers trong Xfirewall 43

3.1.4 Hoạt động của modun Xfirewall 43

Hình 3.8 Sơ đồ hoạt động 44

Trang 8

3.1.5 Cài đặt 45

Hình 3.9 Cài đặt modun Xfirewall 45

Hình 3.10 Giao diện chính của Xfirewall 46

Hình 3.11 Cấu hình link an toàn 47

Hình 3.12 Cấu hình truy cập vào back-end 48

Hình 3.13 Cấu hình chống tấn công SQL injection 48

Hình 3.14 Cấu hình chống tấn công DDoS 49

Hình 3.15 cấu hình upshell 50

3.2 Một số chức năng của mô-đun Xfirewal 50

3.2.1 SQL injection Attack 50

Hình 3.16 Cấu hình chống tấn công SQL injection 51

Hình 3.17 Sơ đồ hoạt động kiểm tra tấn công SQL injection 52

Hình 3.18 Cảnh báo lỗi SQL injection 53

3.2.2 XSS Attack 53

Hình 3.19 Sơ đồ kiểm tra tấn công XSS 55

Hình 3.20 Cảnh báo lỗi XSS 57

3.2.3 DDoS Attack (Distributed Denial of Service) 57

Hình 3.21 Mô tả tấn công DDoS 58

Hình 3.22 Cấu hình tấn công DDoS 59

3.2.4 Up shell 60

Hình 3.23 Cấu hình chống up shell 61

3.2.5 Enable / Disable các chức năng trong admin 62

Hình 3.24 Cấu hình cấm các chức năng trong phần quản trị 63

3.2.6 Chặn user 63

Trang 9

Hình 3.25 Cấu hình chặn user truy cập vào phần quản trị 63

3.2.7 Chặn IP 64

Hình 3.26 Giao diện quản trị IP bị cấm 64

3.2.8 Bảo vệ link admin 64

Hình 3.27 Cấu hình tạo link an toàn cho admin 65

Hình 3.28 Cấu hình đặt password sử dụng htpasswd 66

Hình 3.29 Giao diện đăng nhập khi cấu hình đặt pass bằng htpasswd 66

3.2.9 Master password 67

Hình 3.30 Cấu hình Master password 67

Hình 3.31 Giao diện đăng nhập Master user 67

3.2.10 Ghi log 67

Hình 3.32 Nhật kí trang web 68

3.3 So sánh với một số firewall cùng loại 68

3.3.1 Blind SQL Injection 69

3.3.2 DoS 70

3.3.3 File upload 70

3.3.4 File inclusion 71

3.3.5 XSS 71

3.4 Ưu nhược điểm của Xfirewall 72

3.4.1 Ưu điểm 72

3.4.2 Nhược điểm 73

KẾT LUẬN 75

TÀI LIỆU THAM KHẢO 78

Trang 10

PHỤ LỤC 79

Trang 11

DANH MỤC KÍ HIỆU VÀ CHỮ VIẾT TẮT

CMS Content Management System

SFLC Software Freedom Law Center

MySQL Hệ quản trị cơ sở dữ liệu MySQL

Front-end Phần giao diện phía người sử dụng – site

Back-end Phần giao diện phía người quản trị

-administratorFramework Thường sử dụng cho những mã nguồn được đóng

gói lại và có thể phát triển trên đóMVC Module View Controller

CSDL Cơ Sở Dữ Liệu

HQT CSDL Hệ quản trị Cơ sở dữ liệu

WAF Web Application Firewall

OSI Open Systems Interconnection

GUI Graphical User Interface

Trang 12

LỜI MỞ ĐẦU

Vấn đề an ninh mạng hiện nay trở nên cấp thiết hơn bao giờ hết Nhất là đối vớicác website thì đây là mối đe dọa rất lớn bởi tính lỏng lẻo trong công các bảo vệhoặc khó khăn trong việc bảo vệ So với giải pháp đặt các firewall đắt tiền đểbảo vệ website thì một giải pháp khả thi và hiệu quả hơn cả đó chính là tự bảo

vệ ngay chính website của mình Do đó giải pháp Web Application Firewallđược lựa chọn tiên nhất trong việc xây dựng vào bảo vệ các trang web

Joomla là một mã nguồn mở do cộng đồng thế giới cùng nhau xây dựng và pháttriển Nó đơn giản trong việc thiết kế và quản trị, đồng thời cũng có thể xây dựngđược những website phức tạp như: web bán hàng, rao vặt, mạng xã hội Quatìm hiểu em thấy Joomla! hoàn toàn có khả năng làm một website chuyênnghiệp cũng như việc xây dựng các ứng dụng bảo mật trên đó

Bản thân Joomla! chưa có mô-đun nào hỗ trợ bảo mật, kiểm tra dữ liệu đầu vàotrước khi tới các thành phần mở rộng Do đó, khi một người sử dụng cài nhữngphần mở rộng không đảm bảo an toàn thì rất dễ bị kẻ xấu lợi dụng và tấn công.Hơn nữa là Joomla cũng chưa có mô-đun firewall nào để bảo vệ trang web Một

số các nhà phát triển cũng đã phát triển các mô-đun firewall nhưng vẫn chưathực sự hiệu quả và chống được ít kiểu tấn công.Vì vậy, em đã chọn đề tài của

mình là: “Xây dựng module firewall tích hợp vào website dựa trên nền

joomla 1.5” để có thể phòng chống và bảo vệ trang web một cách hiệu quả hơn.

Đồ án tốt nghiệp gồm các chương sau:

Chương 1: Tổng quan về CMS

Chương 2: Giới thiệu chung về tường lửa ứng dụng web

Chương 3: Mô-đun Xfirewall

Chương 4: Kết luận

Để hoàn thành được đồ án này, trước hết em xin chân thành cảm ơn ban lãnh đạoHọc viện Kỹ thuật Mật Mã cùng với các thầy cô trong khoa an toàn thông tin,

Trang 13

các thầy cô trong khoa công nghệ thông tin cùng các thầy cô ở khoa khác đã hếtsức tạo điều kiện và có công ơn dạy dỗ em trong quá trình học tập.

Qua đây, em cũng xin cảm ơn thầy giáo TS Nguyễn Chung Tiến công tác tại

phân viện Nghiên Cứu Nghiệp Vụ Mật Mã và An Toàn Thông Tin – Học Viện

Kỹ Thuật Mật Mã người đã có công rất lớn trong quá trình em làm đồ án Thầy

đã hướng dẫn nhiệt tình và tạo điều kiện để em có thể học hỏi thêm nhiều kiếnthức bổ ích

Em xin gửi lời cảm ơn đến gia đình và bạn bè đã ủng hộ và động viên em trongsuốt quá trình học tập và làm việc cũng như trong thời gian làm đồ án

Em rất mong nhận được các ý kiến đóng góp của thầy cô và các bạn để đồ án của

em được hoàn thiện hơn

Em xin chân thành cảm ơn !

Hà Nội, ngày 30 tháng 5 năm 2011

Sinh viên thực hiện

Trang 14

Chương 1 TỔNG QUAN VỀ HỆ THỐNG QUẢN LÝ NỘI DUNG

1.1 Khái niệm Hệ thống quản lý nội dung

Hệ thống quản lý nội dung hay còn gọi là CMS (Content Management System)được sử dụng để điều khiển và chỉnh sửa nội dung Nội dung bao gồm tệp tinđiện tử, hình ảnh, video, file âm thanh, tài liệu điện tử và văn bản web Kháiniệm chính đằng sau một CMS là tạo ra những tập tin có sẵn cho việc chỉnh sửanội bộ hoặc trên nền Internet Một CMS thường được sử dụng để lưu trữ tài liệurất tốt Rất nhiều công ty sử dụng CMS để tổ chức và lưu trữ những tập tin dướidạng công cộng Nhiều công ty sử dụng CMS có thể chia sẻ nội dung với ngườikhác một cách dễ dàng, như hầu hết các hệ thống bây giờ

Hệ thống quản lý nội dung trang web chủ yếu được sử dụng để kiểm soát và xuấtbản các văn bản dựa trên các tài liệu như bài viết, tài liệu dạng văn bản và thôngtin Một CMS bình thường có thể cung cấp các tính năng sau đây:

• Nhập và tạo ra các tài liệu, video và các hình ảnh

• Xác định người sử dụng chính và vai trò của mình trong hệ thống quản

cụ thể

• Một khả năng để ghi chép, theo dõi và quản lý rất nhiều các phiên bảncủa cùng một nội dung hay tập tin - một hệ thống quản lý tài liệu vớinhiều phiên bản

Trang 15

• Một khả năng để xuất bản nội dung vào một khu lưu trữ tập trung, đểtạo điều kiện lớn hơn truy cập vào nội dung Quan trọng hơn là với thờigian, kho này là một yếu tố quan trọng của hệ thống CMS, tích hợp vàtìm kiếm và các phương pháp thu hồi.

• Một số hệ thống CMS cho phép dùng định dạng của một số văn bảntrong tài liệu như: phông chữ, màu sắc, bố trí bố cục…

Một số CMS thông dụng hiện nay: Joomla!, Drupal, Wordpress, Nuke…

1.2 Giới thiệu Joomla

Joomla! là một hệ quản trị nội dung mã nguồn mở Joomla! được viết bằng ngônngữ PHP và kết nối tới cơ sở dữ liệu MySQL, cho phép người sử dụng có thể dễdàng xuất bản các nội dung của họ lên Internet hoặc Intranet

Mọi thứ vẫn tiến triển bình thường cho đến trước khi xảy ra tranh chấp về mặtpháp lý vào năm 2003 Vụ việc dẫn tới ý tưởng Mambo cần phải được bảo vệbởi một tổ chức phi lợi nhuận Nhưng những nhà phát triển không hài lòng về cơcấu của Quỹ tài trợ Mambo Andrew Eddie, người lãnh đạo nhóm phát triển,trong một lá thư gửi cộng đồng, đã chia sẻ những lo lắng của mình về Quỹ tài trợMambo và mối quan hệ của nó tới cộng đồng Ông viết: " Chúng tôi cho rằngtương lai của Mambo nên được quản lý, điều chỉnh bởi những yêu cầu của người

sử dụng và khả năng của những nhà phát triển Trong khi đó, Quỹ tài trợ Mambolại được thiết kế nhằm trao quyền điều khiển cho Miro, một thiết kế ngăn cản sựhợp tác giữa Quỹ tài trợ và cộng đồng " Bởi vậy vào ngày 17 tháng 8 năm

Trang 16

2005, toàn bộ đội phát triển nòng cốt của Mambo đã rời khỏi dự án trong khiđang làm việc với phiên bản 4.5.3.

Nhờ sự trợ giúp của Trung tâm Luật Tự do Phần mềm (Software Freedom LawCenter - SFLC), 20 thành viên nòng cốt cũ của Mambo đã thành lập một tổ chứcphi lợi nhuận khác lấy tên là Open Source Matters, để hỗ trợ về mặt tổ chức,pháp lý và kinh phí cho dự án mã nguồn mở còn chưa được đặt tên của họ Cùnglúc đó, nhóm phát triển cũng lập một website lấy tên OpenSourceMatters.org đểphân phối thông tin tới những người sử dụng, những người phát triển, nhữngngười thiết kế và cộng đồng Joomla nói chung Người đứng đầu dự án chính làAndrew Eddie, còn được biết đến với tên gọi "Sếp trưởng"

Ngay ngày hôm sau, 1000 người đã gia nhập diễn đàn OpenSourceMatters.org,hầu hết các bài viết cho diễn đàn đều khuyến khích và đồng tình với hành độngcủa nhóm phát triển Tin trên đã nhanh chóng được đăng tải trên các tạp chínewsforge.com, eweek.com và ZDnet.com

Trong một thông báo của Eddie 2 tuần sau đó, các nhóm đã được tổ chức lại vàcộng đồng Joomla! tiếp tục tăng trưởng Tới ngày 1 tháng 9 năm 2005 tên mớicủa dự án đã được thông báo cho khoảng 3000 người theo dõi đội phát triển vàđến ngày 16 tháng 9 thì họ cho ra đời Joomla! 1.0

Trang 17

o Phiên bản phát hành mới nhất: Joomla! 1.5.23 (ngày 04 tháng

Phiên bản đầu tiên của Joomla! là phiên bản Joomla! 1.0 (hay Joomla! 1.0.0) có

nguồn gốc từ Mambo 4.5.2.3 (đã bao gồm thêm nhiều bản vá bảo mật và sửalỗi).Các phiên bản tiếp theo có dạng 1.0.x

Điểm mạnh của Joomla! 1.0.x: Có một số lượng rất lớn các thành phần mở rộng(module/component); thành phần nhúng (mambot); giao diện (template)

Trang 18

b) Dòng phiên bản 1.5.x

Phiên bản Joomla! 1.5 là phiên bản cải tiến từ Joomla! 1.0.x (phần mã được viếtlại hoàn toàn, tuy nhiên vẫn giữ cách hành xử như cũ) được coi như Mambo 4.6.Joomla! 1.5 tiếp tục duy trì một giao diện người sử dụng đơn giản (nhìn và cảmnhận - look and feel)

Cả Joomla! 1.5 và Mambo 4.6 đều hỗ trợ đa ngôn ngữ Joomla! thì sử dụng fileđịnh dạng ".ini" để lưu các thông tin chuyển đổi ngôn ngữ, còn Mambo thì sửdụng file định dạng ".gettext" Joomla 1.5 hỗ trợ tất cả các ngôn ngữ có tập ký tựđược biểu diễn bằng bảng mã UTF-8

Joomla! 1.5 cũng bao gồm các đặc tính mới như các mô hình chứng thực(LDAP, Gmail ), hỗ trợ mô hình khách-chủ (client-server) xml-rpc Nó cũng hỗtrợ các trình điều khiển cơ sở dữ liệu dành cho MySQL 4.1+ (trên nền PHP 5) vàtăng cường hỗ trợ cho MySQL 5, cũng như hỗ trợ các loại cơ sở dữ liệu khác.Điểm mạnh của Joomla! 1.5: Phần quản trị website có sử dụng công nghệ Web2.0, một số tính năng được cải tiến hơn so với Joomla 1.0.x

c) Dòng phiên bản 1.6.x

Jommla! 1.6 là dòng phiên bản tiếp theo của Joomla! 1.5 Những thay đổi đáng

kể của phiên bản này chính là:

- Hệ thống quản lý truy cập mở rộng

- Quản lí thể loại lồng nhau, đa cấp

- Chuẩn hóa các phần mở rộng được xây dựng dựa trên mô hình MVC

1.2.3 Kiến trúc Joomla 1.5!

Joomla! 1.5 được phát triển và kết thừa từ phiên bản tiền nhiệm trước đó là 1.0

Nó được xây dựng với ba tầng hệ thống và thiết kế theo mô hình MVC Với thiết

kế như vậy sẽ dễ dàng cho việc quản lý code, dễ dàng cho việc phát triển cácthành phần và tạo ra một chuẩn cho cộng đồng phát triển các ứng dụng mở rộng

Trang 19

1.2.3.1 Ba tầng hệ thống của Joomla! 1.5

Hình 1.1 Kiến trúc Joomla! 1.5

Tầng thứ nhất là Extensions Tier Đây là tầng trên cùng của Joomla! framework,

tầng này có các thành phần (component), mô đun (module) và giao diện(template) được thực thi và thể hiện hay còn gọi là view Ba thành phần này tạonên điểm mạnh cho Joomla! đó chính là mô hình MVC Các thành phần này cóchức năng và nhiệm vụ sau:

• Components: Là một trong các thành phần mở rộng của Joomla!, thựcchất nó là một ứng dụng độc lập trong hệ thống Joomla! Componentđược sử dụng để thực hiện một chức năng lớn nào đó, chẳng hạn như:Quản lí nội dung tin tức, quảng cáo, rao vặt, liên kết web, liên hệ

• Modules: Là một trong các thành phần mở rộng của Joomla!, nó là mộtứng dụng nhỏ (thường chỉ có vài file và phần lập trình cũng khôngnhiều) được sử dụng chủ yếu để lấy dữ liệu và hiển thị thông tin.Module thường được dùng kết hợp kèm với các component nhằm mởrộng, cũng như thể hiện rõ ràng hơn các chức năng của component.Không giống như component, một module có thể được đặt ở bất kỳ vịtrí nào trên template hoặc vị trí do người dùng tự định nghĩa Ngoài ramột module có thể được nhân bản, nghĩa là cùng lúc có thể xuất hiện

Trang 20

tại một vị trí hoặc các vị trí khác nhau hay có thể tái sử dụng cho mộttrang web khác Các module được quản lý ở giao diện người quản trị.Mỗi một module có thể có hoặc không có các thông số cấu hình Vàngười quản trị có thể cho phép các module ẩn hoặc hiện ở vị trí nào đótùy theo thiết kế, chức năng của trang web.

• Templates: Là một gói bao gồm các file PHP, HTML, CSS, JS(Javascript) và các tấm hình, ảnh, biểu tượng, video, flash kèm theotạo nên giao diện (bố cục và hình hài) của website Joomla! sử dụngcác giao diện khác nhau cho front-end (site) và back-end(administrator)

Tầng thứ hai là Application Tier Đây là tầng giữa của Joomla! framework.Tầng này bao gồm các thành phần mở rộng của lớp JApplication Hiện tại có 4ứng dụng trong bản phân phối của Joomla!:

• JInstallation chịu trách nhiệm cài đặt các ứng dụng của joomla vào webserver và xóa bỏ chúng sau khi quá trình cài đặt hoàn tất

• JAdministrator chịu trách nhiệm cho phần quản trị back-end

• JSite chịu trách nhiệm cho phần front-end của website

• XML-RPC hỗ trợ quản trị từ xa của website joomla

Tầng thứ ba Framework Tier: Đây cũng là tầng cuối cùng của framework Tầngnày chứa:

• Framework: Đây chính là lõi (core) của Joomla!, thực hiện và xử lýluồng dữ liệu

• Libraries: Chứa các lớp phục vụ cho các chức năng thực thi của corecũng như các chức năng mở rộng mà nhà phát triển xây dựng

• Plugin: Hay còn gọi là mambot(trong phiên bản 1.0) nó là những tiếntrình nhỏ, thực hiện một hay nhiều nhiệm vụ một cách tự động trướckhi sự kiện đó xảy ra

Trang 21

1.2.2.2 Mô hình Model-View-Controller (MVC)

Bắt đầu từ phiên bản Joomla! 1.5.x hoặc các phiên bản sau này, Joomla! đã đưavào một framework mới, mang lại những thuận tiên rất lớn cho những ngườiphát triển Các đoạn code giờ đây rất dễ dàng để kiểm tra và khá rõ ràng.Framework này đưa ra một mẫu thiết kế mới, thiết kế MVC (Model-View-Controller) trong Joomla

Trang 22

Mô hình này đã tạo ra một chuẩn chung cho cộng đồng phát triển Joomla! Qua

đó, cộng động phát triển có thể dễ dàng đọc, phát triển cũng như kế thừa nhữngsản phẩm của người khác

Nhiệm vụ và chức năng của các thành phần trong mô hình MVC:

• View: Cũng như tên gọi, nó thể hiện ra ngoài cho người sử dụng giaodiện của chương trình, trong lớp này người ta tuỳ biến để có thể rađược nhiều kiểu giao diện khác nhau Cũng giống lớp Model, khi muốnthay đổi giao diện, người ta chỉ thay đổi lớp View mà thôi

• Model: Là lớp quản lý tất cả việc truy xuất dữ liệu vào CSDL, bao gồm

cả việc thêm, xoá, sửa… Chính vì thế khi thay đổi một HQT CSDLkhác, người ta chỉ cần thay đổi lớp Model này Đây chính là lợi điểmcủa mô hình MVC – tính mềm dẻo

• Controller: Lớp này được ví như chiếc xương sống của toàn bộ chươngtrình, việc xử lý các luồng dữ liệu yêu cầu (request) , gọi và thực hiệncác lớp Model, View … Lớp này rất ít khi chỉnh sửa nếu ko có nhu cầucan thiệp vào hệ thống

1.2.4 Nhóm Nòng cốt

Dự án Joomla! hiện được chèo lái bởi 19 thành viên (ban đầu là 20) của NhómNòng cốt (Core Team) đến từ 11 quốc gia trên thế giới bao gồm: Ric Allinson,Brad Baker, Shayne Bartlett, Levis Bisson, Michelle Bisson, Tim Broeker,David Gal, Rey Gigataras, Wilco Jansen, Johan Janssens, Alex Kempkens,Mateusz Krzeszowiec, Louis Landry, Andy Miller, Sam Moffatt, Peter Russell,Emir Sakic, Marko Schmuck, Antonie de Wilde

Danh sách 19 thành viên của Nhóm Nòng cốthttp://www.joomla.org/content/blogcategory/43/85/

Những giải thưởng mà Joomla đã đạt được:

• Tháng 10 năm 2007, Hệ quản trị nội dung mã nguồn mở PHP tốt nhất

Trang 23

• Tháng 11 năm 2006, Hệ quản trị nội dung mã nguồn mở tốt nhất doPackt Publishing công bố.

• Tháng 10 năm 2006, Dự án mã nguồn mở/ Linux tốt nhất tại triễn lãmLinuxWorld 2006 ở Anh

• Tháng 10 năm 2005, Dự án mã nguồn mở/ Linux tốt nhất tại triễn lãmLinuxWorld 2005 ở Anh

Trang 24

Chương 2 GIỚI THIỆU CHUNG VỀ TƯỜNG LỬA ỨNG DỤNG WEB2.1 Tổng quan về tường lửa ứng dụng web

Tường lửa ứng dụng web ( Web Application Firewall – WAF) là giải pháp bảomật toàn diện và mạnh mẽ dành cho các ứng dụng web WAF đưa ra mộtphương thức phòng vệ chống lại các hoạt động như khai thác các lỗ hổng về giaothức, lỗ hổng về lập trình Bên cạnh đó, WAF còn cảnh báo cho người quản trịbiết về những lỗi ứng dụng mà các hacker có thể khai thác, đánh cắp thông tin,gây lỗi từ chối dịch vụ hoặc làm thay đổi giao diện trang web

WAF nằm giữa các ứng dụng web và người dùng Nó hoạt động cũng giống nhưcác tường lửa truyền thống là dựa vào các chính sách được tích hợp vào phầnmềm hoặc các thiết bị phần cứng WAF có thể chạy trong 1 thiết bị hoặc tíchhợp ngay trên máy chủ (server)

Tường lửa ứng dụng web kiểm soát các dữ liệu vào/ra, cũng như các truy cập tớimáy chủ hay các dữ liệu từ máy chủ xuất ra ngoài Tuy nhiên, các tường lửatruyền thống hay thậm chí cả hệ thống chống xâm nhập (IPS), các thiết bị phântích gói tin IP cũng không thể bảo vệ hết những nguy cơ tấn công cho các ứngdụng tại tầng Ứng dụng của mô hình OSI Nếu không có sự chuẩn bị bảo vệ các

dữ liệu thì các tường lửa hoạt động ở tầng 3 không thể phát hiện và khắc phụccác mối đe dọa của tầng ứng dụng

WAF hoạt động chủ yếu ở tầng ứng dụng (Application layer) của mô hình OSI.Ngoài ra nó cũng có thể hoạt động ở trên một số các tầng khác như: tầng phiên(Session layer), tầng trình diễn (Presiontation layer) Tại tầng ứng dụng, WAFphân tích các dữ liệu dựa vào giao thức HTTP Sau đó dựa vào các luật đã đặt ra

mà nó cho phép truy cập hay không Một tường lửa ứng dụng được coi như làmột thiết bị bảo vệ máy chủ (server) khỏi bị tấn công

Một số WAF như :

Trang 25

• Armorlogic - Profense web application firewall

• Array Networks - WebWall Multi-Layered Application Security

• Barracuda Web Application Firewall

• Cisco - Application Control Engine (ACE) Web Application Firewall

• Citrix NetScaler - Application Firewall

• F5 Networks - Application Security Manager ASM

• Fortinet - Fortiweb web application firewall

• ModSecurity - Opensource web application firewall

• Radware - AppWall Web Application Firewall

• SonicWALL - SonicWALL Web Application Firewall Service

• List of Additional Web Application Firewalls - Mosaic SecurityResearch

• RSfirewall - Rsjoomla.com

• Jfirewall - jfirewall.com

2.2 Ưu điểm của tường lửa ứng dụng web

Tính linh hoạt cao, khả năng tùy biến dựa theo môi trường và cách thức bị tấncông mà có thể thay đổi các luật làm tăng tính mềm dẻo của tưởng lửa loại này.Các luật này được điều khiển thông qua giao diện người dùng GUI (GraphicalUser Interface)

Hoạt động trên nhiều môi trường khác nhau Nó có thể hoạt động trên cả hệ điềuhành window hay linux, có thể chạy trên nền Apache hoặc là IIS

Giá thành rẻ, đây là một ưu thế của WAF Chi phí để xây dựng tường lửa loạinày thấp hơn rất nhiều so với việc mua một tường lửa hoạt động ở các mức kháctrên mô hình OSI thậm chí còn miễn phí (Mod_security)

Trang 26

Tường lửa loại này có khả năng phân tích nội dung gói tin mà hacker gửi đến do

đó hạn chế nguy cơ bị tấn công rất cao Tránh các tấn công bằng các mã độc hạigửi tới server

2.3 Hạn chế của tường lửa ứng dụng web

Mặc dù tính linh hoạt cao, song tường lửa ứng dụng web còn có nhiều hạn chế.Tính linh hoạt thể hiện rõ ở môi trường hoạt động Nó có thể hoạt động trênnhiều hệ điều hành: Linux, window… Các tập luật mềm dẻo, dễ dàng thay đổicũng như thêm các luật mới, nhằm tăng hiệu quả phòng chống các nguy cơ tấncông

Do chỉ hoạt động ở các tầng Application, Presiontation và Session của mô hìnhOSI cho nên tường lửa ở các mức này chỉ chống lại được một số các kiểu tấncông như: SQL injection, HTTP Flood, XSS, Local attack, cướp phiên… Đối vớicác kiểu tấn công ở các mức dưới (từ tầng 4 trở xuống) thì không có khả năngchống lại

Đa số các tường lửa loại này là những phần mềm được tích hợp lên server do đótính chuyên biệt không cao, phải xử lý nhiều loại dữ liệu Vì vậy, hiệu năng vàtốc độ xử lý sẽ không cao

Quá trình xử lí các yêu cầu từ phía người dùng là việc làm không thể thiếu, việc

xử lý này đã làm giảm tốc độ mạng đi đáng kể

2.4 Những rủi ro của WAF

Năm 2008 dự án về WAF ra đời tính tới thời điểm này là đã hơn 2 năm (thamchiếu theo website: www.webappsecroadmap.com), có rất nhiều sản phẩm ra đờiđáp ứng đầy đủ các nhu cầu mà WAF mong muốn

Song bên cạnh đó, mạng Internet toàn cầu đang ngày càng phát triển như vũ bãokéo theo rất nhiều rủi ro tiềm ẩn mà các nhà nghiên cứu WAF vẫn chưa tìm racách nào ngăn chặn triệt để toàn diện nhất Trong một cuộc khảo sát tổng hợpcác rủi ro xảy ra trong môi trường Internet cho thấy có kết quả như sau:

Trang 27

Hình 2.1 Bảng đánh giá các kiểu tấn công WebsiteKết quả cho ta thấy, đa số các website bị tấn công đều bị những kẻ xấu sử dụng

và khai thác các lỗi về SQL injection, XSS Tưởng chừng các lỗi này rất đơngiản và dễ khắc phục, nhưng trên thực tế cho thấy sự đa dạng về các phươngthức tấn công, và sự uyển chuyển của các cách khai thác lỗi đã khuyến cho nhiềulỗi hổng được phát hiện

Năm 2009, tổ chức Positive Technologies – một tổ chức hàng đầu về bảo mậtcủa Nga đã tiến hành một cuộc “kiểm tra chất lượng” về các giải pháp WAF Sửdụng 2 công nghệ SQL Injection và Cross-site Script, nhóm nghiên cứu đã thửnghiệm thành công phương thức ByPass qua WAF gồm có:

SQL Injection – Normalization, HTTP Parameter Pollution HPP, Blind,

Signature ByPass: Sử dụng các tham số “truyền biến” của các hàm SQL truy vấn

được yêu cầu “trả về” nhằm mục tiêu tương tác tới dữ liệu truy cập “trái phép” từphía người thực hiện tấn cống hệ thống

Trang 28

Hình 2.2 HTTP Parameter Pollution HPP Cross-site Script HTTP Parameter Pollution HPP, Blind, Signature ByPass:Thực hiện việc tấn công thông qua sự phản hồi các yêu cầu từ phía người dùngkhi tương tác với hệ thống qua các đoạn mã tương tác sử dụng Javascript.

Hình 2.3: Cross-site Script HTTPVới kiểu tấn công này, mục đích của hacker không phải là server mà chính lànhững người dùng, những người sử dụng các dịch vụ của nhà cung cấp Ngườidùng không thể biết được là chuyện gì đã xảy ra với các thông tin cá nhân củamình bị lộ từ khi nào

Trang 29

Path Traversal, Local/Remote File Inclusion: Kỹ thuật “truyền biến” thông qua

trình duyệt thực thi một đoạn mã “trái phép” tấn công vào hệ thống

Hình 2.4: Path Traversal, Local/Remote File InclusionVới kiểu tấn công này, hacker có thể dễ dàng xem được những file của hệ thống

mà không có quyển truy cập Điều này rất nguy hiểm nếu không kiểm tra kỹ cácbiến trong quá trình xử lý dữ liệu Nó có thể làm lộ thông tin của server cũngnhư thông tin của người dùng trên server đó

2.5 Firewall Script

2.5.1 Khái niệm

Firewall Script cung cấp một tường lửa có thể được điều hành bởi người dùngtrên cả hai chia sẻ các máy chủ lưu trữ và máy chủ của riêng họ Nó có thể lànhững firewall được tích hợp sẵn trên các server như: Iptables, mod_security,ISA… Hay nó có thể là những đoạn script được tích hợp vào mã nguồn để chốnglại những hành động trái phép đang diễn ra

Firewall Script là một trong những loại tường lửa ứng dụng web Nó cũng là mộtloại WAF điển hình cho việc bảo vệ các website bây giờ Đặc biệt là các diễnđàn, các website tin tức của các công ty rất dễ bị kẻ xấu tấn công gây thiệt hạikhông nhỏ đến các tổ chức, cá nhân này

2.5.2 Chức năng của Firewall Script

Firewall Script có rất nhiều loại và khả năng chống lại các tấn công hay là khảnăng kiểm soát những hành động bất thường của mỗi Firewall Script là khácnhau Đối với một số Firewall Script có thể kiểm soát được luồng dữ liệu, chống

Trang 30

được các tấn công trên nhiều tầng của mô hình OSI như: Iptables Mặt khác, cónhững Firewall Script nhỏ gọn (chỉ có 1 hay một số file) cũng có chức năngchống lại nhiều tấn công: SQL injection, XSS, DoS, Spam nội dung…

Hiện nay, trên các diễn đàn thường sử dùng các loại Firewall Script PHP Đặcđiểm của nó là nhỏ, nhẹ, cài đặt dễ dàng và cũng thực sự tỏ ra hiệu quả để chốnglại các tấn công

Trang 31

Chương 3

MÔ ĐUN FIREWALL TÍCH HỢP CHO WEBSITE JOOMLA

Trang 32

Theo thống kê của trang web (www.webappsecroadmap.com) năm 2008 thì cótới 68% các trang web bị tấn công dựa vào lỗi SQL injection, 61% là bị tấn côngtheo XSS Đây là những lỗi rất cơ bản nhưng nó rất là nguy hiểm Nguyên nhânchủ yếu là do các nhà phát triển web chưa cẩn thận, chưa ý thức rõ tầm quantrọng của việc bảo vệ dự liệu của website hoặc sơ suất trong quá trình phát triểndẫn đến không kiểm tra kỹ dữ liệu đầu vào.

Joomla! là một framework dành cho các tổ chức, cá nhân dùng để giới thiệu tintức, giới thiệu về công ty, làm blog hoặc làm sử dụng vào thương mại điện tửnhư: bán hàng qua mạng Bản thân Joomla! cũng chưa có mô-đun nào dùngcho việc kiểm tra dữ liệu đầu vào trước khi tới các thành phần mở rộng Do đó,khi một người sử dụng cài những phần mở rộng không đảm bảo an toàn thì rất dễ

bị kẻ xấu lợi dụng và tấn công

Việc trang bị những sản phẩm chuyên dụng hay các sản phẩm đã được thươngmại hóa thì quá đắt Những sản phẩm tường lửa cho Joomla! có thể chống lạiđược kiểu tấn công này những không chống được các kiểu tấn công khác như:chống được SQL injection, XSS nhưng không chống được DoS hoặc upshell.Đối với những sản phẩm, những thiết bị chuyên dụng cấu hình rất phức tạp đốivới các doanh nghiệp vừa và nhỏ

Do đó em chọn giải pháp xây dựng một Firewall Script tích hợp vào Joomla! 1.5

để bảo vệ các tấn công cũng như làm sạch các dữ liệu trước khi các thành phầnkhác của Joomla! xử lý dữ liệu

Xfirewall là tường lửa ứng dụng web, hoạt động ở tầng Ứng dụng của mô hìnhOSI Nó có thể chống được nhiều kiểu tấn công tại tầng Ứng dụng như: HTTPFlood, SQL injection, XSS, up shell Ngoài ra, Xfirewall có nhiều chức năng bảo

vệ an toàn cho người quản trị như: thay đổi link admin, đặt password sử dụng.htpasswd, hay sử dụng master password để quản lí Xfirewall

Trang 33

Hiện nay có nhiều component cũng như plugin được viết ra với mục đích ngănchặn các tấn công từ bên ngoài vào hệ thống Song nhưng thành phần mở rộng(extension) trên còn có nhiều hạn chế Do đó Xfirewall được viết ra với mongmuốn có thể hạn chế tối đa thiệt hại cho máy chủ cũng như cho chính trang webđang được triển khai.

3.1 Xây dựng mô-đun Xfirewall

3.1.1 Luồng dữ liệu vào ra trong Joomla!

Khi người dùng truy cập vào website, tức là đã có kết nối giữa người dùng vàwebsite Giao diện mà người dùng nhìn thấy đó chính là do View được thể hiện

ra Mỗi một Component của Joomla! Có thể có môt hoặc nhiều view

Thông qua View người dùng có thể tương tác với webserver để sử dụng cácdịch vụ tiện ích của nó Quá trình tương tác đáp ứng yêu cầu của người dùngđược View chuyển tiếp cho Contrller

Hình 3.1 Mô tả luồng dữ liệu vào/ra trong Joomla!

Theo mô hình trên ta thấy:

1 Các yêu cầu từ người dùng đề được chuyển tới Controller

Trang 34

2 Controller có nhiệm vụ điều khiểu các yêu cầu đó để lấy ra các Modeltương ứng Việc Controller điều khiển như vậy để tránh tình trạng lấynhiều những dữ liệu không cần thiết, tránh server xử lý quá tải.

3 Nhiệm vụ của Model khi được Controller gọi tới là truy vấn vào CSDL

để lấy ra các dữ liệu cần thiết

4 Kết quả được trả về Controller sau khi Model đã truy vẫn CSDL xong

5 Nhiệm vụ tiếp theo của Controller là xác định View nào được hiển thị

và Layout nào được lấy ra

6 Thông qua dữ liệu trả về từ Model, View có nhiệm vụ trả lại kết quả

mà người dùng yêu cầu

Quá trình tương tác giữa Controller, Model, View, Layout đều dựa vào cácphương thức như là: getModel, getView hay getLayout, nhờ đó Controller biết làphải lấy những gì cần thiết khi có yêu cầu

3.1.2 Cách thức xây dựng một component trong Joomla!

Trong Joomla! 1.5, các chức năng đểu được chứa trong thư mục “components” ở

cả back-end và front-end Component ở back-end có nhiệm vụ quản lý chứcnăng bao gồm: thêm, xóa, sửa… Component ở front-end nhận các yêu cầu củangười dùng thông qua các View sẽ hiển thị các thông tin ứng với các chức năngcủa Component này

Để xây dựng một component trong Joomla! 1.5 thì cần phải tạo ra một thư mụctrong com_ten_chucnang ở phía back-end và front-end Trong đó, tiền tố “com_”

là bắt buộc phải có và đứng trước trong phần đặt tên component Tiếp đó là

“ten_chucnang”, tên này có thể tùy ý đặt Thông thường sẽ đặt theo tên chứcnăng mà người phát triển muốn xây dựng

Ví dụ dưới đây cho sẽ cho thấy rõ hơn về các thành phần tối thiểu của mộtcomponent trong Joomla!

Trang 35

Hình 3.2 Cấu trúc một compoment Joomla! 1.5 đơn giản

Ở đây là cấu trúc của một component có tên là “com_test” Các thành phần bắtbuộc cần phải có đó là:

- File test.php: Tên “test” không phải đặt một cách tùy ý mà phải đặttrùng với tên của thư mục không có tiền tố “com_” Mục đích là để lấy

ra tên chức năng khi người dùng yêu cầu

- File controller.php: File này sẽ điều khiển các Model, các View đượclấy ra thông qua các truy vấn của người dùng

- Thư mục “controllers”: Có thể có hoặc không thư mục này Ở đấy chứacác Controller có các chức năng khác nhau: test, application…

- Thư mục “models”: Thư mục này chứa một hay nhiều Model tùy vàongười phát triển thêm các chức năng vào Các file trong đấy phải có têngiống với tên của các Controller Mục đích là Joomla! dựa vào các tênfile này để đặt tên cho các class trong mỗi file

- Thư mục “views”: Trong đây chứa các View và Layout để hiển thị chongười dùng những dữ liệu mà họ yêu cầu Mỗi một View tương ứng

Trang 36

với một thư mục.Tên các thư mục trong View phải tương ứng với têncủa Model.

- Thư mục “views/test”: Chứa View test mặc định của component

- File “view.html.php”: File này gọi các hàm trong Model thông quaphương thức getModel để lấy các dữ liệu cần thiết

- Thư mục “tmpl”: Chứa các Layout

- File “default.php”: Là Layout mặc định sẽ được gọi khi Controllerchưa chỉ định đến bất kỳ một Layout nào trong View Nhiệm vụ củaLayout này là hiện thị dữ liệu ra bên ngoài

3.1.3 Các thành phần trong mô-đun Xfirewall

- File xfirewall.php: có nhiệm vụ để hệ thống có thể gọi các chức năngcủa các Controller

Trang 37

các View

$Xclass = 'XfirewallController'.$controller;

$controller = new $Xclass();

- File controller.php: mặc định hệ thống sẽ trỏ đến file này đển điềukhiển và gọi ra các chức năng nếu có Nếu có nhiều hơn một chức năng

có thể để các Controller vào trong thư mục controllers

parent:: construct();

}// điều khiển lấy các View, các Layout cần thiết Model cũng có thểđược lấy ở đây

function display(){

Trang 38

JRequest::setVar('view', 'cpanel');

JRequest::setVar('layout', 'default');

parent::display();

}}

- File toolbar.xfirewall.php: Tạo các thanh menu cho Xfirewall

Ví dụ: hàm tạo menu phần cấu hình Xfirewall

Trang 39

Hình 3.3 Các Controller của Xfirewall

Ví dụ: Controller điều khiển, quản lý nhật ký trang web

// lấy View và Model tương ứng để thực thi và hiển thị giao diện

Trang 40

Hình 3.4 Các Model trong XfirewallModel thực thi truy vấn tới CSDL và lấy các dữ liệu cần thiết mỗi khiController gọi đến.

Ví dụ: Model lấy các dữ liệu log từ CSDL

Ngày đăng: 09/04/2016, 09:48

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w