Bảo mật web và ứng dụng (1) - Hệ thống web

1         Mở đầu

1.1       Về tài liệu

Tài liệu giúp chúng ta tìm hiểu các chủ đề liên quan đến bảo mật trong hệ thống web. Gồm các khía cạnh: kĩ thuật, tổ chức hệ thống, quá trình phát triển, triển khai và vận hành. Hi vọng sẽ gợi ra những ứng dụng hữu ích, thiết thực vào công việc và cuộc sống; hướng tới một môi trường web lành mạnh, an toàn cho nhiều người.

Chúng ta có thể nhìn vấn đề Bảo mật hệ thống web với vai trò là:

– Người sử dụng

– Người làm phần mềm

– Chuyên gia bảo mật

– Nhà quản lý

– Nhà hoạch định chính sách, thực thi pháp luật

Với mỗi chủ đề sẽ có phần khái niệm; phần bài tập và thực hành; phần xem và đọc thêm; và phần câu hỏi ôn tập để củng cố kiến thức.

Trong tài liệu chắc chắn có sự chủ quan, hạn chế về kiến thức, kĩ năng, nhận định…v.v mong người đọc, đọc trong tâm thế hoài nghi.

2         Hệ thống web

2.1       Web là gì?

Web là không gian thông tin toàn cầu. Nó còn có tên gọi khác là WWW, hoặc World Wide Web.

Không gian thông tin toàn cầu là một không gian, được tạo ra bởi thông tin và có phạm vi toàn cầu.


Web do Tim Berners-Lee, người Anh, phát minh ra vào năm 1989.

Web bao gồm rất nhiều loại nội dung, ứng dụng, thành phần, tài nguyên…v.v. Vì vậy, chúng ta cũng hay gọi nó là hệ thống web.

Thông tin trong hệ thống web tồn tại ở nhiều dạng: văn bản (text), hình ảnh, video, âm thanh.

Chúng ta cùng trải nghiệm với hệ thống web, thông qua phần thực hành sau:

– Mở trình duyệt web (web browser) bất kì. Ví dụ Chrome.

– Trên ô địa chỉ của trình duyệt (address bar), nhập vào địa chỉ sau, để mở một trang web: https://vi.wikipedia.org/wiki/World_Wide_Web

– Chúng ta sẽ thấy một trang thông tin được mở ra, trong đó bao gồm văn bản, hình ảnh và có thể có âm thanh, video.


– Nếu để ý trên trang thông tin của wikipedia, chúng ta sẽ thấy các chữ “toàn cầu”, “không gian”, “thông tin” và nhiều chữ khác có màu xanh chứ không phải màu đen như các nội dung còn lại. Khi chúng ta nhập địa chỉ của một trang web vào trình duyệt là chúng ta đã bước vào “không gian web”, và các chữ có màu xanh sẽ là con đường, là cánh cổng để dẫn chúng ta đến những nơi khác trong hệ thống web. Nếu không tin, bạn cứ thử bấm theo các chữ màu xanh, xem nó sẽ dẫn bạn đi những đâu.

Làm sao biết được chúng ta đang đứng ở đâu trong cái không gian thông tin bao la đó?

Cũng giống như thế giới thật, thế giới web cũng có cơ chế đánh địa chỉ cho mọi thứ. Như một cái bàn trong trường đại học nó sẽ có địa chỉ như sau:

Tên bàn / Phòng nào / Tòa nhà nào / Đại học nào / Địa chỉ / Thành phố nào / Tỉnh nào / Nước nào

Ví dụ:

Bàn 02 / Phòng 12 / Tòa nhà A20 / Đại học Đà Lạt / 01 PĐTV / Đà Lạt / Lâm Đồng / Việt Nam

Trong hệ thống web, có rất nhiều thứ cần phải đánh địa chỉ; như một bài viết, một hình ảnh, một trang đăng ký, một trang mua hàng, một vị trí trong một bài viết…v.v. Đây được gọi là các tài nguyên web. Mỗi một tài nguyên web sẽ có một địa chỉ duy nhất, gọi là URL.

2.2       URL là gì

URL, viết tắt của Uniform Resource Locator, là một chuỗi các kí tự, được viết theo một định dạng chuẩn, dùng để xác định vị trí của một tài nguyên duy nhất trong hệ thống web và cho biết máy tính phải dùng giao thức gì để lấy được tài nguyên web về máy người dùng.

Định dạng chuẩn (cú pháp chuẩn) của một URL có dạng như sau:


Giải thích các thành phần của một URL:

– Scheme là giao thức được sử dụng để trao đổi thông tin giữa client và server. Một số scheme phổ biến: http, https, ftp, file, mailto, data, irc. Scheme được ngăn cách với các thành phần phía sau bằng dấu “://”.

– Domain (hay domain name) là tên miền của máy server, cũng được gọi là hostname, ví dụ: en.wikipedia.org, daotao.congty.vn. Máy tính của người dùng sẽ đổi tên miền này thành địa chỉ IP để nó có thể tìm thấy và giao tiếp với máy server. Cũng có thể phân chia tên miền thành các thành phần nhỏ hơn như: tên miền con (sub domain), tên miền riêng, tên miền cấp 2 hoặc cấp 1 (top level domain); ví dụ trong daotao.congty.vn, thì daotao là tên miền con, congty là tên miền riêng, và vn là tên miền cấp 2.

– Port là cổng, được sử dụng để giao tiếp giữa client và server. Trong giao thức HTTP nếu không chỉ định rõ, thì giá trị của port sẽ được ngầm hiểu là 80, giao thức HTTPS là 443.

– Path là đường dẫn (đường dẫn thư mục, đường dẫn tuyệt đối) của tài nguyên web trên máy server. Đường dẫn luôn bắt đầu bằng dấu xuyệt (slash) (/), có nghĩa là thư mục gốc, mỗi thư mục ngăn cách nhau bằng một dấu “/”. Ví dụ: /wiki/Uniform_Resource_Locator; /e-learning/ViewCourses.php; hay /C:/Users/Win%208.1/Downloads/openemr/trangweb.html.

– Ngoài ra, URL cũng có thể chứa chuỗi truy vấn hoặc một định danh. Chuỗi truy vấn (query string) là chuỗi chứa các cặp key=value, nằm ngay sau dấu ?, ví dụ: code=3151. Định danh vùng nội dung (fragment_id) là một vị trí trên một trang web, được đánh dấu bằng một cái tên cụ thể, ví dụ một vùng trên trang web có tên là #noi-dung.

Xem hình minh họa một URL cụ thể,


[Làm Bài tập 2, trong phần Bài tập và thực hành.]

2.3       Liên kết

Trên hệ thống web có nhiều tài nguyên khác nhau, mỗi tài nguyên có một địa chỉ (URL) cụ thể, duy nhất. Bây giờ, nếu chúng ta liên kết các tài nguyên này lại với nhau, thì chúng sẽ tạo thành một mạng lưới (một không gian) thông tin xuyên suốt.

Siêu liên kết (hyperlink) hay liên kết (links) là một tham chiếu đến tài liệu, hoặc tài nguyên web, người dùng có thể bấm vào các liên kết này để mở một tài nguyên web. Một liên kết có thể trỏ đến tài liệu khác hoặc một vị trí cụ thể bên trong tài liệu. Chúng ta có thể dùng 2 khái niệm Siêu liên kết và Liên kết thay thế cho nhau.

Xem hình minh họa,


Để liên kết các tài nguyên với nhau, chúng ta sẽ sử dụng dòng lệnh sau:


Dòng lệnh trên được viết bằng ngôn ngữ HTML.

HTML (HyperText Markup Language) là công cụ dùng để tạo ra giao diện trang web. Lập trình viên sử dụng ngôn ngữ này để tạo ra mã nguồn cho trang web. Trình duyệt web (ví dụ Chrome) sẽ thực thi mã nguồn để tạo ra giao diện trang web.

Chúng ta cùng trải nghiệm với HTML bằng cách: tạo ra một trang web, trong đó có một liên kết, khi người dùng bấm vào liên kết sẽ dẫn người dùng tới trang web của Vietcombank.

Các bước thực hiện:

– Mở một chương trình soạn mã nguồn bất kì. Ví dụ Notepad

– Nhập vào đoạn mã sau để tạo nội dung trang web, trong đó có một liên kết tới trang đăng nhập của Vietcombank.

<a href="https://vcbdigibank.vietcombank.com.vn/login?returnUrl=%2F">Bấm vào đây để đăng nhập vào Tài khoản ngân hàng</a>

– Lưu nội dung trang web, với tên bất kì. Lưu ý phần mở rộng của tập tin phải là .html. Ví dụ NganHang.html.

Chú ý: khi lưu trong Notepad, để chắc chắn phần mở rộng của tập tin là “.html” chứ không phải là “.html.txt” thì trong lúc lưu, tới phần nhập tên cho tập tin, mục File name, nhớ bao phần tên và phần mở rộng bằng dấu nháy kép (“”), ví dụ “NganHang.html”.

– Bấm đúp chuột vào tập tin NganHang.html. Trang web NganHang.html sẽ mở trên trình duyệt. Xem hình minh họa.


– Trên cửa sổ trình duyệt, bấm chuột vào liên kết “Bấm vào đây để đăng nhập vào Tài khoản ngân hàng”. Trình duyệt sẽ chuyển chúng ta đến trang web Vietcombank.

Vậy là từ một cái máy tính, chúng ta đã tạo ra một điểm khởi đầu (một nút) trên không gian thông tin, từ đó chúng ta có thể theo các liên kết để đi đến nhiều nơi, nhiều máy tính khác, nhiều ứng dụng, nhiều tài nguyên khác.

Một trong những hình thức lừa đảo trên mạng hiện nay là giả mạo các trang web chính thống để lừa nạn nhân nhằm thu thập thông tin của người dùng. Từ thông tin này, tội phạm mạng sẽ sử dụng cho nhiều mục đích xấu khác.

Để giả mạo một trang web chính thống, tội phạm sẽ thiết kế giao diện giống hệt trang web chính thống, với địa chỉ (URL, hoặc tên miền) gần giống với trang web chính thống. 

2.4       Xem và đọc thêm

[1] https://vi.wikipedia.org/wiki/World_Wide_Web

[2] Cảnh báo 16 hình thức lừa đảo phổ biến trên không gian mạng, xem 12/4/2023 (https://baochinhphu.vn/canh-bao-16-hinh-thuc-lua-dao-pho-bien-tren-khong-gian-mang-102230111100953007.htm)

2.5       Bài tập và thực hành

Bài tập 1. Làm các phần thực hành, viết lại các đoạn mã trong phần lý thuyết.

Bài tập 2. Sử dụng trình duyệt web, truy cập các trang web bất kì và điền thông tin vào bảng sau:

Tên tài nguyên

URL tương ứng

(Một hình ảnh)

 

(Một bài viết)

 

(Một trang đăng nhập)

 

(Một video)

 

(Một vị trí cụ thể trong một bài viết)

 

Bài tập 3. Hãy tạo một trang web, trong đó có 5 liên kết đến 5 trang web mà bạn hay mở mỗi ngày. Thiết lập trang web này là trang mặc định, khi mở trình duyệt (nghĩa là mỗi khi bạn mở trình duyệt web, thì trang web có chứa 5 liên kết sẽ được mở sẵn).

Bài tập 4. (Tùy chọn) Bạn hãy tạo một giao diện web giống với trang của Vietcombank (https://vcbdigibank.vietcombank.com.vn/login?returnUrl=%2F)

2.6       Câu hỏi ôn tập

Câu 1. URL là viết tắt của?

A. Unicode Resource Locator

B. Uniform Resource Locator

C. Unit Resume Location

D. United Requirement Location

Câu 2. Các thành phần thường có trong một URL gồm?

A. schema, fragment_id, query_string, path, port, domain

B. scheme, fragment_id, query_string, path, socket, domain

C. scheme, fragment_id, query_string, path, port, domain

D. scheme, fragment_id, query_language, path, port, domain

Câu 3. Năm 2023, ước tính Việt Nam đang có bao nhiêu người sử dụng Internet?

A. 40 triệu

B. 50 triệu

C. 70 triệu

D. 100 triệu

Câu 4. A Uniform Resource Locator (URL) is a reference to a web resource that specifies its location on a computer network and a _______ for retrieving it.

A. address

B. channel

C. format

D. mechanism

Câu 5. In computing, a hyperlink, or simply a link, is a ___________ to data that the user can follow by clicking or tapping. A hyperlink points to a whole document or to a specific element within a document.

A. reference

B. format

C. following

D. calling

Câu 6. HTML là:

A. Tên một trình duyệt web

B. Tên một giao thức mạng

C. Địa chỉ của một trang web

D. Là ngôn ngữ để tạo giao diện trang web

Đáp án: 1(B), 2 (C), 3(C), 4 (D), 5(A), 6 (D)

----

Bài tiếp: Bảo mật web và ứng dụng (2) - Ứng dụng web