Khái niệm Web Security

Web Security là tập hợp các nguyên tắc, biện pháp và công nghệ nhằm bảo vệ website, ứng dụng web và dữ liệu khỏi các hành vi truy cập trái phép, tấn công độc hại hoặc khai thác lỗ hổng.

Nó không chỉ bao gồm việc ngăn chặn hacker, mà còn đảm bảo rằng dữ liệu:

  • Không bị đánh cắp (confidentiality),
  • Không bị thay đổi trái phép (integrity),
  • Có thể truy cập đúng lúc bởi người dùng hợp lệ (availability).

Web Security nằm trong lĩnh vực lớn hơn gọi là Application Security và có mối quan hệ chặt chẽ với Network Security, Identity & Access Management, và Data Protection.

Mục tiêu của Web Security

Web Security theo đuổi các mục tiêu bảo mật truyền thống trong mô hình CIA triad:

Confidentiality (Tính bảo mật)

  • Đảm bảo chỉ người có quyền mới truy cập được dữ liệu.
  • Dữ liệu nhạy cảm (mật khẩu, thẻ tín dụng, thông tin cá nhân) phải được mã hóa và bảo vệ.

Integrity (Tính toàn vẹn)

  • Dữ liệu không bị chỉnh sửa ngoài ý muốn hoặc bởi bên thứ ba không hợp lệ.
  • Ví dụ: kiểm tra mã xác thực, mã hóa, hashing dữ liệu.

Availability (Tính sẵn sàng)

  • Hệ thống phải luôn hoạt động đúng, phản hồi nhanh chóng và không bị tấn công từ chối dịch vụ (DDoS).
  • Hạ tầng mạnh, có khả năng tự phục hồi là điều quan trọng.

Authentication & Authorization (Xác thực và phân quyền)

  • Đảm bảo người dùng là ai và được phép làm gì.
  • Tránh truy cập sai quyền hoặc lạm dụng tài khoản người khác.

Một vài mối đe dọa bảo mật Web phổ biến

Tổ chức OWASP (Open Web Application Security Project) liệt kê Top 10 nguy cơ bảo mật web hàng đầu.

Broken Access Control

Hệ thống không kiểm soát tốt quyền truy cập, cho phép người dùng truy cập tài nguyên không được phép.

Ví dụ: Người dùng thường có thể truy cập tài nguyên của người khác bằng cách thay đổi ID trong URL.

Cryptographic Failures

Lỗi trong mã hóa hoặc không mã hóa dữ liệu nhạy cảm như mật khẩu, thẻ tín dụng, v.v.

Ví dụ: Truyền dữ liệu qua HTTP thay vì HTTPS.

Injection

Ứng dụng cho phép người dùng nhập dữ liệu độc hại mà không lọc sạch, dẫn đến việc thực thi lệnh không mong muốn.

Ví dụ: SQL Injection, Command Injection, LDAP Injection…

Insecure Design

Thiết kế ứng dụng ngay từ đầu đã thiếu tư duy bảo mật hoặc không tính đến các rủi ro.

Ví dụ: Không có giới hạn số lần đăng nhập, không thiết kế kiểm soát quyền rõ ràng.

Security Misconfiguration

Cấu hình hệ thống sai hoặc không an toàn, như để mặc định, bật chế độ debug, lộ thông tin lỗi.

Ví dụ: Không tắt cổng admin, public file .git, cấu hình server sai.

Vulnerable and Outdated Components

Sử dụng thư viện, phần mềm, framework đã lỗi thời hoặc chứa lỗ hổng bảo mật đã biết.

Ví dụ: Dùng jQuery, Log4j, Spring chưa được cập nhật bản vá bảo mật.

Identification and Authentication Failures

Lỗi trong xác thực người dùng như mật khẩu yếu, token không được bảo vệ, không giới hạn login.

Ví dụ: Cho phép đăng nhập brute-force không giới hạn.

Software and Data Integrity Failures

Không xác minh tính toàn vẹn của phần mềm, mã nguồn hoặc dữ liệu được tải về.

Ví dụ: Tải script từ CDN không có kiểm tra hash hoặc chữ ký số.

Security Logging and Monitoring Failures

Không ghi log hoặc không theo dõi đủ để phát hiện và phản hồi sự cố kịp thời.

Ví dụ: Không có alert khi người lạ đăng nhập từ vị trí bất thường.

Server-Side Request Forgery (SSRF)

Ứng dụng gửi request đến các dịch vụ nội bộ (internal services) mà attacker kiểm soát đầu vào, có thể dẫn đến lộ thông tin hệ thống.

Ví dụ: Cho phép người dùng nhập URL và hệ thống gửi request nội bộ theo URL đó.

Một số kỹ thuật bảo mật Web tốt hơn

Authentication & Authorization

  • Đăng nhập bằng username/password, 2FA, OAuth2, JWT,…
  • Phân quyền theo vai trò (RBAC), cấp độ truy cập rõ ràng.

HTTPS (SSL/TLS)

  • Mã hóa toàn bộ dữ liệu truyền đi giữa trình duyệt và máy chủ.

Input Validation & Sanitization

  • Kiểm tra và làm sạch dữ liệu đầu vào, ngăn SQLi, XSS,…

CORS, CSP, HSTS

  • Thiết lập header HTTP để giới hạn nguồn truy cập, chống clickjacking, XSS,…

WAF (Web Application Firewall)

  • Lọc và chặn các request độc hại vào ứng dụng.

Rate Limiting & Captcha

  • Giới hạn số lượng request để chống brute-force hoặc DDoS.

About the Author

Đức Phát

View all author's posts

Leave a Comment

Your email address will not be published. Required fields are marked *

Bài viết khác

Markdown

Markdown là một ngôn ngữ đánh dấu nhẹ (lightweight markup language) dùng để định dạng văn bản thuần túy (plain text), thường được sử dụng trong các tài liệu như README, bài viết blog, tài liệu hướng dẫn, và cả trong GitHub, Stack Overflow, hoặc các trình soạn thảo như VS Code, Obsidian… Markdown được […]

CSS

CSS (Cascading Style Sheets – tạm dịch: Tập tin định kiểu tầng) là ngôn ngữ dùng để mô tả cách trình bày (giao diện) của một tài liệu HTML. Nói đơn giản, CSS giúp làm đẹp trang web: chỉnh màu sắc, font chữ, bố cục, khoảng cách, hiệu ứng chuyển động, v.v. CSS được phát […]

HTML

HTML (HyperText Markup Language) là ngôn ngữ đánh dấu siêu văn bản, được dùng để xây dựng cấu trúc của một trang web. Nói cách khác, HTML cho trình duyệt biết nội dung nào sẽ hiển thị và hiển thị như thế nào (như tiêu đề, đoạn văn, hình ảnh, liên kết…). Một tài liệu […]

Browser

Browser (Web Browser, Trình duyệt web) là phần mềm trên máy tính, điện thoại hoặc thiết bị thông minh, cho phép người dùng truy cập, hiển thị và tương tác với các trang web, tài nguyên Internet. Về bản chất, trình duyệt gửi các yêu cầu (HTTP/HTTPS request) đến máy chủ web, nhận về mã […]

Tìm hiểu DNS

DNS là gì? DNS (Domain Name System) là một dịch vụ phân giải tên miền, giúp chuyển đổi các tên miền (ví dụ: www.ducphat.com) thành địa chỉ IP (ví dụ: 93.184.216.34) và ngược lại. Thay vì phải nhớ dãy số IP, chúng ta chỉ cần nhập tên miền, DNS sẽ tìm kiếm địa chỉ IP […]

Tìm hiểu giao thức HTTP

HTTP là gì? HTTP (HyperText Transfer Protocol) là giao thức truyền tải siêu văn bản, dùng để trao đổi dữ liệu giữa client (thường là trình duyệt web) và server (máy chủ web) qua mô hình request–response. HTTP hoạt động ở tầng ứng dụng (Application Layer) trong mô hình OSI/TCP-IP, dựa trên kết nối TCP […]