Triển khai Chính sách bảo mật nội dung (CSP) trong Node.js Express

Tram Ho

Chính sách bảo mật nội dung (CSP) là một tính năng bảo mật quan trọng cho các ứng dụng web hiện đại. Chúng giúp bảo vệ ứng dụng của bạn khỏi cross-site scripting (XSS) và các cuộc tấn công chèn mã khác bằng cách cho phép bạn chỉ định các nguồn nội dung mà trình duyệt có thể tải. Trong bài viết này, chúng ta sẽ thảo luận cách triển khai CSP trong ứng dụng Node.js Express một cách chi tiết và trực quan.

1. Hiểu chính sách bảo mật nội dung

Chính sách bảo mật nội dung là gì?

CSP là một tính năng bảo mật cho phép bạn xác định nguồn nội dung mà trình duyệt có thể tải. Điều này có thể bao gồm bảng định kiểu, tập lệnh, hình ảnh, v.v. Bằng cách chỉ định các nguồn, bạn có thể ngăn nội dung độc hại và trái phép được thực thi trên trang web của mình.

Tại sao nên sử dụng CSP trong ứng dụng của bạn?

CSP giúp:

  1. Ngăn chặn các cuộc tấn công XSS
  2. Giảm bề mặt tấn công
  3. Bảo vệ dữ liệu người dùng nhạy cảm
  4. Đảm bảo tính toàn vẹn của ứng dụng của bạn

2. Thiết lập Ứng dụng Node.js Express

Để bắt đầu, hãy thiết lập một ứng dụng Node.js Express cơ bản. Đầu tiên, tạo một thư mục mới và khởi tạo một dự án npm mới:

Tiếp theo, cài đặt Express và bất kỳ phụ thuộc cần thiết nào khác:

Tạo tệp app.js và thiết lập máy chủ Express cơ bản:

Bây giờ chúng ta đã thiết lập một ứng dụng Express cơ bản, hãy chuyển sang triển khai CSP.

3. Triển khai CSP bằng phần mềm trung gian Mũ bảo hiểm

Chúng tôi sẽ sử dụng phần mềm trung gian Mũ bảo hiểm để đặt tiêu đề CSP. Mũ bảo hiểm là tập hợp các chức năng phần mềm trung gian bảo mật dành cho Express, đặt các tiêu đề HTTP khác nhau để giúp bảo mật ứng dụng của bạn.

Bước 1: Nhập khẩu mũ bảo hiểm

Trong tệp app.js của bạn, hãy nhập gói Mũ bảo hiểm:

Bước 2: Định cấu hình Phần mềm trung gian CSP Mũ bảo hiểm

Tạo một đối tượng cấu hình CSP với các chính sách mong muốn của bạn:

Trong ví dụ này, chúng tôi đã chỉ định nguồn cho các loại nội dung khác nhau như tập lệnh, kiểu, hình ảnh, v.v. Sửa đổi đối tượng cấu hình cho phù hợp với yêu cầu của ứng dụng của bạn.

Bước 3: Áp dụng Phần mềm trung gian CSP Mũ bảo hiểm

Áp dụng phần mềm trung gian CSP cho ứng dụng Express của bạn:

4. Kiểm tra triển khai CSP của bạn

Bây giờ chúng tôi đã triển khai CSP trong ứng dụng Node.js Express của mình, điều cần thiết là kiểm tra nó để đảm bảo nó hoạt động như mong đợi.

  1. Bắt đầu ứng dụng của bạn: $ node app.js
  2. Mở trình duyệt của bạn và truy cập http://localhost:3000 .
  3. Mở công cụ dành cho nhà phát triển của trình duyệt và kiểm tra tab Network . Bạn sẽ thấy tiêu đề Content-Security-Policy với các chính sách được chỉ định.
  4. Kiểm tra các loại nội dung khác nhau bằng cách tải tài nguyên từ các nguồn được phép và không được phép. Ví dụ: thử tải tập lệnh hoặc hình ảnh từ một nguồn không được chỉ định trong cấu hình CSP của bạn. Bạn sẽ thấy lỗi trong bảng điều khiển của trình duyệt, cho biết tài nguyên đã bị chặn do vi phạm CSP của bạn.
  5. Theo dõi nhật ký máy chủ của bạn để biết bất kỳ báo cáo vi phạm CSP nào. Nếu ứng dụng của bạn có điểm cuối báo cáo, hãy kiểm tra nhật ký để đảm bảo rằng các vi phạm đang được báo cáo như dự kiến.

5. Xử lý vi phạm CSP

CSP cung cấp tính năng báo cáo cho phép bạn theo dõi và phân tích các vi phạm chính sách. Bạn có thể định cấu hình điểm cuối báo cáo để nhận báo cáo về vi phạm CSP.

Bước 1: Thiết lập Điểm cuối báo cáo

Tạo một tuyến mới trong tệp app.js của bạn để xử lý các báo cáo vi phạm CSP:

Tuyến đường này ghi lại báo cáo vi phạm CSP nhận được và trả về phản hồi 204 No Content .

Bước 2: Thêm Điểm cuối Báo cáo vào Cấu hình CSP của bạn

Cập nhật đối tượng cấu hình CSP của bạn để bao gồm chỉ thị reportUri :

Bây giờ, ứng dụng của bạn sẽ gửi báo cáo vi phạm CSP đến điểm cuối /csp-report .

Phần kết luận

Triển khai Chính sách bảo mật nội dung trong ứng dụng Node.js Express là một biện pháp bảo mật cần thiết để bảo vệ ứng dụng của bạn khỏi các cuộc tấn công khác nhau. Sử dụng phần mềm trung gian Mũ bảo hiểm, bạn có thể dễ dàng thiết lập tiêu đề CSP, xác định nguồn được phép cho các loại nội dung khác nhau và theo dõi vi phạm thông qua điểm cuối báo cáo. Đảm bảo kiểm tra kỹ lưỡng việc triển khai của bạn và cập nhật cấu hình CSP nếu cần để đảm bảo tính bảo mật và tính toàn vẹn của ứng dụng của bạn.

Và cuối cùng

Như mọi khi, tôi hy vọng bạn thích bài viết này và có một cái gì đó mới. Xin cảm ơn và hẹn gặp lại các bạn trong những bài viết tiếp theo!

Nếu các bạn thích bài viết này thì hãy cho mình 1 like và subscribe để ủng hộ mình nhé. Cảm ơn.

Giới thiệu

Chia sẻ bài viết ngay

Nguồn bài viết : Viblo