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

Nghiên cứu xây dựng website và một số biện pháp bảo mật

119 489 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 119
Dung lượng 7,3 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Nghiên cứu xây dựng website và một số biện pháp bảo mật

Trang 1

MỤC LỤC

MỤC LỤC 1

DANH MỤC HÌNH ẢNH 4

LỜI MỞ ĐẦU 8

CHƯƠNG I 10

TỔNG QUAN WEBSITE, CẤU TRÚC, CÁC PHƯƠNG PHÁP XÂY DỰNG, CÁC NGUY CƠ MẤT AN TOÀN 10

1.1.Kiến trúc, thành phần và hoạt động của website 10

1.1.2.1 Dưới góc độ kỹ thuật 10

1.1.2.2 Dưới góc độ chức năng 12

1.1.3.1 CMS (Content Management System) 12

1.1.3.2 Webmail 14

1.1.3.3 Shopping Carts 14

1.1.3.4 Portal 15

1.1.4.1 Thành phần 15

1.1.4.2 Mô tả hoạt động 17

1.2.Các điểm yếu an ninh mạng và nguy cơ mất an toàn 18

CHƯƠNG II 32

KẾT HỢP JOOMLA VÀ VIRTUEMART ĐỂ XÂY DỰNG WEBSITE ỨNG DỤNG 32

2.1 Tổng quan về Joomla! Các thành phần chức năng, cài đặt và sử dụng website 32

2.1.3.1 Download & Upload bộ cài đặt Joomla! 35

2.1.3.2 Chọn ngôn ngữ cài đặt 35

2.1.3.3 Kiểm tra cấu hình hệ thống 36

Trang 2

2.1.3.5 Thiết lập các thông số để kết nối tới Cơ sở dữ liệu 38

2.1.3.6 Thiết lập các thông số FTP 38

2.1.3.7 Thiết lập cấu hình site Joomla 39

2.1.4.1 Front-end 41

2.1.4.2 Back-end 42

2.1.5.1 Template 43

2.1.5.2 Global Configuration 45

2.1.5.3 User Manager 48

2.1.5.4 Media Manager 49

2.1.5.6 Các thành phần mở rộng (Extension) 50

2.1.6 1 Thêm một Section 55

2.1.6.2 Thêm một Category 56

2.1.6.3 Thêm một bài viết (Content Item) 58

2.2 VỉruteMart 59

2.2.2.1 Cấu hình Virtuemart 60

2.2.2.2 Quản lý User 64

2.2.2.3 Quản lý thông tin cửa hàng 65

2.2.2.4 Quản lý danh sách danh mục sản phẩm 67

2.2.2.5 Quản lý danh sách sản phẩm 68

2.2.2.6 Quản lý danh sách hóa đơn bán hàng 71

2.2.2.7 Quản lý đại lý 72

2.2.2.8 Xem báo cáo 72

2.2.2.9 Quản lý thuế 73

2.2.2.10 Quản lý nhà sản xuất 74

2.3.Website bán hàng trực tuyến 75

2.4.Một số lỗi website Joomla thường gặp 81

Trang 3

CHƯƠNG III 88

MỘT SỐ GIẢI PHÁP AN TOÀN CHO WEBSITE 88

3.1.Các lỗ hổng bảo mật Joomla! Và giải pháp khắc phục 88

91

3.2 Các giải pháp phòng thủ mềm cho website Joomla 96

3.2.1 Bảo mật cho file "configuration.php" khỏi các truy nhập trái phép 96

3.2.2.1 Bảo mật trang quản trị bằng cookie 97

3.2.2.2 Bảo mật trang quản trị bằng mật khẩu 98

3.3 Các giải pháp công nghệ để bảo vệ ứng dụng web 102

3.4 Demo tận dụng lỗ hổng bảo mật của Joomla 111

KẾT LUẬN 117

TÀI LIỆU THAM KHẢO 119

Tiếng Việt 119

Tiếng Anh 119

Trang 4

Hình 1- 1 Kiến trúc 3 lớp của web application 16

Hình 1- 2 Kiến trúc n lớp của web application 17

Hình 1- 3 Sử dụng Proxy để thay đổi tham số 19

Hình 1- 4 Quản lý kiểm soát truy cập tài nguyên trung tâm 21

Hình 1- 5 Tấn công XSS 23

Hình 1- 6 Lỗi tràn bộ đệm 24

Hình 1- 7 Lỗi SQL injection 26

Hình 1- 8 Báo lỗi thiếu an toàn 27

Hình 1-9 Lưu trữ thiếu an toàn 28

Hình 1-10 Tấn công từ chối dịch vụ 30

Hình 2-1 Cấu trúc 1 website Joomla 33

Hình 2-2 Sự phát triển của Joomla 34

Hình 2-3 Cài đặt Joomla – chọn ngôn ngữ 36

Hình 2-4 Kiểm tra cấu hình hệ thống 37

Hình 2-5 Thông tin bản quyền 37

Hình 2-6 Chọn cơ sở dữ liệu 38

Hình 2-7 Thiết lập thông số FTP 39

Hình 2-9 Hoàn thành quá trình cài đặt 41

Hình 2-10 Font-end 42

Hình 2-11 Back-end 43

Hình 2-12 Cài đặt phần mở rộng 44

Hình 2-13 Cài đặt phần mở rộng 2 44

Trang 5

Hình 2-14 Cài đặt cấu hình Template 45

Hình 2-15 Configuration 45

Hình 2-17 Global Configuration System 47

Hình 2-18 User Manager 48

Hình 2-19 Media Manager 49

Hình 2-21 Các vị trí Module trên template 52

Hình 2-22 Cài đặt Extension 54

Hình 2-23 Cách tổ chức nội dung trong Joomla 55

Hình 2-24 Virtuemart 59

Hình 2-26 Giao diện Virtuemart simple layor 60

Hình 2-27 Giao diện Virtuemart mở rộng 60

Hình 2-28 Configuration 61

Hình 2-29 Quản lý user 65

Hình 2-30 Quản lý thông tin chi tiết cửa hàng 65

Hình 2-31 Quản lý sản phẩm 67

Hình 2-32 Danh sách sản phẩm 68

Hình 2-32 Thêm mới sản phẩm 68

Hình 2-33 Nội dung sản phẩm 69

Hình 2-34 Hiển thị sản phẩm 70

Hình 2-35 Trạng thái sản phẩm 70

Hình 2-36 các thông số sản phẩm 70

Hình 2-37 Hình ảnh sản phẩm 71

Hình 2-38 Quản lý danh sách đơn đặt hàng 71

Hình 2-39 Quản lý đại lý 72

Trang 6

Hình 2-41 Thêm thuế suất 73

Hình 2-42 Quản lý nhà sản xuất 74

Hình 2-43 Menu chính 75

Hình 2-44 Giao diện đa ngôn ngữ 75

Hình 2-45 Giỏ hàng 76

Hình 2-46 Chức năng tìm kiếm 76

Hình 2-47 Danh mục sản phẩm 77

Hình 2- 48 Thống kê truy cập 78

HÌnh 2-49 Module thăm dò ý kiến 78

Hình 2-51 Giao diện website bằng tiếng Việt 79

Hình 2-52 Giao diện website bằng tiếng Anh 80

Hình 3-1 : Tiền tố mặc định ‘jos_’ khi cài đặt cơ sở dữ liệu 89

Hình 3-2 : tiền tố ‘jos_’ trong các bảng cơ sở dữ liệu 90

Hình 3-3 Export cơ sở dữ liệu 91

Hình 3-4 Save file cơ sở dữ liệu 91

Hình 3-5 Replace toàn bộ tiền tố ‘jos_’ 91

Hình 3-6 : Tạo cơ sở dữ liệu mới ‘tientomoi’ 92

Hình 3-7 : Import cơ sở dữ liệu 92

Hình 3-8 : Cơ sở dữ liệu mới 93

Hình 3-9 : config cơ sở dữ liệu 94

Hình 3-10 Giải pháp bảo vệ cho doanh nghiệp vừa và nhỏ 103

Hình 3-11 Giải pháp bảo vệ cho doanh nghiệp lớn 104

Hình 3- 12 : Giải pháp bảo vệ cho Web Security Portal 106

Trang 7

Hình 3-13 Giải pháp bảo vệ cho ứng dụng web - hosting 109

Trang 8

LỜI MỞ ĐẦU

Ngày nay thương mại điện tử đang phát triển nhanh chóng và mạnh mẽ,trở thành xu thế mới thay thế các hình thức kinh doanh truyền thống Rấtnhiều doanh nghiệp hiện đang sử dụng ứng dụng web để cung cấp dịch vụthương mại trực tuyến, kết nối khách hàng, đối tác và nhân viên một cáchhiệu quả nhất

Bên cạnh đó là những nguy cơ đe dọa tới sự an toàn của hệ thống và dữliệu Đa số ứng dụng web có thể bị những lỗi mà các phương cách phòngchống mạng thông thường không bảo vệ được Lỗi và lỗ hổng trong mãnguồn của ứng dụng web có thể gây ra những hậu quả nghiêm trọng như lộ

dữ liệu nhạy cảm, gây tổn thương đến toàn hệ thống hạ tầng công nghệ thôngtin Sự cố bảo mật trong ứng dụng web có thể ảnh hưởng đến danh tiếng củacông ty, mất mát về mặt tài chính, ảnh hưởng đến uy tín với khách hàng vàcác vấn đề liên quan đến ràng buộc pháp lý

Khi một tổ chức triển khai trực tuyến một ứng dụng web, điều nàyđồng nghĩa với việc cho phép bất kỳ ai có kết nối Internet truy cập vào ứngdụng qua giao thức HTTP Những cuộc tấn công nằm trong những truy cậpHTTP này có khả năng vượt qua tường lửa, hệ thống lọc tầng mạng, các lớpbảo vệ hệ thống, và cả hệ thống phát hiện xâm nhập Những thiết bị trênkhông thể phát hiện được những cuộc tấn công này vì các mã tấn công đềunằm trong các gói giao thức HTTP hợp lệ Ngay cả những trang Web có mức

độ bảo mật cao sử dụng SSL cũng đều cho phép tất cả các dữ liệu đi qua màkhông hề kiểm tra tính hợp lệ của những dữ liệu này Điều này có nghĩa làbảo mật ứng dụng web là một yếu tố quan trọng nằm trong hệ thống phòngthủ ngọai vi, cùng với tường lửa và các thiết bị bảo mật khác Vì vậy việcthực hiện nghiên cứu xây dựng website và xây dựng các giải pháp an toàn anhninh cho web là đề tài rất cấp thiết và có ý nghĩa thực tiễn

Trang 9

Đề tài được thực hiện với mục đích xây dựng được website thương mạiđiện tử với đầy đủ các chức năng cần thiết, bên cạnh đó phân tích các điểmyếu an ninh trong các ứng dụng web, đồng thời sử dụng công cụ dò quét,đánh giá điểm yếu an ninh Acunetix, để đánh giá an ninh toàn diện cho cácứng dụng web nhằm phát hiện các điểm yếu và đề xuất các phương án khắcphục để giảm thiểu rủi ro do bị tấn công.

Nội dung đồ án gồm 3 chương :

Chương I : Tổng quan về website, các thành phần và cấu trúc tạo nênwebsite, các phương pháp xây dựng website Các nguy cơ mất an toàn đối vớiwebsite

Chương II : Sử dụng các kỹ năng lập trình, nghiên cứu và sử dụng phầnmềm Joomla, kết hợp với thành phần mở rộng Virtuemart để phân tích,nghiên cứu và xây dựng một website hoàn chỉnh, với chức năng là mộtwebsite bán hàng trực tuyến

Chương III : Bảo mật cho website Phân tích các nguy cơ, lỗ hổng anninh mạng để đưa ra các biện pháp bảo mật Thử nghiệm khai thác một số lỗicủa website để tiến hành tấn công Cách khắc phục những lỗ hổng bảo mật,giúp cho các nhà quản trị, người thiết kế, sử dụng và bảo trì có một giải pháptối ưu về an toàn khi thiết kế website và các ứng dụng

Em xin phép được gửi lời cám ơn tới các Thầy, Cô giáo Học viện KỹThuật Mật Mã đã truyền đạt những kiến thức quý báu cho em trong suốt quátrình học tập Đặc biệt, em xin bày tỏ lòng chân thành sâu sắc đến thầy

TS Trần Đức Sự người đã tận tình hướng dẫn và giúp đỡ em trong quá trìnhlàm đồ án tốt nghiệp

Xin cám ơn tất cả bạn bè đã và đang động viên, giúp đỡ em trong quátrình học tập và hoàn thành tốt đồ án tốt nghiệp này

Trang 10

TỔNG QUAN WEBSITE, CẤU TRÚC, CÁC PHƯƠNG PHÁP

XÂY DỰNG, CÁC NGUY CƠ MẤT AN TOÀN

1.1.Kiến trúc, thành phần và hoạt động của website

1.1.1 Khái niệm

Website là một tập hợp các trang web (web pages) bao gồm văn bản,hình ảnh, video, flash v.v thường chỉ nằm trong một tên miền (domainname) hoặc tên miền phụ (subdomain) Trang web được lưu trữ ( webhosting) trên máy chủ web (web server) có thể truy cập thông qua Internet

Website đóng vai trò là một văn phòng hay một cửa hàng trên mạngInternet – nơi giới thiệu thông tin về doanh nghiệp, sản phẩm hoặc dịch vụ do

doanh nghiệp cung cấp… Có thể coi website chính là bộ mặt của doanh nghiệp, là nơi để đón tiếp và giao dịch với các khách hàng, đối tác trên

là trình duyệt Web linh hoạt và các ứng dụng Web

- Web browser (trình duyệt web ) là một phần mềm ứng dụng chophép người sử dụng xem và tương tác với các văn bản, hình ảnh, đoạn phim,

Trang 11

nhạc, trò chơi và các thông tin khác ở trên một trang web của một địa chỉ webtrên mạng toàn cầu hoặc mạng nội bộ Văn bản và hình ảnh trên một trangweb có thể chứa siêu liên kết tới các trang web khác của cùng một địa chỉ webhoặc địa chỉ web khác Trình duyệt web cho phép người sử dụng truy cập cácthông tin trên các trang web một cách nhanh chóng và dễ dàng thông qua cácliên kết đó Trình duyệt web đọc định dạng HTML để hiển thị, do vậy mộttrang web có thể hiển thị khác nhau trên các trình duyệt khác nhau.

Một số trình duyệt web hiện nay cho máy tính cá nhân baogồm Internet Explorer, Mozilla Firefox, Safari, Opera, Avant Browser,Konqueror, Lynx, Google Chrome, Flock, Arachne, Epiphany, K-Meleon vàAOL Explorer

- Ứng dụng Web là một ứng dụng chủ/khách sử dụng giao thứcHTTP để tương tác với người dùng hay hệ thống khác

Ứng dụng web được chia thành hai loại chính: ứng dụng web Public và ứngdụng web Private

• Ứng dụng web Public: là website dùng để quảng bá thông tin, cung cấp

và trao đổi thông tin với với bên ngoài như các website thương mại điện tử, cácwebsite của các công ty chứng khoán, các ngân hàng,…

• Ứng dụng web Private: là các website cung cấp và trao đổi thông tintrong một tổ chức, doanh nghiệp và các đối tác chiến lược,… Các website nàythường dùng để cung cấp thông tin cho các văn phòng, chi nhánh, các nhân viên

đi công tác hoặc làm việc tại nhà và đôi khi là cho các đối tác chiến lược kết nốiqua môi trường internet

- Web Server (máy chủ web) là máy chủ có dung lượng lớn, tốc

độ cao, được dùng để chứa những website đã được thiết kế cùng với nhữngthông tin liên quan khác (các mã Script, các chương trình, và các fileMultimedia), Web Server có khả năng gửi đến máy khách những trang Web

Trang 12

được thiết kế để gửi các file đến trình duyệt Web và các giao thức khác.

1.1.2.2 Dưới góc độ chức năng

Ứng dụng Web là các chương trình máy tính cho phép người dùngwebsite đăng nhập, truy vấn vào/ra dữ liệu qua mạng Internet trên trình duyệtWeb yêu thích của họ Dữ liệu sẽ được gửi tới người dùng trong trình duyệttheo kiểu thông tin động (trong một định dạng cụ thể, như với HTML thìdùng CSS) từ ứng dụng Web qua một Web Server

Các ứng dụng Web truy vấn máy chủ chứa nội dung (chủ yếu trên cơ

sở dữ liệu lưu trữ nội dung) và tạo tài liệu Web động để phục vụ yêu cầu củamáy khách (chính là người dùng website) Tài liệu được tạo trong kiểu địnhdạng tiêu chuẩn hỗ trợ trên tất cả mọi trình duyệt (như HTML, XHTML).JavaScript là một dạng script client-side cho phép yếu tố động có ở trên từngtrang (như thay đổi ảnh mỗi lần người dùng di chuột tới) Nó dịch và chạy tất

cả script, lệnh… khi hiển thị trang web và nội dung được yêu cầu Wikipedia,

bộ bách khoa toàn thư trực tuyến lớn nhất thế giới hiện nay định nghĩa Webbrowser là “máy khách chung cho mọi ứng dụng web”

Một cải tiến đáng kể khác trong quá trình xây dựng và duy trì các ứngdụng Web là chúng có thể hoạt dộng mà không cần quan tâm đến hệ điềuhành hay trình duyệt chạy trên các máy client Ứng dụng Web được triển khai

ở bất cứ nơi nào có Internet, và hầu hết không đòi hỏi yêu cầu cài đặt chongười dùng cuối

1.1.3Một số ứng dụng phổ biến của website

1.1.3.1 CMS (Content Management System)

CMS là gì? CMS – Content Management System tạm dịch là thốngquản lý nội dung.CMS được sử dụng để tạo và chỉnh sửa nội dung.” Nộidung” ở đây là bao gồm hình ảnh, video, file âm thanh, tài liệu đính kèm của

Trang 13

một trang web Hay về mặt trình bày có thể là quản lý các menu, quản lý cáccategory, bài viết, thông tin hiển thị trên web.

Ứng dụng của CMS? CMS được sử dụng với nhiều ứng dụng : quản lývăn bản , quản lý người dung, quản lý các tài liệu, theo dõi, xuất bản nộidung, tìm kiếm, chỉnh sửa nội dung.CMS được thiết kế ẩn so với người dungthông thường

Các CMS phổ biến

Trong thế giới thiết kế web, có rất nhiều loại cms từ các loại cms trảphí đến các CMS mã nguồn mở do cộng đồng xây dựng Sau đây là sự sosánh những CMS mã nguồn mở đình đám, đã trưởng thành, phát triển ổn địnhnhư WordPress, Joomla, Drupal

- Tại Việt Nam, Joomla đứng vị trí nhất trong cuộc thi hệ quản trị nội

dung mã nguồn mở xuất sắc nhất Một vài ví dụ website sử dụngjoomla như :

• Ngân hàng Đông Á SeaBank (seabank.com.vn) – 25 Trần HưngĐạo – Hà Nội

• Việt báo (vietbao.vn ) – website đứng top 100 site hàng đầu ViệtNam về lượng truy cập, hệ thống SEO tốt và cập nhật tin nhanh

- Tại nhiều quốc gia trên thế giới, Drupal cũng là một CMS có vị trí

rất cao sử dụng mã nguồn mở Ví dụ

• Các web-site của chính phủ: Web-site Nhà Trắng, Phòng thươngmại Mỹ,chính phủ Bỉ…

• Các web-site công nghệ: Nokia, Symbian, Symantec, AT&T…

• Các web-site giải trí: Grammy, Christina Aguilera, RobbieWilliams,Beyonce…

• Các báo điện tử: Belgian men’s magazine, RussianForbes, Information Week, BBC…

• Các web-site trường đại học: Harvard, Portland StateUniversity, MIT,Strayer University, Stanford…

Trang 14

site lớn.

- Một CMS nổi tiếng khác là WordPress đang phát triển mạnh mẽ.

Được ứng dụng nhiều với vai trò blog, tạp chí

Ví dụ như : People.com – tạp chí people nổi tiếng

Mashable.com – tạp chí về thiết kế và tin công nghệ

1.1.3.2 Webmail

Thuật ngữ Email trên nền web và Webmail ám chỉ việc hiện thực một

chương trình xem e-mail dưới dạng một ứng dụng web cho phép người dùngtruy cập e-mail của họ thông qua một trình duyệt web, thay vì sử dụngchương trình xem email nên nền máy tính để bàn như Microsoft Outlook,Mozilla Thunderbird hay Eudora Một webmail khách thường được cung cấpbởi dịch vụ email, cho phép khách hàng của nó truy cập thư được lưu trữ trênmáy chủ của dịch vụ, nhưng cũng có những ngoại lệ

Dịch vụ Webmail đầu tiên là Hotmail Những nhà cung cấp Webmailphổ biến nhất hiện nay là Yahoo! Mail, Windows Live Hotmail và Gmail.Những nhà cung cấp Webmail khác bao gồm Inbox.com, AIM Mail,Mail.com, Fastmail.FM, Lycos Mail, BlueTie, Everyone.net, and LuxSci.Những phần mềm Webmail thương mại bao gồm Outlook Web Access(OWA), Laszlo Mail, Atmail and SmarterMail Phần mềm Webmail mãnguồn mở bao gồm Horde IMP, OpenWebmail (dựa trên NeoMail),RoundCube, Zimbra, và SquirrelMail

1.1.3.3 Shopping Carts

là một loại ứng dụng web dùng cho việc mua sắm trực tuyến, Cácshopping cart không yêu cầu phần mềm giao dịch an toàn Chúng thực tế làmột phần của site ảo để bán hàng trực tuyến, Các shopping cart sử dụng các

Trang 15

cookie để xác định danh sách các sản phẩm mà khách hàng đã chọn mua Cóhai cách mà một công ty có thể thiết lập cookie Cách thứ nhất là sao lưu từnggiao dịch shopping cart vào một cookie ở máy tính của khách hàng Cách thứhai là gắn một ID khách hàng và lưu ID này ở trong một cookie

1.1.3.4 Portal

Portal hay cổng thông tin điện tử được hiểu như là một trang web xuấtphát mà từ đó người sử dụng có thể dễ dàng truy xuất các trang web và cácdịch vụ thông tin khác trên mạng máy tính Lợi ích lớn nhất mà portal đem lại

là tính tiện lợi, dễ sử dụng, Thay vì phải nhớ vô số các địa chỉ khác nhau chocác mục đích sử dụng khác nhau, thì với một web portal như Yahoo, ngườidùng chỉ cần nhớ yahoo.com Hiện nay ở Việt nam, các cơ quan nhà nước,các công ty vẫn sử dụng loại ứng dụng web này Một vài Portal tiêu biểunhư:

Portal của Mobifone: http://www.mobifone.com.vn/web/vn/

Hay Portal của chính phủ:

http://www.chinhphu.vn/portal/page?

_pageid=517,1&_dad=portal&_schema=PORTAL

1.1.4 Kiến trúc của ứng dụng web

1.1.4.1 Thành phần

Hình bên dưới minh họa chi tiết mô hình ứng dụng Web ba lớp :

+ Lớp đầu tiên Presentation layer là trình duyệt Web hoặc giao diện ngườidùng

+ Lớp thứ hai Business logic layer là công nghệ kỹ thuật tạo nội dung độngnhư Java servlets (JSP) hay Active Server Pages (ASP)

+Lớp thứ ba là Data access layer-cơ sở dữ liệu chứa nội dung (như tin tức) và

dữ liệu người dùng (như username, password, mã số bảo mật xã hội, chi tiếtthẻ tín dụng)

Trang 16

Hình 1- 1 Kiến trúc 3 lớp của web application

Lớp trình bày (Prensentation layer)

Gồm các thành phần giao diện đồ họa người dùng (GUI – Graphic UserInterface) chuẩn giúp hiển thị dữ liệu cho người dùng, ngoài ra còn có thể cóthêm các ứng dụng tạo bố cục cho trang web Nó phải hoạt động cùng với lớpbusiness logic để xử lý việc truyền dữ liệu cho người dùng xem và sử dụng.Lớp này có thể nói chuyện trực tiếp với lớp dữ liệu Data layer

Lớp ứng dụng (Bussiness logic layer)

Là nơi xử lý của ứng dụng Web Nó sẽ xử lý thông tin người dùng yêu cầu, đưa ra quyết định, gửi kết quả đến “lớp trình bày” Lớp này thườngđược cài đặt bằng các kỹ thuật lập trình như CGI, Java, NET, PHP ,được triển khai trên các trình chủ như Apache, IIS…

Lớp dữ liệu (Data access layer)

Thường là các hệ quản trị dữ liệu (DBMS) chịu trách nhiệm quản lýcác file dữ liệu và quyền sử dụng Lớp này là optional (ứng dụng đơn giảnkhông có tier này), chỉ hoạt động với dữ liệu và truy cập đến dữ liệu Ví dụ vềlớp này:

• Microsoft SQL Server

Trang 17

• Oracle Database Server

Hình 1- 2 Kiến trúc n lớp của web application

Tùy theo các tác vụ của chương trình được cài đặt mà nó xử lý, tínhtoán, kết nối đến cơ sở dữ liệu, lưu các thông tin do trình khách gửi đến…và

từ đó trả về cho trình khách 1 luồng dữ liệu có định dạng theo giao thứcHTTP, nó gồm 2 phần:

• Header mô tả các thông tin về gói dữ liệu và các thuộc tính, trạngthái trao đổi giữa trình duyệt và WebServer

• Body là phần nội dung dữ liệu mà Server gửi về Client, nó có thể làmột file HTML, một hình ảnh, một đoạn phim hay một văn bản bất kì

Với firewall, luồng thông tin giữa trình chủ và trình khách là luồngthông tin hợp lệ Vì thế, nếu hacker tìm thấy vài lỗ hổng trong ứng dụng

Trang 18

đó, các kĩ thuật tấn công vào một hệ thống mạng ngày nay đang dần tậptrung vào những sơ suất (hay lỗ hổng) trong quá trình tạo ứng dụng củanhững nhà phát triển Web hơn là tấn công trực tiếp vào hệ thống mạng, hệđiều hành Tuy nhiên, hacker cũng có thể lợi dụng các lỗ hổng Web để mởrộng sự tấn công của mình vào các hệ thống không liên quan khác

1.2.Các điểm yếu an ninh mạng và nguy cơ mất an toàn

Đi kèm với những lợi ích về kinh tế và thời gian cũng nảy sinh nhiềuvấn đề về an toàn đối với các ứng dụng trực tuyến Chính vì sự tiện dụng vàcông khai như vậy nên nó sẽ là đối tượng dễ bị tấn công của các Hacker ởkhắp mọi nơi Những dữ liệu nhạy cảm, bí mật, các tiến trình quan trọng sẽ làmục tiêu bị tấn công Đó là lý do tại sao ở Việt Nam chưa nhiều tổ chức,doanh nghiệp đưa ứng dụng trực tuyến trên nền web để thực hiện các nghiệp

vụ quan trọng dù họ rất mong muốn bởi thực tế họ rất sợ bị tấn công, gâythiệt hại nghiêm trọng về tài chính, hoạt động, hình ảnh của tổ chức

Hiện nay có rất nhiều điểm yếu của ứng dụng dạng này mà các hacker

có thể khai thác

1.2.1 Dữ liệu đầu vào không được kiểm tra

Ứng dụng Web sử dụng dữ liệu đầu vào trong các truy cập HTTP (hoặctrong các tập tin) nhằm xác định kết quả phản hồi Tin tặc có thể sửa đổi bất

kỳ phần nào của một truy xuất HTTP, bao gồm URL, querystring, headers,cookies, form fields, và thậm chí field ẩn (hidden fields), nhằm vượt qua các

cơ chế bảo mật Các tấn công phổ biến dạng này bao gồm:

• Chạy lệnh hệ thống tùy chọn

• Cross site scripting

• Lỗi tràn bộ đệm

Trang 19

• Tấn công Format string

• SQL injection

• Cookie poisoning

• Sửa đổi field ẩn

Một số Web site bảo vệ chống lại loại tấn công này bằng cách thiết lập

bộ lọc dữ liệu đầu vào Vấn đề nan giải là có rất nhiều cách để mã hóa(encode) dữ liệu, và những phương cách mã hóa này không giống như cáccách mã hóa thông thường khác ở chỗ là nó dễ dàng được giải mã Tuy vậy,những nhà lập trình viên thường quên giải mã tất cả các tham số trước khi sửdụng chúng Tham số cần phải được chuyển đổi đến dạng đơn giản nhất trướckhi được kiểm tra, nếu không, dữ liệu xấu đầu vào có thể được mã hóa ẩn vàvượt qua tầng bảo vệ của các module kiểm tra dữ liệu

Một số lượng lớn ứng dụng chỉ sử dụng các cơ chế lọc phía trình duyệt

để kiểm tra dữ liệu đầu vào Các cơ chế kiểm tra phía trình duyệt rất dễ dàngđược vượt qua, và ứng dụng web xem như không được bảo vệ bởi cơ chế này.Tin tặc có thể tạo ra các truy xuất HTTP không thông qua trình duyệt bằngcách sử dụng các công cụ như telnet, truy xuất thẳng đến cổng 80 của máychủ web Kiểm tra dữ liệu ở phía máy trình duyệt có lợi điểm về hiệu suất vàtính dễ sử dụng, tuy nhiên cơ chế này không cung cấp bất cứ lợi điểm gì vềbảo mật Kiểm tra dữ liệu ở phía server đóng vai trò thiết yếu trong việc ngăncản những cuộc tấn công dạng sửa đổi tham số đầu vào Khi các cơ chế bảo

vệ ở server đã được thiết lập, cơ chế bảo vệ phía trình duyệt có thể được sửdụng nhằm giảm bớt dung lượng các dữ liệu không hợp lệ đến máy chủ

Hình 1- 3 Sử dụng Proxy để thay đổi tham số

Trang 20

công ứng dụng web Trước tiên, hacker thiết lập một proxy đứng giữa trìnhduyệt và máy chủ ứng dụng web Proxy này có khả năng chặn các gói dữ liệutrước khi chuyển đến máy chủ, do đó cho phép hacker sửa đổi dữ liệu truycập và chèn các mã tấn công trước khi gửi đến ứng dụng web

Những cuộc tấn công dạng này đang có xu hướng ngày càng phổ biếnhơn do số lượng các công cụ hỗ trợ các chức năng tạo tham số bất kỳ, tạo mãtấn công, tấn công brute force đang ngày càng tăng Hậu quả cuộc việc sửdụng các tham số không được kiểm tra không nên được xem nhẹ Một sốlượng lớn các cuộc tấn công sẽ gây khó khăn cho nhà lập trình web nếu họkhông có một hệ thống tập trung kiểm tra tính hợp lệ của tất cả các truy xuấtHTTP

1.2.2 Lỗi kiểm soát truy cập nguồn tài nguyên

Những giới hạn về quyền truy cập tài nguyên của người sử dụng khôngđược thi hành đúng Tin tặc có thể tận dụng những lỗi này nhằm truy cập vàotài khoản của người khác, xem các tập tin nhạy cảm, hoặc thi hành nhữngchức năng không cho phép

Kiểm soát truy cập tài nguyên (authorization), là cơ chế mà ứng dụngweb cho phép truy cập đến nội dung, tính năng ứng dụng cho một số người sửdụng và từ chối truy cập cho một số người sử dụng khác Những kiểm tra nàyđược thực hiện sau quá trình xác thực, và quản lý các quyền truy cập màngười sử dụng được phép Kiểm soát truy cập bề ngoài tưởng chừng là mộtvấn đề đơn giản nhưng thực tế là một vấn đề rất khó được thi hành đầy đủ.Một mô hình quản lý truy cập tài nguyên cho ứng dụng web cần được thiết kếtheo sát các nội dung và hàm chức năng của một web site cung cấp

Trang 21

Hình 1- 4 Quản lý kiểm soát truy cập tài nguyên trung tâm

Những nhà lập trình viên thường không đánh giá được mức độ khókhăn trong việc xây dựng một cơ chế quản lý kiểm soát truy cập dữ liệu Đa

số những chức năng này không đựơc thiết kế từ lúc đầu mà được xây dựngkèm theo tùy tính năng của ứng dụng Vì vậy, các chức năng kiểm soát đượcxây dựng ở khắp các module khác nhau trong mã nguồn Khi ứng dụng đượcphát triển xong và đưa và triển khai, các mã kiểm soát này sẽ trở nên khôngthống nhất và gây ra nhiều lỗ hổng nghiêm trọng khó phát hiện được

1.2.3 Lỗi liên quan đến quá trình quản lý xác thực và phiên truy cập

Quá trình xác thực và quản lý phiên truy cập không được bảo vệ tốt cóthể dẫn đến việc thông tin tài khoản bị mất cắp

Quản lý xác thực và phiên truy cập bao gồm tất cả các yếu tố quản lýxác thực người sử dụng và các phiên truy cập Xác thực người dùng là mộtyếu tố quan trọng trong quy trình này, nhưng ngay cả những cơ chế xác thựcmạnh nhất vẫn có thể bị mắc những lỗi liên quan đến các chức năng quản lý

Trang 22

duyệt, cập nhật tài khỏan, và những hàm chức năng khác.

Xác thực người dùng trên ứng dụng web thường bao gồm sử dụng mộtusername và password Những phương pháp xác thực khác mạnh hơn baogồm các giải pháp phần cứng hoặc mềm dựa trên các token mã hóa hoặc dùngphương pháp sinh trắc học (biometrics) Tuy nhiên những phương pháp này

có phần hạn chế do giá thành cao Một số lượng lớn lỗi ứng dụng trong cáchàm quản lý tài khoản và phiên truy cập có thể dẫn đến mối nguy cơ lộ tàikhỏan người sử dụng và thậm chí tài khỏan của người quản trị

Ứng dụng web thường phải theo dõi và duy trì phiên truy cập của ngườidùng nhằm phân biệt các truy cập từ người dùng khác nhau Giao thức HTTPkhông cung cấp khả năng này và do đó ứng dụng web phải tự tạo cơ chế này.Thường thì, môi trường phát triển ứng dụng cung cấp cơ chế quản lý phiêntruy cập (thường là dưới hình thức cookie token), tuy nhiên, đa số các nhà lậptrình nghiêng về phát triển cơ chế riêng của họ Trong cả hai trường hợp, nếutoken quản lý phiên truy cập không được bảo vệ, tin tặc có thể ăn cắp tokentruy cập tài khoản của người khác

1.2.4 Lỗi Cross Site Scripting (XSS)

Lỗi Cross-site scripting (thường được gọi tắt là XSS) xảy ra khi mộtứng dụng web bị lợi dụng để gửi dữ liệu xấu (thường là đoạn mã script) đếntrình duyệt của người sử dụng Những lỗ hổng này rất phổ biến và xảy ratrong bất cứ phần nào của ứng dụng web có sử dụng dữ liệu từ người dùngtrong các giá trị phản hồi mà không kiểm tra tính hợp lệ

Một tin tặc có thể sử dụng lỗ hổng này để gửi các đoạn mã đến ngườidùng Trình duyệt trong máy người dùng không thể biết được nên tin haykhông tin đoạn mã nào, và sẽ thi hành đoạn script này Bởi vì trình duyệt tinrằng đoạn mã đến từ một nguồn tin tưởng, đoạn mã script có thể truy cập đến

Trang 23

cookies, session tokens, hoặc bất kỳ thông tin nhạy cảm nào được lưu lạitrong trình duyệt có liên quan đến trang web đang truy cập Những đoạn mãnày còn có thể sửa đổi nội dung trang web

Hậu quả của tấn công dạng XSS có thể rất nguy hiểm, bao gồm lộsession cookie, cho phép tin tặc chiếm quyền sở hữa tài khoản Những hậuquả khác bao gồm: lộ các tập tin của người dùng, cài đặt các chương trìnhtrojan, di chuyển người sử dụng đến trang web khác, sửa đổi nội dung trangweb nhằm đánh lừa người dùng

Hình 5 mô tả một ví dụ tấn công dạng cross site scripting với hậu quả làkhách hàng bị lừa truy cập vào trang web giả mạo nhằm ăn cắp tài khoảnkhách hàng:

http://www.bank-that.com/dichvu.asp?url=http://www.bank-gia.com

Trang 24

vào link

Khi bấm vào link, thay vì truy cập vào ngân hàng thật, trình duyệt của kháchhàng được chuyển tự động đến trang web ngân hàng giả do hacker tạo sẵntrông giống như ngân hàng thật

độ rất cao để có thể viết đoạn mã khai thác

Hình 1- 6 Lỗi tràn bộ đệm

Hình 6 mô tả một cuộc tấn công tràn bộ đệm, hacker gửi đến ứng dụngweb một truy cập với gói dữ liệu có độ dài vượt mức cho phép mà hàm xử lýcủa ứng dụng có thể xử lý Thông thường, dữ liệu đầu vào được lưu trữ trên

Trang 25

bộ nhớ đệm trước khi xử lý, dữ liệu vượt quá độ dài đăng ký sẽ được chèn lêncác dữ liệu quan trọng khác trong bộ đệm, dẫn đến khả năng thi hành mã tùy

ý cho hacker

1.2.6 Lỗi Injection

Lỗi injection cho phép tin tặc lợi dụng lỗ hổng trong ứng dụng web làmphương tiện để gửi các đoạn mã nguy hiểm đến hệ thống Những cuộc tấncông dạng này bao gồm các mã gọi hàm đến hệ điều hành, gọi các ứng dụngqua lệnh shell, và các hàm gọi đến cơ sở dữ liệu (SQL injection) Những đoạn

mã nguy hiểm được viết bằng perl, python và ngôn ngữ khác có thể đượcchuyển đến và thực thi bởi ứng dụng web, hệ điều hành hoặc các ứng dụngkhác

Rất nhiều ứng dụng web sử dụng các hàm của hệ điều hành và cácchương trình ngoài để thi hành các chức năng Sendmail là một trong nhữngchương trình ngoài được sử dụng nhiều nhất Khi ứng dụng web sử dụng dữliệu từ người dùng để tạo ra đoạn mã thực thi, dữ liệu từ người dùng cần đượclọc kỹ lưỡng Nếu không, tin tặc có thể kèm vào các ký tự đặc biệt, đoạn lệnh,

và những thông tin xấu này có thể được chuyển đến hệ thống và các chươngtrình ngoài

Trang 26

Hình 1- 7 Lỗi SQL injection

Một trong những dạng phổ biến nhất của lỗi injection là lỗi “sqlinjection” Lỗi này xảy ra khi ứng dụng sử dụng những dữ liệu đầu vào khôngđược kiểm tra làm tham số để xây dựng chuỗi lệnh SQL Bằng cách sử dụngnhững đoạn mã SQL đặc biệt, hacker có thể gây ra những hậu quả nghiêmtrọng như:

• Vượt qua hệ thống xác thực login mà không cần sử dụngpassword hoặc username

• Truy cập vào một phần hoặc tất cả các thông tin trong CSDL

• Lấy được thông tin về cấu trúc của cơ sở dữ liệu

• Sửa đổi hoặc xóa thông tin trong CSDL

• Chạy các lệnh trong hệ điều hành trên máy chủ CSDL

1.2.7 Quy trình quản lý báo lỗi

Quy trình xử lý báo lỗi có thể gây ra nhiều vấn đề bảo mật cho mộttrang web Vấn đề thông thường nhất là khi các thông báo lỗi có chứa các

Trang 27

thông tin nhạy cảm như stack traces, thông tin cơ sở dữ liệu, và các mã lỗiđược thông báo cho người dùng Những lỗi này cung cấp các thông tin về hệthống, ứng dụng ở mức độ thấp và thông tin này phải được bảo mật Sử dụngnhững thông tin này, hacker có thể dò tìm ra những lỗi khác của ứng dụng

Hình 1- 8 Báo lỗi thiếu an toàn

Đối với các thông báo lỗi SQL, hacker có thể dò được:

• Tên và phiên bản phầm mềm cơ sở dữ liệu

• Tên cơ sở dữ liệu

• Tên bảng và các cột trong bảng

Nếu trang web bị mắc lỗi SQL Injection, các thông tin trên sẽ giúp cho hackerkhai thác sâu hơn lỗi này và lấy được toàn bộ các thông tin trong cơ sở dữliệu

Trang 28

Đa số các ứng dụng web cần lưu trữ dữ liệu nhạy cảm, trong cơ sở dữliệu hoặc trong một tập tin nào đó trong hệ thống Thông tin nhạy cảm baogồm: mật khẩu, số thẻ tín dụng, thông tin tài khoản, hoặc các thông tin cầnbảo vệ khác Các cơ chế mã hóa thường được sử dụng để bảo vệ những thôngtin này Mặc dù sử dụng các hàm mã hóa không khó cho các lập trình viên,tuy nhiên, lập trình viên vẫn thường mắc những lỗi cơ bản khi áp dụng vàoứng dụng web do không hiểu rõ hết các đặc điểm mã hóa

Hình 1-9 Lưu trữ thiếu an toàn

Những lỗi thông thường bao gồm:

•Không mã hóa dữ liệu quan trọng như khóa, certificates và mật khẩu

•Lưu trữ các khóa bảo mật trong bộ nhớ bằng các cơ chế không an toàn

•Cơ chế tạo số ngẫu nhiên không đảm bảo

•Sử dụng sai thuật toán

•Tạo một thuật toán mã hóa không đảm bảo

Trang 29

Hậu quả của những điểm yếu này có thể rất nghiêm trọng đến an toàncủa một trang web, cho phép hacker lấy được toàn bộ các thông tin quantrọng được lưu trữ

1.2.9 Từ chối dịch vụ

Ứng dụng web rất dễ bị tổn thương do các cuộc tấn công từ chối dịch

vụ (DoS) Tấn công từ chối dịch vụ vào ứng dụng web được định nghĩa là cáctấn công làm tê liệt ứng dụng, làm cho các truy cập hợp lệ không thể đượctiến hành

Đa số máy chủ web chỉ có thể xử lý hỗ trợ một số lượng nhất địnhngười sử dụng trong điều kiện bình thường Một tin tặc có thể tạo ra nhiềutruy cập đồng thời từ một máy để tấn công ứng dụng Sử dụng load balancing

sẽ gây khó khăn cho các cuộc tấn công kiểu này, tuy nhiên không thể ngănngừa hoàn toàn nếu có quá nhiều truy cập cùng lúc

Một dạng khác của tấn công DoS ứng dụng web dựa trên các lỗi trongchức năng của ứng dụng Ví dụ một ứng dụng sử dụng cơ chế khóa tài khoảntrong 1 tiếng hoặc hơn nếu nhận được quá 3 lần mật khẩu sai Hacker có thểlợi dụng điểm yếu này, gửi đến quá 3 lần sai mật khẩu của một tài khoản hợp

lệ, hậu quả là người dùng của tài khoản này không thể truy cập được trong 1tiếng hoặc hơn

Trong một cuộc tấn công từ chối dịch vụ điển hình vào ứng dụng web,hackers sẽ tìm cách chiếm gần hết nguồn tài nguyên hệ thống trên máy chủhoặc ứng dụng, hậu quả là người sử dụng hợp lệ không thể truy cập vào ứngdụng Tài nguyên hệ thống bao gồm: băng thông, số lượng truy cập đồng thời

cơ sở dữ liệu, dung lượng trống ổ cứng, CPU, dung lượng bộ nhớ RAM,threads, và các nguồn tài nguyên khác liên quan đến ứng dụng

Trang 30

Hình 1-10 Tấn công từ chối dịch vụ

Hình 10 mô tả một cuộc tấn công từ chối dịch vụ ứng dụng web điểnhình Trong tấn công này, hacker lợi dụng vào điểu yếu của ứng dụng chophép truy cập đến cơ sở dữ liệu (CSDL) từ bất kỳ kết nối nào, ngay cả nhữngtruy cập không được xác thực Giả định là ứng dụng chỉ có thể xử lý tối đa

1000 truy cập cùng lúc đến CSDL, hacker sẽ gửi đến ứng dụng hơn 1000 kếtnối đồng thời, tạo ra hơn 1000 truy cập đến CSDL, hậu quả là ứng dụng bị têliệt, không thể đáp ứng các truy cập hợp lệ từ người sử dụng

1.2.10 Quản lý cấu hình thiếu an toàn

Cấu hình của máy chủ và các phần mềm hỗ trợ dịch vụ web là một yếu

tố quan trọng trong vấn đề bảo mật của ứng dụng Máy chủ cung cấp nền tảngphục vụ cho việc cung cấp nội dung và các dịch vụ mà ứng dụng web cần sửdụng, bao gồm lưu trữ, dịch vụ directory, emai Do là nền tảng cung cấp cácchức năng cấp thấm cơ bản cho ứng dụng Những vấn đề về cấu hình của máychủ có thể dẫn đến vấn đề bảo mật của ứng dụng

Trang 31

Trong đại đa số các công ty, nhóm phát triển ứng dụng web thườngtách biệt với nhóm hỗ trợ triển khai trang web trên máy chủ Vì vậy, có sựkhông thống nhất và thiếu sự liên lạc về phương hướng bảo mật giữa hainhóm này Điều này có thể dẫn đến những điểm yếu nghiêm trọng trên ứngdụng được tạo ra từ các lỗ hổng ở máy chủ

Theo các thống kê hiện nay, các lỗ hổng liên quan đến cấu hình máychủ bao gồm:

• Các phần mềm và hệ điều hành trên máy chủ không được cập nhậtvới bản vá lỗi bảo mật mới nhất.Lỗi trên phần mềm web hosting máy chủ chophép liệt kê bất kỳ thư mục (hoặc tập tin) nào trong hệ thống

• Những tập tin mặc định, tập tin tạo ra để test như script, tập tin cấuhình không được xóa đi trong thư mục của trang web Những tập tin nàythường có độ bảo mật yếu và có thể chứa những thông tin quan trọng

• Không phân đúng quyền cho các thư mục và tập tin trong trangweb

• Những chức năng quản lý và debug được triển khai không cần thiết

• Phần mềm web server đăng quá nhiều thông tin trong trang báo lỗi

• Cấu hình SSL và các hàm mã hóa không đúng

Như vậy, chương I đã cho thấy được cái nhìn tổng quan về web và cácthành phần cấu trúc của dịch vụ web Đồng thời đưa ra được các nguy cơ mất

an toàn đối với website, phân tích và tìm ra các lỗ hổng bảo mật, các hìnhthức tấn công web dựa trên những lỗi này

Trang 32

CHƯƠNG IIKẾT HỢP JOOMLA VÀ VIRTUEMART ĐỂ XÂY DỰNG

WEBSITE ỨNG DỤNG

Tại chương một đã nói đến các thành phần kiến trúc và những ứngdụng của website Chương 2 đi sâu vào nghiên cứu xây dựng một websiteứng dụng Bằng những kiến thức về lập trình thiết kế web sử dụng ngôn ngữPHP và sự nghiên cứu tìm hiểu, sử dụng phần mềm mã nguồn mở Joomla,cùng với thành phần mở rộng Virtuemart, em đã xây dựng thành công ứngdụng website bán hàng trực tuyến

2.1 Tổng quan về Joomla! Các thành phần chức năng, cài đặt và sử dụng website

2.1.1 Giới thiệu CMS Joomla!

Joomla! là một hệ quản trị nội dung mã nguồn mở (tiếng Anh: OpenSource Content Management Systems) Joomla! được viết bằng ngôn ngữ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

Joomla có các đặc tính cơ bản là: bộ đệm trang (page caching) để tăngtốc độ hiển thị, lập chỉ mục, đọc tin RSS (RSS feeds), trang dùng để in, bảntin nhanh, blog, diễn đàn, bình chọn, lịch biểu, tìm kiếm trong Site và hỗ trợ

đa ngôn ngữ

Joomla được phát âm theo tiếng Swahili như là 'jumla' nghĩa là "đồng tâm hiệp lực".

Joomla! được sử dụng ở khắp mọi nơi trên thế giới, từ những website

cá nhân cho tới những hệ thống website Virtuemart chuyên nghiệp có tínhphức tạp cao, cung cấp nhiều dịch vụ và ứng dụng Joomla có thể dễ dàng càiđặt, dễ dàng quản lý và có độ tin cậy cao

Trang 33

Joomla đáp ứng được mô tả về 7 đặc tính của Web 2.0:

• Web có vai trò nền tảng, có thể chạy mọi ứng dụng

• Tập hợp trí tuệ cộng đồng

• Dữ liệu có vai trò then chốt

• Phần mềm được cung cấp ở dạng dịch vụ web và được cập nhật khôngngừng

• Phát triển ứng dụng dễ dàng và nhanh chóng

• Phần mềm có thể chạy trên nhiều thiết bị

• Giao diện ứng dụng phong phú

Joomla! 1.5 gồm có 3 tầng hệ thống Tầng dưới cùng là mức nền tảng,chứa các thư viện và các plugin (còn được biết với tên gọi mambot) Tầng thứ

hai là mức ứng dụng và chứa lớp JApplication Hiện tại tầng này gồm 3 lớp con: JInstallation, JAdministrator và JSite Tầng thứ ba là mức mở rộng.

Tại 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.

Hình 2-1 Cấu trúc 1 website Joomla

Joomla - Một hệ quản trị nội dung mã nguồn mở mạnh nhất hiện nay trên thếgiới

Ra đời do bất đồng quan điểm trong nội bộ Mambo - một hệ quản trịnội dung nổi tiếng, gần như toàn bộ nhân lực chủ chốt (Core Team) củamambo đã ra đi, xây dựng nên một đế chế hùng mạnh với tên gọi OpenSource Master, và Joomla ra đời từ đó (2005) Chỉ hơn 3 năm chàođời,Joomla đã làm nên một kỳ tích: 2 lần đạt giải nhất mã nguồn mở ứng

Trang 34

joomla.org) Nếu tính thêm những site lớn như rockettheme.com,joomlart.com, joomlashack.com, Virtuemart.net, thì con số thành viên lênđến hàng triệu người.

2.1.2.Tại sao Joomla! lại được sử dụng nhiều như vậy?

- Joomla giúp mọi người có thể phát triển việc kinh doanh bằngVirtuemart, học tập, giảng dạy, giới thiệu, quảng bá hình ảnh, dịch vụ, sảnphẩm của mình, của công ty, của trường mình một cách tốt nhất, hiệu quảnhất với chi phí thấp nhất Việc sử dụng mã nguồn Joomla là miễn phí theogiấy phép công cộng GNU

- Về số extensions (các sản phẩm như component, mambot, plugin,module, ), Joomla cũng đạt con số kỷ lục: trên 3.200 Đó là chưa kể đếnhàng ngàn template được xây dựng chỉ để dành cho website Joomla!

Nói tóm lại, nếu ta cần xây dựng một website, dù là web cá nhân hay là mộtwebsite ngân hàng, một đại công ty, một hệ thống bán hàng trực tuyến, một

hệ thống viễn thông, một trường học online, ta hãy dùng Joomla! Joomla!

có thể làm được mọi thứ liên quan đến web!

Hình 2-2 Sự phát triển của Joomla

Lần đầu tiên khi tiếp xúc với Joomla! nhiều người luôn cảm thấy rằng

có điều gì đó khó hiểu ở Joomla! khiến cho việc tiếp cận với nó thật khókhăn Đó chính là do các khái niệm và thuật ngữ khác lạ của Joomla!, mà thật

Trang 35

ra nó cũng không mấy khác lạ gì mấy so với các hệ thống quản trị nội dung(CMS: Content management System) khác

2.1.3 Cài đặt

Việc cài đặt Website Joomla là rất dễ dàng, đơn giản và nhanh chóngđối với tất cả mọi người Ta chỉ cần truy cập Website Joomla , download bộcài đặt, giải nén, upload lên host, tạo database và tiến hành cài đặt theo từngbước Màn hình cài đặt của Joomla 1.5 khá thân thiện và được bố trí hợp lý

Ta chỉ cần chú ý một điều duy nhất là "phải tạo 1 database với Collation charset: utf8_general_ci" trước khi cài đặt

-Các bước cài đặt gồm

2.1.3.1 Download & Upload bộ cài đặt Joomla!

- Download Joomla 1.5 tại địa chỉ

http://www.joomla.org

- Upload Joomla : Upload lên Server và giải nén vào thư mục gốcchứa Web của ta (hoặc một thư mục con của nó và đặt tên làjoomla)

Thư mục gốc chứa Web thường có tên là: htdocs, public_html, www,wwwroot

ở đây sau khi cài đặt appsvr ( gồm Apache, MySQL, PHP ) thì thư mục gốc sẽ

là D:\AppServ\www

Ta có thể Upload bằng một số cách:

Bằng Copy trực tiếp (nếu cài trên máy của ta)

Bằng công cụ quản trị mà HOSTING cung cấp

Bằng công cụ FTP: WS_FTP, Total Commander, Net2FTP, FileZilla,CuteFTP

2.1.3.2 Chọn ngôn ngữ cài đặt

- Mở trình duyệt và gõ vào địa chỉ Website của ta

Trang 36

VD: http://localhost/ (nếu cài trên máy của ta)

Nếu ta giải nén bộ cài đặt vào thư mục joomla (thư mục con của thư mục gốc)thì gõ: http://yoursite/joomla/

VD: http://localhost/Virtuemart/ (nếu cài trên máy của ta)

Màn hình cài đặt xuất hiện và ta có thể chọn một ngôn ngữ trong quá trìnhđặt:

Hình 2-3 Cài đặt Joomla – chọn ngôn ngữ 2.1.3.3 Kiểm tra cấu hình hệ thống

Nếu các giá trị kiểm tra có màu xanh thì OK Nếu các giá trị kiểm tra có màu

đỏ thì ta cần hỏi bộ phận Hỗ trợ kỹ thuật của Server Ta vẫn có thể tiếp tục càiđặt tuy nhiên một số chức năng có thể sẽ không hoạt động

Trang 37

Hình 2-4 Kiểm tra cấu hình hệ thống 2.1.3.4 Thông tin bản quyền

Ta nên dành một chút thời gian để đọc các thông tin này

Hình 2-5 Thông tin bản quyền

Trang 38

- Hostname: Thường là giá trị "localhost"

(chỉ điền giá trị khác nếu như Database Server và Web Server nằm ở 2 nơikhác nhau, hoặc Host của ta cung cấp như vậy)

- User name: Tên tài khoản có quyền đối với cơ sở dữ liệu chứa Joomla của ta

Vd : root

- Password: Mật khẩu của tài khoản trên

- Availbe Collations: Ta nên chọn là "utf8_general_ci"

- Database Name: Tên cơ sở dữ liệu của ta

Hình 2-6 Chọn cơ sở dữ liệu 2.1.3.6 Thiết lập các thông số FTP

- Nếu Host của ta không hỗ trợ, mục này sẽ không hiển thị

- Nếu Host của ta hỗ trợ, ta cần chú ý:

Username: Tên tài khoản FTP

Password: Mật khẩu tương ứng

Auto Find Path: Tự động tìm đường dẫn tới nơi chứa Web của ta

Trang 39

(Nên dùng chính tài khoản mà ta đã Upload bộ cài đặt Joomla lên HOST)

Hình 2-7 Thiết lập thông số FTP 2.1.3.7 Thiết lập cấu hình site Joomla

- Site name: tên site của ta

VD: VnExpress, Hosting Việt Nam, ThanhNienOnline

- Your Email: địa chỉ email của ta

- Admin Password: Mật khẩu để quản trị Joomla

Các thông số trên sau này đều có thể thay đổi dễ dàng nên ta không cần bậntâm lắm Chỉ cần nhớ mật khẩu là đủ

- Install Defaul Sample Data: Cài đặt dữ liệu mẫu Ta nên nhấn nút này đểJoomla tạo mẫu cho ta một trang web đơn giản

- Lưu ý: tài khoản truy nhập hệ thống là: admin; mật khẩu: mật khẩu mà ta đã

gõ ở bước 6

- Để xem Website của ta: Nhấn vào nút Site

- Để quản trị Website: Nhấn vào nút Admin Đường dẫn sẽ có dạng như sau: http:// www.yoursite.com/administrator/ hoặc

http://www.yoursite.com/joomla/administrator hoặc

Trang 40

phần mềm thực hiện có trang quản trị tại địa chỉ :

http://loclhost/Virtuemart/administrator/

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

HÌNH ẢNH LIÊN QUAN

Hình 1- 2 Kiến trúc n lớp của web application - Nghiên cứu xây dựng website và một số biện pháp bảo mật
Hình 1 2 Kiến trúc n lớp của web application (Trang 17)
Hình 1- 7 Lỗi SQL injection - Nghiên cứu xây dựng website và một số biện pháp bảo mật
Hình 1 7 Lỗi SQL injection (Trang 26)
Hình 1-10 Tấn công từ chối dịch vụ - Nghiên cứu xây dựng website và một số biện pháp bảo mật
Hình 1 10 Tấn công từ chối dịch vụ (Trang 30)
Hình  2-3 Cài đặt Joomla – chọn ngôn ngữ - Nghiên cứu xây dựng website và một số biện pháp bảo mật
nh 2-3 Cài đặt Joomla – chọn ngôn ngữ (Trang 36)
Hình  2-4 Kiểm tra cấu hình hệ thống - Nghiên cứu xây dựng website và một số biện pháp bảo mật
nh 2-4 Kiểm tra cấu hình hệ thống (Trang 37)
Hình  2-5 Thông tin bản quyền - Nghiên cứu xây dựng website và một số biện pháp bảo mật
nh 2-5 Thông tin bản quyền (Trang 37)
Hình  2-6 Chọn cơ sở dữ liệu - Nghiên cứu xây dựng website và một số biện pháp bảo mật
nh 2-6 Chọn cơ sở dữ liệu (Trang 38)
Hình  2-8 Cài đặt tài khoản admin - Nghiên cứu xây dựng website và một số biện pháp bảo mật
nh 2-8 Cài đặt tài khoản admin (Trang 41)
Hình  2-11 Back-end - Nghiên cứu xây dựng website và một số biện pháp bảo mật
nh 2-11 Back-end (Trang 43)
Hình  2-13 Cài đặt phần mở rộng 2 - Nghiên cứu xây dựng website và một số biện pháp bảo mật
nh 2-13 Cài đặt phần mở rộng 2 (Trang 44)
Hình  2-15 Configuration - Nghiên cứu xây dựng website và một số biện pháp bảo mật
nh 2-15 Configuration (Trang 45)
Hình  2 - 16 Global Configuration Site - Nghiên cứu xây dựng website và một số biện pháp bảo mật
nh 2 - 16 Global Configuration Site (Trang 46)
Hình  2-17 Global Configuration System - Nghiên cứu xây dựng website và một số biện pháp bảo mật
nh 2-17 Global Configuration System (Trang 47)
Hình  2-18 User Manager - Nghiên cứu xây dựng website và một số biện pháp bảo mật
nh 2-18 User Manager (Trang 48)
Hình  2-19 Media Manager - Nghiên cứu xây dựng website và một số biện pháp bảo mật
nh 2-19 Media Manager (Trang 49)

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w