Cách triển khai Chính sách bảo mật nội dung (CSP) với 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 trong các ứng dụng web hiện đại. 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 chỉ định nguồn nội dung mà trình duyệt có thể tải. Bài viết này cung cấp hướng dẫn chi tiết và trực quan về cách triển khai CSP trong ứng dụng Node.js Express của bạn.

1. Tìm hiểu Chính sách bảo mật nội dung (CSP)

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 xác định nguồn nội dung mà trình duyệt có thể tải. Điều này bao gồm bảng định kiểu, tập lệnh, hình ảnh, v.v. Bằng cách chỉ định nguồn, bạn có thể ngăn nội dung độc hại hoặc trái phép chạy.

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

CSP hữu ích cho:

  1. Ngăn chặn các cuộc tấn công XSS
  2. giảm phạm vi 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

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

Đầu tiên, hãy thiết lập một ứng dụng Node.js Express cơ bả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à các phụ thuộc cần thiết 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

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 bảo vệ ứng dụng của bạn bằng cách đặt các tiêu đề HTTP khác nhau trong Express.

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

Nhập gói Mũ bảo hiểm vào tệp app.js của bạn.

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

Tạo đối tượng cài đặt CSP chứa chính sách mong muốn.

Ví dụ này chỉ định các nguồn cho các loại nội dung khác nhau, chẳng hạn như tập lệnh, kiểu và hình ảnh. Sửa đổi đối tượng cấu hình theo 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 việc triển khai CSP

Bây giờ bạn đã triển khai CSP trong ứng dụng Node.js Express của mình, việc kiểm tra là rất quan trọng để đảm bảo rằng 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 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 của bạn và kiểm tra tabネットワーク. Bạn sẽ thấy tiêu đề Content-Security-Policy chứa chính sách đã 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 ủy quyền và trái phép. Ví dụ: nó cố tải tập lệnh và hình ảnh từ các nguồn không được chỉ định trong cài đặt CSP. Bạn sẽ thấy lỗi trong bảng điều khiển của trình duyệt cho biết rằng tài nguyên đã bị chặn do vi phạm CSP.
  5. Theo dõi nhật ký máy chủ để biết các báo cáo vi phạm CSP. 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ý của bạn để đảm bảo các vi phạm được báo cáo chính xác.

5. Xử lý vi phạm CSP

CSP được cung cấp khả năng báo cáo để 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 lộ trình mới trong tệp app.js của bạn để xử lý 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ài đặt CSP

Cập nhật đối tượng cài đặt CSP của bạn để bao gồm chỉ thị reportUri .

Ứng dụng hiện gửi báo cáo vi phạm CSP đến điểm cuối /csp-report .

bản tóm tắt

Triển khai Chính sách bảo mật nội dung trong ứng dụng Node.js Express của bạn là một biện pháp bảo mật quan trọng để bảo vệ ứng dụng của bạn khỏi các cuộc tấn công khác nhau. Phần mềm trung gian Helmet bảo hiểm giúp dễ dàng đặt tiêu đề CSP, xác định nguồn được phép cho các loại nội dung khác nhau và giám sát thông qua điểm cuối báo cáo vi phạm. Kiểm tra kỹ lưỡng việc triển khai của bạn và cập nhật cài đặt 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.

cuối cùng

Tôi luôn mắc nợ. Tôi hy vọng bạn thích bài viết này và học được một cái gì đó mới.

Hẹn gặp lại các bạn trong bài viết tiếp theo! Nếu bạn thích bài viết này, hãy nhấn “THÍCH” và đăng ký để ủng hộ tôi.

Cảm ơn rất nhiều.

Giới thiệu

Chia sẻ bài viết ngay

Nguồn bài viết : Viblo