Một ứng dụng không an toàn có thể khiến người dùng và hệ thống gặp nhiều loại thiệt hại. Khi một bên độc hại sử dụng lỗ hổng bảo mật hoặc thiếu tính năng bảo mật để gây ra thiệt hại, đó được gọi là tấn công. Chúng ta sẽ tìm hiểu các loại tấn công khác nhau trong hướng dẫn này để bạn biết những điều cần tìm khi bảo mật ứng dụng của mình.
Tấn công chủ động và tấn công bị động
Các cuộc tấn công có thể được chia thành hai loại: chủ động và bị động.
Các cuộc tấn công đang diễn ra
Với một cuộc tấn công đang hoạt động,kẻ tấn công sẽ cố gắng trực tiếp xâm nhập vào ứng dụng. Có nhiều cách để thực hiện việc này, từ sử dụng danh tính giả để truy cập vào dữ liệu nhạy cảm (tấn công giả trang) cho đến việc ngập lụt máy chủ với lượng lớn lưu lượng truy cập khiến ứng dụng của bạn không phản hồi (tấn công từ chối dịch vụ).
Các cuộc tấn công đang diễn ra cũng có thể được thực hiện đối với dữ liệu trong quá trình truyền. Kẻ tấn công có thể sửa đổi dữ liệu ứng dụng của bạn trước khi truy cập vào trình duyệt của người dùng, hiển thị thông tin đã sửa đổi trên trang web hoặc hướng người dùng tới một đích đến ngoài ý muốn. Quá trình này đôi khi được gọi là sửa đổi thông báo.
![sửa đổi thông báo](https://web.developers.google.cn/static/articles/security-attacks/image/modification-message.png?authuser=3&hl=vi)
Tấn công thụ động
Với một tấn công bị động, kẻ tấn công cố gắng thu thập hoặc tìm hiểu thông tin từ ứng dụng nhưng không ảnh hưởng đến chính ứng dụng đó.
![tấn công bị động](https://web.developers.google.cn/static/articles/security-attacks/image/passive-attack-deb3e57e07553.png?authuser=3&hl=vi)
Hãy tưởng tượng một người nào đó đang nghe trộm cuộc trò chuyện của bạn với bạn bè và gia đình, thu thập thông tin về cuộc sống cá nhân của bạn, bạn bè của bạn là ai và bạn tụ tập ở đâu. Bạn có thể làm điều tương tự với lưu lượng truy cập vào trang web. Kẻ tấn công có thể thu thập dữ liệu giữa trình duyệt và máy chủ thu thập tên người dùng và mật khẩu, nhật ký duyệt web của người dùng cũng như dữ liệu được trao đổi.
Phòng thủ trước các cuộc tấn công
Kẻ tấn công có thể trực tiếp gây hại cho ứng dụng của bạn hoặc thực hiện một hoạt động độc hại trên trang web mà bạn hoặc người dùng của bạn không nhận thấy. Bạn cần có các cơ chế để phát hiện và ngăn chặn các cuộc tấn công.
Rất tiếc, không có giải pháp duy nhất nào có thể giúp ứng dụng của bạn an toàn 100%. Trong thực tế, nhiều tính năng và kỹ thuật bảo mật được sử dụng trong các lớp để ngăn chặn hoặc trì hoãn thêm cuộc tấn công (đây được gọi là phòng thủ theo chiều sâu). Nếu ứng dụng của bạn có chứa một biểu mẫu, thì bạn có thể kiểm tra dữ liệu đầu vào trong trình duyệt, sau đó trên máy chủ và cuối cùng là tại cơ sở dữ liệu; bạn cũng sẽ sử dụng HTTPS để bảo mật dữ liệu trong quá trình truyền.
Tóm tắt
Vì nhiều cuộc tấn công có thể xảy ra mà không cần tới máy chủ của bạn, nên đôi khi rất khó để phát hiện xem các cuộc tấn công có đang diễn ra hay không. Tin vui là các trình duyệt web đã tích hợp sẵn các tính năng bảo mật mạnh mẽ. Hãy theo dõi chủ đề tiếp theo "Cách trình duyệt giảm thiểu các cuộc tấn công" để tìm hiểu thêm.