Nguon: Microsoft Learn · .NET 8.0

Các chủ đề về bảo mật trong ASP.NET Core

Nguồn: ASP.NET Core security topics | Phiên bản: .NET 8.0

Trong bài viết này

ASP.NET Core cho phép các nhà phát triển cấu hình và quản lý bảo mật. Danh sách dưới đây cung cấp các liên kết đến các bài viết về làm việc với bảo mật trong ASP.NET Core:

Các tính năng bảo mật này cho phép bạn xây dựng các ứng dụng ASP.NET Core mạnh mẽ và bảo mật.

Đối với phạm vi bảo mật Blazor — bổ sung hoặc thay thế hướng dẫn trong phần này — hãy xem ASP.NET Core Blazor authentication (xác thực) and authorization (phân quyền) và các bài viết khác trong phần Security and Identity (Bảo mật và Danh tính) của Blazor.

Các tính năng bảo mật của ASP.NET Core

ASP.NET Core cung cấp nhiều công cụ và thư viện để bảo mật các ứng dụng ASP.NET Core, chẳng hạn như các nhà cung cấp Identity (danh tính) tích hợp sẵn và các dịch vụ Identity (danh tính) của bên thứ ba như Facebook, Twitter và LinkedIn. ASP.NET Core cung cấp một số phương pháp để lưu trữ bí mật ứng dụng.

Authentication (Xác thực) vs. Authorization (Phân quyền)

Authentication (Xác thực) là quá trình mà người dùng cung cấp thông tin xác thực được so sánh với thông tin xác thực được lưu trữ trong hệ điều hành, cơ sở dữ liệu, ứng dụng hoặc tài nguyên. Khi hai bộ thông tin xác thực khớp nhau, người dùng xác thực thành công. Sau đó họ có thể thực hiện các hành động mà họ được authorization (phân quyền). Quá trình authorization (phân quyền) xác định các hành động mà người dùng được phép thực hiện.

Một cách khác để hiểu về authentication (xác thực) là coi nó như một cách để vào một không gian, nơi không gian đó là máy chủ, cơ sở dữ liệu, ứng dụng hoặc tài nguyên. Authorization (Phân quyền) xác định những hành động nào người dùng có thể thực hiện đối với các đối tượng trong không gian đó (máy chủ, cơ sở dữ liệu hoặc ứng dụng).

Các lỗ hổng phổ biến trong phần mềm

ASP.NET Core và Entity Framework chứa các tính năng giúp bạn bảo mật ứng dụng và ngăn chặn các vi phạm bảo mật. Danh sách liên kết dưới đây dẫn đến tài liệu mô tả chi tiết các kỹ thuật để tránh các lỗ hổng bảo mật phổ biến nhất trong ứng dụng web:

Còn nhiều lỗ hổng khác mà bạn nên biết. Để biết thêm thông tin, hãy xem các bài viết khác trong phần Security and Identity (Bảo mật và Danh tính) của mục lục.

Các luồng authentication (xác thực) bảo mật

Chúng tôi khuyến nghị sử dụng tùy chọn authentication (xác thực) bảo mật nhất. Đối với các dịch vụ Azure, authentication (xác thực) bảo mật nhất là managed identities (danh tính được quản lý).

Tránh sử dụng Resource Owner Password Credentials (ROPG) grant:

Managed identities (Danh tính được quản lý) là cách xác thực bảo mật với các dịch vụ mà không cần lưu trữ thông tin xác thực trong code, biến môi trường hoặc tệp cấu hình. Managed identities (Danh tính được quản lý) có sẵn cho các dịch vụ Azure và có thể được sử dụng với Azure SQL, Azure Storage và các dịch vụ Azure khác:

Khi ứng dụng được triển khai lên máy chủ thử nghiệm, có thể sử dụng biến môi trường để đặt chuỗi kết nối tới máy chủ cơ sở dữ liệu thử nghiệm. Để biết thêm thông tin, hãy xem Configuration (Cấu hình). Các biến môi trường thường được lưu trữ dưới dạng văn bản thuần túy, không được mã hóa. Nếu máy hoặc tiến trình bị xâm phạm, các biến môi trường có thể bị các bên không đáng tin cậy truy cập. Chúng tôi không khuyến nghị sử dụng biến môi trường để lưu trữ chuỗi kết nối production (sản xuất) vì đây không phải là cách tiếp cận bảo mật nhất.

Hướng dẫn về dữ liệu cấu hình:

Để biết thêm thông tin, hãy xem:

Để biết thông tin về các nhà cung cấp đám mây khác, hãy xem:

Mô hình ứng dụng web doanh nghiệp

Để được hướng dẫn về việc tạo ứng dụng ASP.NET Core đáng tin cậy, bảo mật, hiệu năng cao, có thể kiểm thử và có thể mở rộng, hãy xem Enterprise web app patterns (Mô hình ứng dụng web doanh nghiệp). Một ứng dụng web mẫu chất lượng production (sản xuất) hoàn chỉnh triển khai các mô hình này đang có sẵn.

Nội dung liên quan