Tải bản đầy đủ (.pdf) (73 trang)

Một số hình thức tấn công và giải pháp phòng chống tấn công ứng dụng trang thông tin điện tử kênh truyền hình CAND (ANTV)

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (2.82 MB, 73 trang )

BỘ GIÁO DỤC VÀ ĐÀO TẠO
VIỆN ĐẠI HỌC MỞ HÀ NỘI

LUẬN VĂN THẠC SĨ
MỘT SỐ HÌNH THỨC TẤN CÔNG VÀ GIẢI PHÁP PHÒNG CHỐNG
TẤN CÔNG ỨNG DỤNG TRANG THÔNG TIN ĐIỆN TỬ KÊNH
TRUYỀN HÌNH CAND (ANTV)

ĐOÀN THỊ KIM DUNG

CHUYÊN NGÀNH: CÔNG NGHỆ THÔNG TIN
MÃ SỐ: 60480201
HƯỚNG DẪN KHOA HỌC: PGS. TS. ĐOÀN VĂN BAN

HÀ NỘI - 2017


LỜI CAM ĐOAN
Tôi xin cam đoan đây là công trình nghiên cứu của bản thân. Các số liệu, kết
quả trình bày trong luận văn này là số liệu thực tế hoàn toàn trung thực. Những tài
liệu được sử dụng trong luận văn có nguồn gốc và trích dẫn rõ ràng, đầyđủ.

Hà nội, 08 tháng 12 năm 2017

Đoàn Thị Kim Dung


LỜI CẢMƠN
Trước hết, tôi xin bày tỏ lòng biết ơn sâu sắc và chân thành tới thầy giáo
hướng dẫn khoa học: PGS.TS Đoàn Văn Ban, người đã tận tình chỉ bảo, hướng
dẫn tôi trong suốt quá trình làm luận văn. Sự giúp đỡ quý báu của thầy giáo về


mặt định hướng nghiên cứu khoa học và là nguồn động viên tinh thần rất lớn giúp
tôi hoàn thành luận văn của mình.
Tôi xin cảm ơn tất cả các thầy cô giáo đã hết lòng giúp đỡ tôi trong suốt
quá trình học tập.
Tôi xin cảm ơn tập thể lớp và bạn bè đã hỗ trợ tôi trong những ngày tháng
học tập tại Viện.
Tôi cũng xin cảm ơn gia đình đã động viên tôi trong suốt thời gian hoàn
thành luận văn này.


MỤC LỤC
MỞ ĐẦU ....................................................................................................................7
CHƯƠNG 1CÁC DỊCH VỤ CỦA WEB VÀ VẤN ĐỀ ĐẢM BẢO AN NINH
THÔNG TIN ................................................................................................... 10
1.1

Tình hình an ninh mạng trong nước và thế giới .....................................10

1.2

Các khái niệm trong ứng dụng web .........................................................12

1.2.1

Ngôn ngữ lập trình ..............................................................................13

1.2.2

Hosting và tên miền .............................................................................16


1.2.3

Cơ sở dữ liệu ........................................................................................16

1.2.4

Cookies .................................................................................................16

1.2.5

Session ..................................................................................................17

1.3

Các dịch vụ web .........................................................................................18

1.3.1

Đặc điểm ...............................................................................................18

1.3.2

Ưu diểm và nhược điểm của Web service ...........................................18

1.3.3

Các thành phần của Web service ........................................................20

1.3.4


Quy trình xây dựng Web service .........................................................25

1.3.5

An toàn cho dịch vụ Web .....................................................................27

1.4

Các lỗi bảo mật hệ thống ứng dụng trên nền web ..................................28

1.5

Nguy cơ bị tấn công của ứng dụng web ...................................................29

1.6

Kết luận chương .........................................................................................30

CHƯƠNG 2MỘT SỐ KỸ THUẬT TẤN CÔNG VÀ BIỆN PHÁP PHÒNG
TRÁNH ....................................................................................................................31
2.1

Tấn công từ chối dịch vụ (DDOS) ............................................................31

2.1.1

Khái niệm .............................................................................................31

2.1.2


Cách thức tấn công ..............................................................................32

2.1.3

Các dạng tấn công ...............................................................................32

2.1.4

Mô hình tấn công DDoS ......................................................................34

2.1.5

Phân loại tấn công DDoS ....................................................................35

2.1.6

Khó khăn trong việc phòng chống ......................................................38

2.1.7

Biện pháp phòng chống .......................................................................39

2.2

Tấn công CSRF ..........................................................................................40

1


2.2.1


Khái niệm CSRF ..................................................................................40

2.2.2

Các đặc tính của tấn công CSRF ........................................................40

2.2.3

Các hình thức tấn công CSRF ............................................................41

2.2.4

Cách phòng chống và bảo mật ............................................................47

2.3

Tấn công XSS .............................................................................................49

2.3.1

Khái niệm .............................................................................................49

2.3.2

Các thức tấn công ................................................................................50

2.3.3

Các dạng tấn công ...............................................................................50


2.3.4

Biện pháp phòng chống .......................................................................51

2.3.5

Kiếm tra lỗi XSS ...................................................................................52

2.4

Một số lỗ hổng bảo mật khác phổ biến nhất hiện nay............................53

2.4.1.

Lỗi Hearbleed .......................................................................................53

2.4.2.

Khai thác qua Phishing .......................................................................54

2.4.3.

Một số giải pháp phòng chống tấn công .............................................54

2.5

Một số công cụ tấn công ............................................................................55

2.5.1.


Maxisploit Scanner ..............................................................................55

2.5.2.

Paros Proxy ..........................................................................................56

2.6

Kết luận ......................................................................................................56

CHƯƠNG 3THỰC NGHIỆM TẤN CÔNG WEBSITE KÊNH TRUYỀN
HÌNH CAND (ANTV).............................................................................................57
3.1

Đặt bài toán ................................................................................................57

3.1.1

Mô tả bài toán tấn công và phòng thủ ................................................57

3.1.2

Xác định yêu cầu và chức năng của ứng dụng ..................................57

3.1.3

Môi trường và công cụ thực hiện ........................................................58

3.2


Tấn công ứng dụng web ............................................................................59

3.2.1

Tấn công CSRF....................................................................................59

3.2.1

Tấn công XSS .......................................................................................63

3.3

Kết quả thực nghiệm .................................................................................67

3.4

Giải pháp phòng chống tấn công ..............................................................67

3.4.1

Giải pháp phòng chống CSRF ............................................................67

3.4.2

Giải pháp phòng chống XSS ...............................................................68

2



3.5

Kết luận ......................................................................................................68

KẾT LUẬN ..............................................................................................................69
TÀI LIỆU THAM KHẢO ......................................................................................70

3


DANH MỤC CÁC TỪ VIẾT TẮT

DDoS - Tấn công từ chối dịch vụ (DistributedDenial of Service)
CSRF – Tấn công CSRF ( Cross Site Request Forgery)
XXS – Tấn công XSS (Cross Site Scripting)
XML – Extensible Markup Language
HTML – Hyper Text Markup Language

4


DANH MỤC HÌNH VẼ
Hình 1. 1: Biểu đồ thống kê số lượng lỗ hổng bảo mật từ 2010-2014[1] .................10
Hình 1. 2: Mô hình cấu trúc ứng dụng website .........................................................12
Hình 1. 3: Các thành phần của Web service .............................................................20
Hình 2. 1: Mô hình tấn công DDoS cơ bản...............................................................31
Hình 2. 2: Mô hình tấn công DDoS ..........................................................................33
Hình 2. 3 Kẻ tấn công sử dụng Agent Handler để tấn công .....................................34
Hình 2. 4: Kẻ tấn công sử dụng các mạng IRC .........................................................34
Hình 2. 5: Hiển thị tấn công DOS – đang tấn công Smurt sử dụng gói ICMP làm

ngập các giao tiếp khác .............................................................................................35
Hình 2. 6: Mô hình tấn công bằng các gói SYN .......................................................38
Hình 2. 7 : Cơ chế tấn công CSRF ............................................................................40
Hình 2. 8: Cách thức tấn công chung của tấn công CSRF ........................................42
Hình 2. 9: Cách thức tấn công chung của tấn công CSRF ........................................42
Hình 2. 10 : Danh sách sản phẩm..............................................................................43
Hình 2. 11: Nội dung mail kèm theo mã độc ............................................................44
Hình 2. 12: Tiến hành gửi nội dung cho người dùng ................................................45
Hình 2. 13: Người dùng thực hiện hành động vô tình gây thiệt hại về dữ liệu ........45
Hình 2. 14: Danh sách sản phẩm sau khi bị tấn công ...............................................45
Hình 2. 15: Mô hình tấn công CSRF theo phương thức POST ................................46
Hình 2. 16: Cấu trúc tấn công Cross-Site Srcipting ..................................................49
Hình 2. 17: Giao diện chính của Maxisploit Scanner ...............................................55
Hình 3. 1: Giao diện khi cài đặt thành công xampp ..................................................58
Hình 3. 2: Giao diện localhost...................................................................................59
Hình 3. 3: Giao diện quản trị cơ sở dữ liệu PHPMyadmin .......................................59
Hình 3. 4: Giao diện trang chủ kênh truyền hình ANTV ..........................................59
Hình 3. 5: Giao diện danh sách tin tức ......................................................................60
Hình 3. 6: Giao diện đăng nhập dành cho quản trị ..................................................60
Hình 3. 7: Giao diện danh sách bài viết của trang ....................................................61
Hình 3. 8: Thu nhập thông tin, mã bài viết là 3 ........................................................61
Hình 3. 9: Url xóa bài viết .........................................................................................61

5


Hình 3. 10: Tiến hành việc gửi email cho admin ......................................................62
Hình 3. 11: Gửi link có kèm Url xóa bài viết ...........................................................62
Hình 3. 12: Người dùng nhận email, click vào link và vô tình xóa bài viết .............62
Hình 3. 13: Giao diện trang tin tức chi tiết của Website ...........................................63

Hình 3. 14: Ta nhận thấy ở cuối mỗi bài viết đều có ô comment, đây là nơi rất dễ
dàng dính lỗi bảo mật XSS........................................................................................63
Hình 3. 15: Kiểm tra lỗi bảo mật XSS bằng cách chèn đoạn script vào ô comment 63
Hình 3. 16: Màn hình hiện lên popup, như vậy website bị lỗ hổng bảo mật XSS ....64
Hình 3. 17: Truy vấn lấy cookie người dùng ............................................................64
Hình 3. 18: Thực hiện việc đánh cắp cookie người dùng lưu trữ tại server riêng. ...64
Hình 3. 19: Đoạn code mô phỏng việc lấy thông tin từ website gửi về ....................65
Hình 3. 20: Toàn bộ thông tin cookie đã được đánh cắp ..........................................65
Hình 3. 21: Bài viết chính thức trên website .............................................................66
Hình 3. 22: Kẻ tấn công thực hiện việc thay đổi thông tin trên website bằng đoạn
mã javascript .............................................................................................................66
Hình 3. 23: Bài viết đã bị thay đổi nội dung .............................................................66

6


MỞ ĐẦU
1.

Lý do chọn đề tài
Ngày nay, con người đang bước vào giai đoạn kỷ nguyên số với sự bùng nổ

thông tin mạnh mẽ. Các tổ chức, doanh nghiệp cũng đi theo mô hình số hóa, giới
thiệu, định hướng thông tin trên Internet. Việc sử dụng Internet trở nên thân quen và
trở thành một công cụ không thể thiếu trong đời sống thì lợi ích của website với các
cơ quan Nhà nước và doanh nghiệp là vô cùng lớn.
Internet mang lại rất nhiều lợi ích nhưng bên cạnh đó nó cũng là một con dao
hai lưỡi nếu các nhà quản trị mạng quản lý không thật tốt thông tin website của
mình. Website được đưa lên Internet có nghĩa là đã công bố cho mọi người. Và từ
đây có những nguy cơ không thể lường trước được. Một kẻ mạo danh có thể tấn

công website, chiếm lấy quyền quản trị sau đó đưa thông tin xấu, sai sự thật làm ảnh
hưởng tới uy tín của các cơ quan, doanh nghiệp.Vì vậy, bảo mật thông tin website là
việc làm hết sức cấp thiết đặc biệt như trong thời điểm hiện nay.
Năm 2016, hàng loạt các website, diễn đàn lớn trong nước bị tấn công
như:Ngân

hàng

TMCP

Ngoại

thương

Việt

Nam

(Vietcombank),

Vietnamworks.com, Sân bay Nội Bài, Tân Sơn Nhất,…khiến bị nghẽn mạng
nghiêm trọng và thông tin, mật khẩu của khách hàng đã bị đánh cắp, tin tặc lợi dụng
lấy cắp tiền trong tài khoản. Các cơ quan quản lý, nhà mạng và các chuyên gia an
ninh thông tin của Hiệp hội An toàn thông tin (VNISA) cùng phối hợp tìm kiếm
giải pháp chống lại.
Tại website của kênh Truyền hình CAND, trong 4 năm hoạt động, website gặp
nhiều sự cố về bảo mật thông tin mạng điển hình tháng 6/2014 và tháng 1/2016 trước
Đại hội Đảng toàn quốc lần thứ 12 tại Việt Nam website truyền hình công an nhân
dân gặp nhiều sự cố của một số kẻ mạo danh đãtấn công website, chiếm lấy quyền
quản trị sau đó đưa thông tin xấu, sai sự thật làm ảnh hưởng tới uy tín cũng như định

hướng sai thông tin của Đảng, Nhà nước và Bộ công an. Vì vậy, bảo mật thông tin
website là việc làm hết sức cấp thiết đặc biệt như trong thời điểm hiện nay.
Xuất phát từ thực tế trên, luận văn tiến hành khảo sát tình hình bảo mật thông
tin website, phân tích các hướng tấn công mà kẻ mạo danh có thể sử dụng để đánh
chiếm quyền quản trị website.Sau khi đã nắm được một số phương thức tấn công,

7


luận văn nêu một số phương pháp phòng chống tấn công website. Cuối cùng là thực
nghiệm tấn công vào website bằng một trong nhưng phương thức tấn công đã nêu
ra.
2.

Mục đích nghiên cứu
Nghiên cứu về các cơ chế tấn công website như DDoS, CSRF, XSS và cách

phòng chống các nguy cơ tấn công website.
3.

Đối tượng và phạm vi nghiên cứu
Cụ thể là:



Các khái niệm về website, bảo mật website, tấn công website.



Các khái niệm cơ bản về các hình thức tấn công, mô hình tấn công, lỗ hổng

tấn công của một số hình thức tấn công DDoS, CSRF, XSS.



Thực nghiệm tấn công vào website có lỗ hổng.



Đưa ra giải pháp phòng chống và bảo vệ.

4.

Nhiệm vụ nghiên cứu



Tìm hiểu về các hình thức, cơ chế tấn công website như DDoS, CSRF, XSS.



Tìm hiểu cách thức phòng chống các cơ chế tấn công website và ứng dụng giải
pháp phòng chống lên website thông tin điện tử kênh truyền hình CAND
(ANTV).

5.

Phương pháp nghiên cứu




Đọc tài liệu phân tích, tổng hợp lý thuyết.



Nghiên cứu các tài liệu về mã hóa, hệ mật mã của các tác giả trong và ngoài
nước, các bài báo, thông tin trên mạng, tìm hiểu các mô hình bảo mật,… để
phát hiện các cơ chế tấn công website và đề xuất cách thức phòng chống tấn
công website, ứng dụng giải pháp phòng chống lến website thông tin điện tử.



Khai thác hệ thống mã nguồn mở và ngôn ngữ lập trình hướng đối tượng Java,
Javascript, PHP. Các cơ sở dữ liệu Mysql, Sql Server, Postgre Sql,... để xây
dựng ứng dụng demo cho các phương pháp tấn công.



Vận dụng các lý thuyết về bảo mật website, các phương pháp tấn công, lỗ
hổng trong việc xây dựng website để tiến hành tấn công.

8


6. Bố cục của luận văn
Mở đầu
Chuơng 1: Các dịch vụ của web và vấn đề đảm bảo an ninh thông tin.
Chuơng 2: Một số kỹ thuật tấn công và biện pháp phòng tránh.
Chuơng 3: Thực nghiện tấn công trang thông tin điện tử truyền hình Công an nhân
dân (ANTV).
Kết luận

Tài liệu tham khảo

9


CHƯƠNG 1

CÁC DỊCH VỤ CỦA WEB VÀ VẤN ĐỀ ĐẢM
BẢO AN NINH THÔNG TIN

1.1 Tình hình an ninh mạng trong nước và thế giới
Theo thống kế từ tổ chức Cơ sở dữ liệu về lỗ hổng bảo mật quốc gia (NVD)
công bố trong năm 2014, trung bình mỗi ngày có 19 lỗ hổng bảo mật trên các hệ
điều hành máy tính được thông báo. Các lỗ hổng nguy hiểm được đánh giá theo tác
động bảo mật của chúng cao hay thấp, chẳng hạn như lỗ hổng cho phép tin tặc thực
thi các mã độc từ xa được xem là lỗ hổng phổ biến và gây nguy cơ mất an ninh cao.

Hình 1. 1: Biểu đồ thống kê số lượng lỗ hổng bảo mật từ 2010-2014
(Nguồn :thông báo và dữ liệu từ Cơ sở dữ liệu về lỗ hổng bảo mật quốc gia (NVD) - Viện
nghiên cứu về các tiêu chuẩn và công nghệ quốc gia (NIST) )

Một website tồn tại quá nhiều lỗ hổng bảo mật là cơ sở để các tín tặc truy cập
và đánh cắp cơ sở dữ liệu của cá nhân, tổ chức như thông tin thẻ tín dụng, danh sách
khách hàng, báo cáo tài chính, làm sai lệch quy trình hoạt động vì mục đích bất hợp
pháp, …

10


Tháng 6-2015, tin tặc đã phát hiện được lỗ hổng và tấn công vào Văn phòng

quản lý nhân sự ở Mỹ. Cuộc tấn công này khiến cho thông tin cá nhân của hơn 20
triệu người bị đánh cắp, trong đó có khoảng 5.6 triệu người bị đánh cắp cả dữ liệu
vân tay.
Ở Việt Nam, theo thống kê năm 2015, chỉ riêng 9 tháng đầu năm đã có 2.790
webiste của các cơ quan, doanh nghiệp tại Việt Nam bị hacker xâm nhập, trong đó
có 34 website chính chủ .gov.vn và 122 website giáo dục edu.vn.
Trong diễn biến căng thẳng trước tình hình biển Đông, hacker Trung Quốc
cũng tăng cường tấn công vào các cơ quan nhà nước. Có 1.597 trường hợp trong đó
nhiều nhóm hacker Trung Quốc tấn công thay đổi giao diện các trang web đặt tại
Việt Nam, trong đó có khoảng 10 trang thuộc các cơ quan quản lý nhà nước. Gần
đây nhất là vụ tấn công vào hệ thống của hãng hàng không Việt Nam Airline vào
cuối tháng 7/2016.
Sự việc này gây ra những hậu quả vô cùng nghiêm trọng với một hệ thống lớn
và có tầm quan trọng đối với quốc gia như vậy.Khoảng 400.000 dữ liệu khách hàng
của Việt Nam Airline đã bị đánh cắp. Nhóm hacker tấn công trang web Vietnam
Airlines tự xưng là 1937CN. Tuy rất nổi tiếng với nhiều vụ tấn công tương tự với
các quốc gia khác nhưng cho đến nay thông tin về nhóm hacker này còn khá ít.
Đầu tháng 11/2016, website chuyên về lĩnh
vực tìm viêc và tuyển dụng quy mô lớn ở Việt Nam đã bị tin tặc tấn công và đánh
cắp nhiều thông tin thành viên. Sau đó, Cục an toàn thông tin – Bộ Thông tin và
Truyền thông đã đưa ra khuyến cáo đối với người dùng có tài khoản. Sự việc thậm
chí còn tệ hơn khi tin tặc lấy được thông tin mật khẩu chưa được mã hóa của người
dùng.
Qua kiểm tra ngẫu nhiên, nhiều người dùng sử dụng chung mật khẩu cho
nhiều tài khoản khác nhau kể cả tài khoản ngân hàng. Hiện tại, tin tặc tấn công vẫn
chưa bị phát hiện nên trong thời gian tới những cuộc tấn công có thể tiếp tục xảy ra.
Những vụ tấn công liên tiếp xảy ra trong thời gian gần đây nhằm vào những công ty
lớn cho thấy nguy cơ mất an toàn an ninh có thể xảy ra ở bất kỳ đâu. Các biện pháp
phòng tránh sẽ không bao giờ thừa để bảo vệ thông tin cho công ty, doanh nghiệp
trong thời đại số ngày nay [2].


11


1.2 Các khái niệm trong ứng dụng web
Ứng dụng web là một chương trình chạy trên nền tảng web, thường được cài
đặt trên máy chủ của một Web Server trên mạng, người dùng truy cập vào mạng và
sử dụng ứng dụng này thông qua một trình duyệt web. Ưu điểm của ứng dụng web
như hoạt động dễ dàng, không cần cài đặt trên máy cá nhân, giao diện tùy biến, đẹp
và phong phú giúp người sử dụng có thể dễ dàng sử dụng và tương tác.
Website là tập hợp nhiều trang web được tổ chức theo các danh mục. Khi
doanh nghiệp xây dựng website nghĩa là họ đang muốn đưa ra kênh thông tin quảng
bá về các lĩnh vực, các thông tin sản phẩm, các dịch vụ, …
Đây là một hình thức marketing online rất đơn giản mà mang lại hiệu quả cao.
Để tạo nên một website động cần phải có 3 yếu tố cơ bản:

 Cần phải có tên miền (domain).
 Nơi lưu trữ website (hosting).
 Cơ sở dữ liệu (database).
Ngày nay, với sự bùng nổ của mạng Internet, các ứng dụng web cũng phát
triển đa dạng áp dụng vào nhiều lĩnh vực khác nhau như cổng thông tin điện tử, giao
dịch ngân hàng, bán hàng trực tuyến, mạng xã hội, bản đồ, công cụ tìm kiếm…

Hình 1. 2: Mô hình cấu trúc ứng dụng website [3]

12


Cấu trúc 1 ứng dụng web thường có tầng gồm: Tầng trình bày, tầng logic và
tầng cơ sở dữ liệu. Tầng trình bày có nhiệm vụ hiển thị dữ liệu người dùng theo bố

cục trang web thông qua trình duyệt web. Tầng logic xử lý thông tin yêu cầu từ phía
người dùng, có thể lấy thông tin từ cơ sở dữ liệu và trả về tầng hiện thị cho người
dùng, như vậy tầng logic được xem như cầu nối.Tâng cơ sở dữ liệu là nơi lưu dữ
thông tin, quản lý file và phân quyền truy cập. Các hệ quản trị cơ sở dữ liệu như
Mysql, Sql Server, Postgre Sql, Mongodb…

1.2.1

Ngôn ngữ lập trình

Một ứng dụng web thường được xây dựng bằng các ngôn ngữ chạy phía web
server như Php, Java, C#, … Mỗi ngôn ngữ có những đặc điểm và cấu hình môi
trường hoạt động khác nhau.
Java là ngôn ngữ lập trình hướng đối tượng được phát triển bởi James Gosling
năm 1991. Ban đầu, Java có tên gọi là Oak có nghĩa là cây sồi vì quanh nơi làm việc
của ông có rất nhiều loại cây này.
Năm 1995 Oak được đổi tên thành Java và được tạp chí Times bình chọn là
một trong mười sản phẩm tốt nhất. Java được sử dụng để làm các ứng dụng cá nhân,
ứng dụng web, ứng dụng cho doanh nghiệp và ứng dụng điện thoại. Một chương
trình Java được biên dịch thành bytecode, sau đó sẽ chạy trên môi trường thực thi.
Java là sự lựa chọn của nhiều lập trình viên vì một chương trình Java có thể chạy
trên mọi nền tảng ứng đúng với tiêu chí “write one, run anywhere”.
Java có nhiều đặc điểm và tính năng nổi bật so với các ngôn ngữ khác.

 Đơn giản: Cú pháp của java dựa trên C++, gỡ bỏ nhiều đặc điểm gây
bối rối và hiếm khi được sử dụng chẳng hạn như các con trỏ tường
minh, nạp chồng toán tử, … Hỗ trợ dọn rác tự động (Garbage
Collection) trong Java.

 Hướng đối tượng: Lập trình hướng đối tượng (OOP) là một phương

pháp làm đơn giản hóa việc phát triển và duy trì phần mềm bằng việc
cung cấp một số quy tắc. Một số khái niệm cơ bản của hướng đối tượng
(OOP) là đối: Đối tượng, tính kế thừa, tính đa hình, tính trừa tượng, tính
bao đóng.

 Độc lập nền tảng: Một Platform là môi trường phần cứng hoặc phần
13


mềm trong đó một chương trình chạy. Có hai loại Platform: một loại
dựa trên phần mềm (software-based) và một loại dựa trên phần cứng
(hardware-based). Java cung cấp software-based platform. Java
Platform khác với nhiều nền tảng khác ở chỗ nó chạy ở trên các nền
tảng hardware-based khác. Nó có hai thành phần là Runtime
Environment và API (Application Programming Interface).

 Roubust: Java sử dụng hệ quản trị bộ nhớ mạnh mẽ. Đó là. Java sử
dụng ít con trỏ hơn để tránh các vấn đề liên quan tới bảo mật. Bên cạnh
đó còn có Trình dọn rác tự động (Garbage Collection) trong Java. Đó là
xử lý ngoại lệ (Exception Handling) và kiểm tra kiểu. Tất cả những thứ
này là cho Java là Robust.

 Độc lập cấu trúc: Đó là không có đặc điểm nào mà phụ thuộc vào trình
triển khai.

 Portable: Chương trình được biên dịch thành Java Bytecode và chạy
bất cứ nền tảng nào.

 Hiệu suất cao: Với việc sử dụng Just-In-Time compilers, Java giúp
nâng cao hiệu năng, giúp việc debug được dễ dàng cũng như nhanh

chóng phát hiện lỗi.

 Phân tán: Chúng ta có thể tạo các ứng dụng phân tán trong Java. RMI
và EJB được sử dụng để tạo các ứng dụng này. Chúng ta có thể truy cập
các file bằng việc gọi các phương thức từ bất cứ thiết bị nào trên
Internet.

 Đa luồng: Một Thread là giống như một chương trình riêng rẽ, thực thi
một cách đồng thời. Chúng ta có thể viết các chương trình Java mà xử
lý nhiều tác vụ cùng một lúc bằng việc định nghĩa nhiều Thread. Lợi
thế chính của Multi-thread là nó chia sẻ cùng bộ nhớ. Các Thread là
quan trọng cho Multi-media, Web App, …
Khác với Java, PHP là một ngôn ngữ kịch bản, thông dịch và mã nguồn mở.
PHP là ngôn ngữ có cú pháp đơn giản, dễ sử dụng và thời gian xây dựng sản phẩm
ngắn. PHP có thể nhúng vào trong các trang html để thực thi chức năng. Hiện nay,
Php đã phát hành phiên bản PHP 7, cung cấp nhiều tính năng mới. Các ứng dụng

14


lớn sử dụng Php có thể kể tới Wordpress, Facebook, …
PHP chạy trên môi trường Webserver và lưu trữ dữ liệu thông qua hệ quản trị
cơ sở dữ liệu nên PHP thường đi kèm với Apache, MySQL và hệ điều hành Linux
(LAMP).


Apache là một phần mềm web server có nhiệm vụ tiếp nhận request từ
trình duyệt người dùng sau đó chuyển giao cho PHP xử lý và gửi lại
cho trình duyệt.




MySQL cũng tương tự như các hệ quản trị cơ sở dữ liệu khác
(Postgress, Oracle, SQL server, …) đóng vai trò là nơi lưu trữ và truy
vấn dữ liệu.



Linux: Hệ điều hành mã nguồn mở được sử dụng rất rộng rãi cho các
website. Thông thường các phiên bản được sử dụng nhiều nhất là
RedHat Enterprise Linux, Ubuntu, …

C# là một ngôn ngữ lập trình đơn giản, hiện đại, mục đích tổng quát, hướng
đối tượng được phát triển bởi Microsoft và được phê chuẩn bởi European Computer
Manufacturers Association (ECMA) và International Standards Organization (ISO).
C# được phát triển bởi Anders Hejlsberg và team của ông trong khi phát triển .Net
Framework. C# được thiết kế cho Common Language Infrastructure (CLI), mà gồm
Executable Code và Runtime Environment, cho phép chúng ta sử dụng các ngôn
ngữ high-level đa dạng trên các nền tảng và cấu trúc máy tính khách nhau.
Ngôn ngữ này được lập trình bằng công cụ Visual Studio kết hợp với cơ sở dữ
liệu Sql Server hoặc Oracle. Ứng dụng viết bằng ngôn ngữ này không thể chạy trên
server linux và rất khó lập trình nếu như không có Visual Studio.
Còn nhiều ngôn ngữ lập trình khác cũng đang trở lên phổ biến để xây dựng
ứng dụng như Javascript, Python, Ruby, Go lang, …
Các kỹ thuật tấn công vào một website ngày nay chủ yếu tập trung vào những
lỗ hổng trong quá trình tạo ứng dụng của những lỗ hổng trong quá trình tạo ứng
dụng của những nhà sản xuất website hơn là tấn công vào hệ thống mạng hoặc hệ
điều hành.

15



1.2.2

Hosting và tên miền

Hosting là không gian lưu trữ trên máy chủ có cài đặt các dịch vụ như world
wide web (www), truyền file (FTP), Mail, … Hosting là nơi diễn ra tất cả các hoạt
động trao đổi thông tin giữa website với người sử dụng. Một doanh nghiệp có thể
thuê hosting của nhà cung cấp dịch vụ hoặc tự trang bị máy chủ riêng tùy vào kinh
phí cũng như mục đích sử dụng.
Khi sử dụng Hosting cần chú ý tới hai thông tin quan trọng là dung lượng và
băng thông truy cập. Dung lượng hosting là không gian lưu trữ trên server. Băng
thông là lượng dữ liệu được truyền tải với người truy cập.
Tên miền là một địa chỉ định danh trên Internet đại điện cho một website.
Website được truy cập bằng cách viết tên miền trên trình duyệt. Tên miền cũng có
nhiều loại được phân biệt với nhau bằng đuôi như tên miền tổ chức chính phủ .org,
tên miền giáo dục .edu hoặc tên miền công ty, doanh nghiệp, tổ chức .com hoặc tên
miền quốc gia .vn, …
Mỗi tên miền là duy nhất trên thế giới, việc mua bán tên miền có thể thực hiện
thông qua dịch vụ của nhà cung cấp.

1.2.3

Cơ sở dữ liệu

Để xây dựng một website động, không thể thiếu được đó là một cơ sở dữ liệu
lưu trữ thông tin dữ liệu của website.Với mỗi ứng dụng web, cơ sở dữ liệu được
thiết kế phù hợp.
Cơ sở dữ liệu được phân chia loại thành cơ sở dữ liệu dạng file, cơ sở dữ liệu

quan hệ, cơ sở dữ liệu bán cấu trúc, cơ sở dữ liệu hướng đối tượng. Các ngôn ngữ
lập trình sẽ truy vấn dữ liệu từ cơ sở dữ liệu và hiển thị lên trang web. Ngoài ra, các
hệ quản trị cơ sở dữ liệu như My Sql, Sql Server, Postgres, … được phát triển để
thao tác với cơ sở dữ liệu.

1.2.4

Cookies

Cookies là một đoạn dữ liệu được ghi vào đĩa cứng hoặc bộ nhớ của máy
người sử dụng. Nó được trình duyệt gửi ngược lên lại server mỗi khi trình duyệt tải
một trang web từ server. Những thông tin được lưu trữ trong cookies hoàn toàn phụ
thuộc vào website trên server. Mỗi website có thể lưu trữ những thông tin khác nhau
trong cookie, ví dụ thời điểm lần cuối ta ghé thăm website, đánh dấu ta đã login hay

16


chưa.
Cookie được tạo ra bởi website và gửi tới trình duyệt, do vậy hai website khác
nhau (cho dù cùng host trên một web server) sẽ có hai cookie khác nhau gửi tới
trình duyệt.
Ngoài ra, mỗi trình duyệt quản lý và lưu trữ cookie theo cách riêng của mình,
cho nên hai trình duyệt cùng truy cập vào một website sẽ nhận được hai cookie khác
nhau.
Mỗi máy ở phía người dùng có thể lưu trữ được số lượng lớn cookies, khoảng
300 cookies.Kích thước tối đa cho một cookie là 4KB.Mỗi website giới hạn khoảng
20 cookies. Nếu vượt quá giới hạn lưu trữ, máy phía người dùng tự động xóa đi
những cookies ít sử dụng hoặc không còn sử dụng.


1.2.5

Session

Session là phiên bản làm việc, mục đích của nó đơn giản để lưu trữ một biến
và duy trì biến đó tồn tại từ trang này sang trang khác. Nếu như với các biến thông
thường, khi trang web bắt đầu thực thi, biến đó sẽ được cấp phát bộ nhớ, lưu giá trị
và thu hồi vùng nhớ sau khi trang kết thúc. Session sẽ khác, nó có thể được tạo ra,
tồn tại trên server, có thể xuyên từ trang này sang trang khác, chỉ mất đi khi ta xóa,
hết hạn hoặc tắt trình duyệt.
Session khi sinh ra được lưu trên một file có tên dài dòng, khó đoán và tạo
ngẫu nhiên là session id trên máy chủ và đồng thời ở máy client cũng có một cookie
sinh ra có nội dung đúng như session ID đối với mỗi ngôn ngữ lập trình web sẽ có
tên cookie quy trình như Php là PHPSESSID, Jsp là JSESSIONID, …Các giá trị
của biến session sẽ được lưu trong file.
Ứng dụng: Thông thường session được ứng dụng vào việc quản lý đăng nhập,
đăng xuất của thành viên. Với những tác vụ cần xác nhận là thành viên mới sử dụng
được, chúng ta cần yêu cầu thành viên đăng nhập vào hệ thống.Nhưng nếu chỉ dùng
biến thông thường thì mỗi lần cần thực hiện lại đăng nhập vào.
Trong khi ấy, nếu dùng session thì sau khi đăng nhập, 1 biến session được tạo
ra, thì biến này sẽ tồn tại từ trang này sang trang khác, như thế khi cần thực hiện tác
vụ khác cần đăng nhập, ta chỉ cần kiểm tra xem có tồn tại biến session này hay chưa
là đủ. Nếu tồn tại rồi thì thôi, chưa tồn tại thì đăng nhập.

17


1.3 Các dịch vụ web
Web service là những dịch vụ web khác với khái niệm web thông thường.
Web service trả về người dùng các thông tin dữ liệu dạng thô, các ứng dụng như

ứng dụng web, ứng dụng điện thoai, … sẽ chế biến dữ liệu sau đó hiển thị cho
người dùng cuối trên giao diện.
Các ứng dụng có thể sử dụng một hoặc nhiều Web service để thực hiện theo
chức năng của ứng dụng. Với sự phát triển và lớn mạnh của Internet, Web service
thật sự là một công nghệ đáng được quan tâm để giảm chi phí và độ phức tạp trong
tích hợp và phát triển hệ thống.

1.3.1

Đặc điểm

Web Service mô tả một cách thức chuẩn để tích hợp các ứng dụng trên nền
tảng Web, sử dụng các chuẩn XML (Extensible Markup Language), UDDI
(Universal Description, Discovery and Integration), SOPA (Simple Object Access
Protocol), WSDL (Web Service Description Language) thông qua giao thức
Internet.
Web service có khả năng giúp cho việc tương tác trong những môi trường
khác nhau trở lên đơn giản. Các ứng dụng web thường được triển khai trên các môi
trường phù hợp với ngôn ngữ lập trình. Khi được xây dựng trên môi trường khác
nhau, các thành phần trong ứng dụng cần một chuẩn để giao tiếp và trao đổi thông
tin với nhau. Môi trường kết nối giữa các thành phần có thể trong mạng cục bộ hoặc
qua mạng Internet. Một ứng dụng khi được triển khai sẽ hoạt động theo mô hình
client-server. Nó có thể được triển khai bởi một phần mềm ứng dụng phía server ví
dụ Apache, Mysql Server, Jboss hay .Net…
Ngày nay, các ứng dụng tích hợp Web service đã phát triển rất mạnh mẽ, đặc
biệt trong điều kiện thương mại điện tử đang bùng nổ và phát triển không ngừng
cùng với sự lớn mạnh của Internet. Bất kì một lĩnh vực nào trong cuộc sống cũng có
thể tích hợp công nghệ Web service. Tích hợp Web service mang lại sự tiện lợi và
khả năng tái sử dụng cao. Do vậy, việc phát triển và tích hợp các ứng dụng với Web
service đang là hướng đi đúng đắn trong tương lại.


1.3.2

Ưu diểm và nhược điểm của Web service

1.3.2.1 Ưu điểm của Web service
18


Web Service có những ưu điểm chính sau:


Thúc đẩy đầu tư các hệ thống phần mềm đã tồn tại bằng cách cho phép
các tiến trình, chức năng nghiệp vụ đóng gói trong giao diện dịch vụ
Web.



Tạo mối quan hệ tương tác lẫn nhau và mềm dẻo giữa các thành phần
trong hệ thống, dễ dàng cho việc phát triển các ứng dụng phân tán.



Thúc đẩy hệ thống tích hợp, giảm sự phức tạp của hệ thống, hạ giá
thành hoạt động, phát triển hệ thống nhanh và tương tác hiệu quả với hệ
thống của các doanh nghiệp khác.



Khả năng vượt tưởng lửa: Web service hoạt động trên nền HTTP nên

sử dụng cổng 80, là cổng mà tưởng lửa cho phép.



Hoạt động trên đa môi trường: Web service dựa trên công nghệ XML
được hỗ trợ bởi tất cả các hệ điều hành kể cả môi trường di động.



Tính linh hoạt, dễ chuyển đổi: Web Service chỉ bao gồm các hàm nên
việc thay đổi dễ dàng và giảm chi phí đường truyền do truyền dữ liệu
không định dạng HTML.



Sử dụng các giao thức và chuẩn mở. Giao thức và định dạng dữ liệu
dựa trên văn bản, giúp các lập trình viên dễ dàng hiểu được.

1.3.2.2 Nhược điểm của Web service
Mặc dù Webservice có nhiều ưu điểm như trên, nó vẫn còn tồn tại một số
nhược điểm sau:


Có quá nhiều chuẩn cho dịch vụ Web khiến người dùng khó nắm bắt.



Phải quan tâm nhiều hơn đến vấn đề an toàn và bảo mật.




Phụ thuộc nhiều vào công nghệ.



Những thiệt hại lớn sẽ xảy ra vào khoảng thời gian chết của Dịch vụ
Web, giao diện không thay đổi, có thể lỗi nếu một máy khách không
được nâng cấp, thiếu các giao thức cho việc vận hành.

19


1.3.3

Các thành phần của Web service

Các thành phần trong Web service được mô tả trong hình

Hình 1. 3: Các thành phần của Web service [5]



Tầng vận chuyển (Transport) có nhiệm vụ truyền thông điệp giữa các
ứng dụng mạng, bao gồm các giao thức như HTTP, SMTP, JMS và gần
đây nhất là giao thức thay đổi khối mở rộng (Blocks Extensible
Exchange Protocol – BEEP).



Tầng giao thức tương tác dịch vụ (Service Communication Protocol)

với công nghệ chuẩn là SOAP. SOPA cho phép người dùng triệu gọi
một service từ xa thông qua message XML. Có nhiệm vụ giải mã các
thông điệp theo định dạng XML để có thể hiểu được ở mức ứng dụng
tương tác với người dùng.



Tầng mô tả dịch vụ (Service Description) sử dụng để miêu tả các giao
diện chung cho một dịch vụ Web cụ thể với công nghệ chuẩn là WSDL
và XML. WSDL thường được sử dụng cho mục đích này, nó là một
ngôn ngữ mô tả giao tiếp và thực thi dựa trên XML. Web service sẽ sử
dụng ngôn ngữ này để truyền tham số và các loại dữ liệu cho các thao
tác và chức năng mà dịch vụ Web cung cấp.

20




Tầng dịch vụ (Service) cung cấp các chức năng của service.



Tầng (Business Process) tiến hành các bước xử lý thông tin đầu vào để
cho kết quả đầu ra theo yêu cầu, là các hoạt động có tính chất nghiệp
vụ.



Tầng đăng ký dịch vụ (Service Registry) với công nghệ chuẩn là UDDI.

UDDI dùng cho cả người dùng và SOAP server, nó cho phép đăng ký
dịch vụ để người dùng có thể gọi thưc hiện service từ xa qua mạng, hay
nói cách khác một service cần phải được đăng ký để cho phép các client
có thể gọi thực hiện.

1.3.3.1 XML – Extensible Markup Language
XML là một chuẩn mở do W3C đưa ra cho cách thức mô tả dữ liệu, nó được
sử dụng để định nghĩa các thành phần dữ liệu trên trang web và cho những tài liệu
B2B.
XML là viết tắt của Extensible Markup Language, tạm dịch là ngôn ngữ đánh
dấu mở rộng. XML là ngôn ngữ xây dựng cấu trúc tài liệu văn bản, được thiết kế
dựa trên SGML Standard Genrealized Markup Language) theo tiêu chuẩn ISO 8879
nhằm phục vụ việc quản trị các tài liệu điện tử. XML được xây dựng từ dưới sự chỉ
đạo của W3C từ năm 1996 và chính thức thông qua vào 2/1998.
Do dịch vụ Web là sự kết hợp của nhiều thành phần khác nhau nên nó sử dụng
các tính năng và đặc trưng của các thành phần đó để giao tiếp. XML là công cụ
chính để giải quyết vấn đề này và là kiến trúc nền tảng cho việc xây dựng một dịch
vụ Web, tất cả dữ liệu sẽ được chuyển sang định dạng thẻ XML. Khi đó, các thông
tin mã hóa sẽ hoàn toàn phù hợp với các thông tin chuẩn của SOAP hoặc XMLRPC và có thể tương tác với nhau trong một thể thống nhất.
Ngôn ngữ XML không chỉ dùng để mô tả sự trình bày nội dung tài liệu và còn
có phương pháp định ra nội dung, sắp xếp cấu trúc, từ vựng cà cú pháp của dữ liệu.
XML có cấu trúc mã chặt chẽ, tách biệt nội dung ra khỏi hình thức của dữ liệu và
mang lại thông tin đầy đủ về dữ liệu.
Điều này góp phần hỗ trợ cho việc tìm kiếm và sử dụng thông tin được dễ
dàng hơn, cho phép hiển thị cùng một tài liệu trên một số ứng dụng hoặc thiết bị
ngoại vi khác nhau mà không phải tạo ra phiên bản tài liệu mới, giống như một

21



CSDL.
Đặc điểm của XML
XML là một ngôn ngữ đánh dấu độc lập với phần mềm, phần cứng và
platform.Cho phép các máy tính truyền cấu trúc dữ liệu hệ thống không đồng nhất.
Về hình thức, XML hoàn toàn có cấu trúc thẻ giống như ngôn ngữ HTML
nhưng HTML định nghĩa thành phần được hiển thị như thế nào thì XML lại định
nghĩa những thành phần đó chưa cái gì.
Với XML, các thẻ có thể được lập trình viên tự tạo ra trên mỗi trang web và
được chọn là định dạng thông điệp chuẩn bởi tính phổ biến và hiệu quả mã nguồn
mở.
Các thẻ XML không được định nghĩa trước mà do người lập trình tự định
nghĩa.
XML xây dựng cấu trúc tài liệu và dữ liệu cho phép trao đổi, chia sẻ và sử
dụng thông tin phân tán trên các hệ thống khác nhau. XML hỗ trợ người dùng thông
qua khả năng tạo nội dung động, hỗ trợ việc thay thế nhưng hệ thống cũ và các yêu
cầu hợp nhất dữ liệu.

Cấu trúc của XML:


Một tài liệu XML bao gồm 2 phần:


Cấu trúc logic: định nghĩa các phần tử, các thuộc tính, các kiểu dữ
liệu, …



Cấu trúc vật lý: chứa dữ liệu và các phần tử chứa dữ liệu như text,
image, media.


1.3.3.2 UDDI – Universal Description, Discovery and Integration
UDDI là một thư mục để lưu trữ các thông tin về các Web Service.
Để có thể sử dụng các dịch vụ, trước tiên client phải tìm dịch vụ, ghi nhận
thông tin về cách sử dụng và biết được đối tượng nào cung cấp dịch vụ. UDDI định
nghĩa một số thành phần cho biết các thông tin này, cho phép các client truy tìm và
nhận những thông tin được yêu cầu khi sử dụng dịch vụ Web.
Những thông tin về dịch vụ Web được sử dụng và công bố lên mạng sử dụng
giao thức này.Nó sẽ kích hoạt các ứng dụng để tìm kiếm thông tin của dịch vụ Web

22


×