You are on page 1of 8

V.

An toàn dịch vụ web


1. Giao thức http/https
HTTP (Hypertext Transfer Protocol) và HTTPS (Hypertext Transfer
Protocol Secure) là hai giao thức được sử dụng để truyền tải dữ liệu giữa các trình
duyệt và máy chủ web trên Internet.
HTTP (Hypertext Transfer Protocol) là một giao thức được sử dụng để
truyền tải dữ liệu giữa trình duyệt và máy chủ web trên Internet. Giao thức này
hoạt động theo cơ chế yêu cầu/phản hồi, nghĩa là trình duyệt sẽ gửi yêu cầu đến
máy chủ web, và máy chủ sẽ phản hồi lại với dữ liệu yêu cầu. Yêu cầu được gửi đi
bao gồm các thông tin như URL, phương thức (GET, POST, PUT, DELETE),
thông tin định danh và các thông số khác. Dữ liệu phản hồi từ máy chủ có thể là
một trang web HTML, hình ảnh, tệp tin, hoặc bất cứ loại dữ liệu nào có thể được
truyền tải qua mạng.
Tuy nhiên, HTTP là một giao thức không bảo mật, điều đó có nghĩa là thông
tin được truyền tải giữa trình duyệt và máy chủ sẽ được truyền tải dưới dạng văn
bản thô, không được mã hóa. Điều này có thể dẫn đến việc thông tin bị đánh cắp
hoặc bị thay đổi bởi các kẻ tấn công trung gian.
Do đó, HTTPS (Hypertext Transfer Protocol Secure) được phát triển để giải
quyết vấn đề an toàn và bảo mật cho người dùng khi truy cập các trang web.
HTTPS sử dụng SSL (Secure Socket Layer) hoặc TLS (Transport Layer Security)
để mã hóa dữ liệu truyền tải. SSL/TLS tạo ra một kết nối an toàn giữa trình duyệt
và máy chủ bằng cách sử dụng các chứng chỉ số để xác thực máy chủ, mã hóa dữ
liệu truyền tải và đảm bảo tính toàn vẹn của dữ liệu.
Khi bạn truy cập một trang web bằng HTTPS, trình duyệt của bạn sẽ hiển thị
một biểu tượng khóa xanh hoặc một biểu tượng khóa màu xám để cho biết rằng kết
nối đã được mã hóa và an toàn. Ngoài ra, địa chỉ URL của trang web sẽ bắt đầu
bằng "https" thay vì "http" như trên các trang web thông thường.
Một lợi ích của việc sử dụng HTTPS là nó cung cấp tính riêng tư và bảo mật
cho người dùng khi truy cập các trang web. Nó ngăn chặn các kẻ tấn công trung
gian từ việc theo dõi và xâm nhập vào dữ liệu của người dùng. Bằng cách mã hóa
dữ liệu truyền tải, HTTPS giúp bảo vệ thông tin đăng nhập, thông tin tài khoản
ngân hàng và các thông tin cá nhân khác của người dùng khỏi việc bị đánh cắp.
Ngoài ra, HTTPS cũng giúp cải thiện SEO (Search Engine Optimization)
cho các trang web. Google đã công bố rằng việc sử dụng HTTPS sẽ được đánh giá
cao hơn trong các thuật toán tìm kiếm của họ, điều này có nghĩa là các trang web
sử dụng HTTPS sẽ có thứ hạng cao hơn trên các kết quả tìm kiếm. Việc triển khai
HTTPS có thể phức tạp và tốn kém hơn so với HTTP. Một số vấn đề có thể xảy ra
khi triển khai HTTPS bao gồm tốc độ trang web chậm hơn, chi phí để mua và cài
đặt chứng chỉ số SSL/TLS, và các vấn đề kỹ thuật khác.
Tóm lại, HTTP và HTTPS là hai giao thức quan trọng trong việc truyền tải
dữ liệu giữa trình duyệt và máy chủ web. Trong khi HTTP là giao thức không bảo
mật và dễ bị tấn công, HTTPS được sử dụng để đảm bảo tính toàn vẹn và bảo mật
của dữ liệu truyền tải. Việc sử dụng HTTPS là một phương tiện hiệu quả để cải
thiện an toàn và bảo mật cho người dùng khi truy cập các trang web trên Internet.
2. Giao thức SSL/TLS
SSL/TLS là các giao thức quan trọng trong việc bảo vệ tính bảo mật của dữ
liệu truyền tải qua mạng. Khi người dùng truy cập một trang web được bảo vệ
bằng SSL/TLS, trình duyệt sẽ thiết lập một kết nối an toàn với máy chủ thông qua
quá trình giao tiếp SSL/TLS. Kết nối này sử dụng các phương thức mã hóa, đảm
bảo rằng dữ liệu truyền tải giữa máy khách và máy chủ được bảo vệ khỏi bị đánh
cắp hoặc thay đổi bởi kẻ tấn công.
Các phương thức mã hóa được sử dụng trong SSL/TLS bao gồm mã hóa đối
xứng và bất đối xứng. Mã hóa đối xứng được sử dụng để mã hóa dữ liệu truyền tải
giữa máy khách và máy chủ. Mã hóa bất đối xứng được sử dụng để thiết lập kênh
truyền thông an toàn bằng cách sử dụng các chứng chỉ số để xác thực tính xác thực
của máy chủ và máy khách. Các chứng chỉ số này được phát hành bởi các tổ chức
chứng thực uy tín như VeriSign hoặc Comodo.
Phiên bản của SSL/TLS đang phổ biến nhất hiện nay là TLS 1.2 và TLS 1.3.
TLS 1.3 là phiên bản mới nhất và được coi là phiên bản an toàn và hiệu quả nhất.
TLS 1.3 có nhiều cải tiến về hiệu suất và bảo mật so với các phiên bản trước đó.
Ngoài việc sử dụng để bảo vệ các trang web, SSL/TLS còn được sử dụng
trong các ứng dụng khác như email, ứng dụng truyền tải dữ liệu và các giao thức
truyền tải khác.
Bên cạnh đó ,SSL/TLS cũng có một số lỗ hổng bảo mật. Ví dụ, khi một máy chủ
SSL/TLS sử dụng chứng chỉ không đáng tin cậy hoặc đã bị thu hồi, kẻ tấn công có
thể giả mạo kết nối an toàn và tấn công dữ liệu truyền tải giữa máy khách và máy
chủ. Để tránh các lỗ hổng này, người dùng nên sử dụng các phiên bản mới nhất của
SSL/TLS và các chứng chỉ số được phát hành bởi các tổ chức chứng thực uy tín.
Các cuộc tấn công SSL/TLS cũng có thể xảy ra bằng cách sử dụng các kỹ
thuật như SSL stripping, trong đó kẻ tấn công sẽ chuyển hướng kết nối không an
toàn để bị giả mạo bởi kẻ tấn công. Do đó, người dùng nên luôn kiểm tra địa chỉ
URL và đảm bảo rằng trang web mà họ đang truy cập được bảo vệ bằng SSL/TLS.
SSL/TLS cũng có thể bị tấn công bởi các cuộc tấn công bắt đầu từ khai thác
lỗ hổng phần mềm để tấn công các cài đặt SSL/TLS trên máy chủ. Một số lỗ hổng
phần mềm đã được tìm thấy trong quá khứ, như lỗ hổng Heartbleed, đã làm cho
các phiên bản SSL/TLS cũ hơn trở nên không an toàn.
Tuy nhiên, với các cải tiến về bảo mật và năng suất của phiên bản mới nhất
của SSL/TLS, các rủi ro bảo mật đã được giảm thiểu đáng kể. Điều quan trọng là
các nhà cung cấp dịch vụ web và các tổ chức sử dụng SSL/TLS cần cập nhật và sử
dụng các phiên bản mới nhất của giao thức để đảm bảo rằng dữ liệu của người
dùng được bảo vệ tốt nhất có thể.
Tổng quan, SSL/TLS là các giao thức quan trọng để đảm bảo tính bảo mật
của dữ liệu truyền tải qua mạng. Các phiên bản mới nhất của SSL/TLS được coi là
an toàn và hiệu quả nhất. Tuy nhiên, người dùng và các nhà cung cấp dịch vụ web
cần cập nhật và sử dụng các phiên bản mới nhất để giảm thiểu các rủi ro bảo mật
và đảm bảo rằng dữ liệu của người dùng được bảo vệ tốt nhất có thể.
3. SQL Injection
SQL Injection là một kỹ thuật tấn công vào các hệ thống quản lý cơ sở dữ
liệu (Database Management System - DBMS) bằng cách chèn vào các truy vấn
SQL bất hợp pháp. Kỹ thuật này tận dụng việc người dùng có thể nhập các giá trị
đầu vào để thực thi các câu lệnh SQL trên hệ thống.

Để hiểu rõ hơn về SQL Injection, ta có thể xem xét một ví dụ đơn giản: giả sử một
ứng dụng web yêu cầu người dùng nhập tên người dùng và mật khẩu để đăng nhập
vào hệ thống. Ứng dụng sẽ kiểm tra xem thông tin đăng nhập có hợp lệ hay không
bằng cách truy vấn cơ sở dữ liệu để tìm kiếm thông tin người dùng. Nếu tên người
dùng và mật khẩu hợp lệ, ứng dụng sẽ cho phép người dùng truy cập vào hệ thống.

Tuy nhiên, nếu ứng dụng không được xây dựng đúng cách, kẻ tấn công có thể chèn
vào các ký tự đặc biệt hoặc các truy vấn SQL độc hại vào thông tin đăng nhập, dẫn
đến việc truy vấn SQL độc hại được thực thi.

Ví dụ, nếu người dùng nhập tên đăng nhập là "admin" và mật khẩu là "' OR 1=1
--", các ký tự "' OR 1=1 --" sẽ được chèn vào truy vấn SQL, tạo thành truy vấn mới
như sau:
SELECT * FROM users WHERE username='admin' AND password='' OR 1=1 --';

Kết quả của truy vấn này sẽ là tất cả các bản ghi trong bảng users của cơ sở dữ
liệu, bất kể mật khẩu đăng nhập là gì.
Các kỹ thuật SQL Injection cũng có thể được sử dụng để lấy thông tin nhạy cảm từ
cơ sở dữ liệu, thay đổi hoặc xóa dữ liệu, hay thực hiện các hành động khác mà
người dùng không được phép làm.
Để ngăn chặn SQL Injection, các lập trình viên nên kiểm tra và xử lý đầu
vào đúng cách. Các giá trị đầu vào, như tên người dùng và mật khẩu, nên được
kiểm tra để đảm bảo rằng chúng không chứa các ký tự đặc biệt hoặc các truy vấn
SQL độc hại. Các lớp bảo vệ bổ sung cũng nên được thêm vào hệ thống, bao gồm
các biện pháp bảo mật mạnh hơn như mã hóa dữ liệu, sử dụng các thư viện SQL
Injection Prevention và tạo các chính sách bảo mật cụ thể cho cơ sở dữ liệu.

Ngoài ra, các lập trình viên cần phải sử dụng các cơ chế tham số hóa
(parameterization) khi thực hiện các truy vấn SQL. Khi sử dụng cơ chế tham số
hóa, các giá trị đầu vào sẽ được truyền dưới dạng tham số cho truy vấn SQL, thay
vì được chèn trực tiếp vào truy vấn. Điều này giúp ngăn chặn các ký tự đặc biệt
hoặc các truy vấn SQL độc hại được chèn vào các giá trị đầu vào.

Các chính sách bảo mật cần được áp dụng để đảm bảo an toàn cho cơ sở dữ
liệu. Các chính sách này bao gồm việc giới hạn quyền truy cập vào cơ sở dữ liệu,
kiểm soát các truy vấn SQL được phép thực thi, tạo các bản sao dự phòng cho cơ
sở dữ liệu và theo dõi các hoạt động trên hệ thống.

Trong tổng thể, SQL Injection là một trong những mối đe dọa lớn đối với
các ứng dụng web dựa trên cơ sở dữ liệu. Để đảm bảo an toàn cho cơ sở dữ liệu và
thông tin của người dùng, các lập trình viên cần phải áp dụng các biện pháp bảo
mật phù hợp và kiểm tra đầu vào đúng cách để ngăn chặn các tấn công SQL
Injection.
4. Cross SiteScripting
Cross-Site Scripting (XSS) là một kỹ thuật tấn công phổ biến trên các ứng
dụng web, trong đó kẻ tấn công chèn mã độc (script) vào một trang web mà người
dùng truy cập, để đánh cắp thông tin người dùng hoặc thực hiện các hành động trái
phép như thay đổi nội dung trang web, tạo tài khoản giả mạo, v.v. XSS thường
được thực hiện bằng cách chèn mã độc vào các trường dữ liệu trên trang web,
chẳng hạn như ô tìm kiếm hoặc ô đăng nhập, và sau đó khi trang web hiển thị dữ
liệu này cho người dùng, mã độc sẽ được thực thi trong trình duyệt của người
dùng.
Một ví dụ đơn giản về tấn công XSS là khi kẻ tấn công chèn đoạn mã độc
vào phần bình luận của một trang web, ví dụ như trang web bán hàng trực tuyến.
Nếu trang web không kiểm tra các dữ liệu đầu vào được nhập vào, mã độc này sẽ
được hiển thị trực tiếp trên trang web khi một người dùng truy cập vào phần bình
luận. Ví dụ, đoạn mã sau đây có thể được sử dụng để thực hiện một cuộc tấn công
XSS trên trang web:
<script>alert('Hello, world!');</script>

Đoạn mã này sẽ hiển thị hộp thoại thông báo khi người dùng truy cập vào trang
web chứa đoạn mã này.

Có ba loại XSS phổ biến:


 Reflected XSS: kẻ tấn công tạo ra một đoạn mã độc và gửi nó đến một trang
web, nơi mà đoạn mã độc được phản hồi lại cho người dùng trong phản hồi
của trang web.
 Stored XSS: kẻ tấn công chèn đoạn mã độc vào một trang web, nơi mà đoạn
mã độc được lưu trữ trên máy chủ và sẵn sàng để được hiển thị đến người
dùng trong tương lai.
 DOM-based XSS: kẻ tấn công thay đổi hoặc chèn mã độc trực tiếp vào các
thành phần của trang web sử dụng các ngôn ngữ như JavaScript, và sử dụng
các trình duyệt web để thực hiện các cuộc tấn công phía người dùng.
Để bảo vệ chống lại các cuộc tấn công XSS, các nhà phát triển web có thể sử
dụng các phương pháp bảo mật như sử dụng thư viện bảo mật, kiểm tra đầu vào
người dùng, mã hóa dữ liệu, và hạn chế quyền truy cập của người dùng trên trang
web. Ví dụ, các trang web có thể kiểm tra các dữ liệu đầu vào của người dùng bằng
cách sử dụng các hàm bảo mật để loại bỏ các ký tự đặc biệt và mã độc. Hơn nữa,
các trang web có thể sử dụng các phương pháp mã hóa dữ liệu để giảm thiểu khả
năng bị tấn công XSS. Các phương pháp mã hóa dữ liệu bao gồm mã hóa URL và
mã hóa HTML.
Một cách khác để bảo vệ trang web chống lại các cuộc tấn công XSS là giới hạn
quyền truy cập của người dùng trên trang web. Ví dụ, các trang web có thể sử dụng
cơ chế phân quyền để chỉ cho phép người dùng được truy cập vào các tính năng
cần thiết và giới hạn quyền truy cập vào các tính năng khác.
Tuy nhiên, để ngăn chặn các cuộc tấn công XSS, các nhà phát triển web cần
phải hiểu rõ về cách thức hoạt động của các kỹ thuật tấn công này. Họ cũng cần
phải thực hiện kiểm tra bảo mật thường xuyên và sử dụng các công cụ và phần
mềm bảo mật để giúp phát hiện các lỗ hổng bảo mật trên trang web của họ.
Cross-Site Scripting (XSS) là một trong những kỹ thuật tấn công phổ biến nhất
trên các ứng dụng web hiện nay. Để bảo vệ trang web của mình chống lại các cuộc
tấn công XSS, các nhà phát triển web cần phải sử dụng các phương pháp bảo mật
như kiểm tra đầu vào người dùng, mã hóa dữ liệu và giới hạn quyền truy cập của
người dùng. Việc thực hiện kiểm tra bảo mật thường xuyên và sử dụng các công cụ
và phần mềm bảo mật cũng là một cách hiệu quả để ngăn chặn các cuộc tấn công
XSS trên trang web.
5. Tường lửa
Tường lửa (Firewall) là một công nghệ quan trọng trong việc bảo vệ mạng
máy tính khỏi các mối đe dọa từ bên ngoài. Đặc điểm quan trọng của tường lửa là
khả năng kiểm soát và giám sát lưu lượng mạng đang đi qua nó. Tường lửa cũng
có thể kiểm soát các ứng dụng và dịch vụ mạng trên một máy tính hoặc một máy
chủ.
Tường lửa có thể được cài đặt trên phần cứng hoặc phần mềm. Tường lửa
phần cứng là các thiết bị riêng biệt được cấu hình để chặn các kết nối không mong
muốn đến hoặc đi từ mạng của bạn. Các tường lửa phần mềm thường được cài đặt
trực tiếp trên máy tính và cung cấp các tính năng tường lửa thông qua phần mềm.
Công dụng chính của tường lửa là bảo vệ mạng khỏi các cuộc tấn công từ
bên ngoài. Tường lửa cung cấp cho người quản trị mạng khả năng kiểm soát truy
cập vào các dịch vụ và ứng dụng mạng, đồng thời cho phép các kết nối an toàn và
được ủy quyền. Ngoài ra, tường lửa còn giúp ngăn chặn các phần mềm độc hại và
virus từ việc lây lan qua mạng.
- Ví dụ về tính chất của tường lửa bao gồm khả năng kiểm soát truy cập đến
các trang web và các ứng dụng mạng như trò chuyện trực tuyến, email, FTP,
SSH và nhiều loại ứng dụng khác. Người quản trị mạng có thể thiết lập các
quy tắc tường lửa để chặn truy cập đến các trang web có nội dung không phù
hợp hoặc các trang web chứa phần mềm độc hại.
- Tường lửa cũng có thể giúp ngăn chặn các cuộc tấn công từ bên ngoài bằng
cách chặn các kết nối đến các cổng mạng nhất định hoặc từ các địa chỉ IP
không ủy quyền. Ví dụ, tường lửa có thể được cấu hình để chặn các kết nối
đến cổng SSH từ địa chỉ IP không quen thuộc hoặc các quốc gia có tiềm
năng nguy hiểm.
- Trong số các tính chất của tường lửa, tính năng giám sát lưu lượng mạng
cũng rất quan trọng. Tường lửa có thể giám sát và ghi lại thông tin về lưu
lượng mạng đi qua nó, đồng thời cho phép người quản trị mạng theo dõi
các hoạt động mạng và phát hiện các hoạt động không bình thường. Các
tường lửa cũng có thể cho phép kiểm soát băng thông và giới hạn tốc độ
kết nối đến mạng.
Một ví dụ về công dụng của tường lửa trong môi trường doanh nghiệp là kiểm
soát truy cập vào các dịch vụ mạng như email và web. Người quản trị mạng có thể
cấu hình tường lửa để chặn truy cập vào các trang web cá nhân hoặc giới hạn truy
cập vào các dịch vụ web chỉ định cho các nhân viên cần thiết. Tường lửa cũng có
thể giúp giảm nguy cơ tấn công từ bên ngoài vào mạng của doanh nghiệp, bảo vệ
thông tin quan trọng và giữ an toàn mạng.
Ngoài ra, tường lửa cũng có thể được sử dụng trong các hệ thống nhúng hoặc
thiết bị điện tử để bảo vệ các thiết bị này khỏi các cuộc tấn công từ bên ngoài và
giữ an toàn thông tin. Ví dụ, tường lửa có thể được sử dụng trong các hệ thống
điện tử y tế để bảo vệ thông tin bệnh nhân và ngăn chặn các cuộc tấn công từ bên
ngoài vào hệ thống.
Tường lửa là một công nghệ quan trọng để bảo vệ mạng máy tính khỏi các cuộc
tấn công từ bên ngoài và đảm bảo an toàn mạng. Tường lửa có nhiều tính chất và
công dụng khác nhau, bao gồm kiểm soát truy cập vào các dịch vụ và ứng dụng
mạng, giám sát lưu lượng mạng, bảo vệ thông tin quan trọng và ngăn chặn các
cuộc tấn công từ bên ngoài.

You might also like