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 https://www.vietnamworks.com 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
- Xem thêm -