Trao đổi về dự án
Partitech Sonata Extra Bundle

Gói Sonata Extra: cấu hình Chính sách Bảo mật Nội dung

Giới thiệu Chính sách bảo mật nội dung (CSP) là một cơ chế bảo mật của trình duyệt giúp giảm nguy cơ Cross-Site Scripting (XSS) và tiêm nội dung. Gói Sonata-Extra cho Symfony cung cấp một cách hiệu quả để triển khai và quản lý CSP trong ứng dụng của bạn. H...

Giới thiệu

Chính sách bảo mật nội dung (CSP) là một cơ chế bảo mật của trình duyệt giúp giảm nguy cơ Cross-Site Scripting (XSS) và tiêm nội dung. Gói Sonata-Extra cho Symfony cung cấp một cách hiệu quả để triển khai và quản lý CSP trong ứng dụng của bạn.

Hiểu về Chính sách Bảo mật Nội dung

CSP được truyền qua một tiêu đề phản hồi và cho phép kiểm soát các tài nguyên mà trang web của bạn có thể tải hoặc thực thi. Bằng cách chỉ định một danh sách các nguồn đáng tin cậy, bạn có thể giảm nguy cơ chèn nội dung độc hại.

Khái niệm chính

  • Chỉ thị: Đây là các quy tắc xác định những tài nguyên nào có thể được tải. Mỗi chỉ thị kiểm soát một loại tài nguyên cụ thể, chẳng hạn như kịch bản, kiểu, hình ảnh, v.v.
  • Nguồn: Dưới mỗi chỉ dẫn, bạn chỉ định các nguồn (như URL) từ đó tài nguyên có thể được tải về.

Các loại bảo mật trong gói Sonata-Extra

Trong Gói Sonata Extra, SECURITY_TYPES là một bảng hằng số liên kết các chỉ thị CSP với các khóa cấu hình của chúng. Dưới đây là sự phân chia của từng chỉ thị:

default-src

Giá trị mặc định cho hầu hết các chỉ thị. Kiểm soát các nguồn mặc định cho các loại nội dung khác nhau.

script-src

Xác định các nguồn hợp lệ cho JavaScript. Các tùy chọn bao gồm:

  • 'self': Chỉ tải các tập lệnh từ cùng một nguồn.
  • 'unsafe-inline': Cho phép các script trực tuyến, mặc dù điều này kém an toàn hơn.
  • URL cụ thể: Xác định các script bên ngoài được phép.

style-src

Chỉ định các nguồn hợp lệ cho các bảng định kiểu. Các tùy chọn tương tự với script-src.

img-src

Kiểm soát các nguồn mà từ đó hình ảnh có thể được tải.

connect-src

Giới hạn các nguồn mà bạn có thể kết nối (ví dụ: WebSockets, yêu cầu AJAX).

font-src

Xác định các nguồn của các tệp phông chữ.

object-src

Kiểm tra các nguồn cho các yếu tố như <object>, <embed>, v.v.

media-src

Chỉ định các nguồn để tải phương tiện (âm thanh và video).

frame-src

Xác định các nguồn hợp lệ cho các khung (frames) và iframe.

Các chỉ thị khác

  • child-src, form-action, frame-ancestors, manifest-src, base-uri, sandbox, report-uri, worker-src, navigate-to: Chúng tinh chỉnh các chính sách hơn nữa cho các trường hợp sử dụng cụ thể.

Triển khai CSP trong gói Sonata-Extra

Cấu hình

Định nghĩa các chính sách CSP của bạn trong một tệp cấu hình YAML dưới partitech_sonata_extra. Ví dụ:

partitech_sonata_extra:
  content_security_policy:
    object-src:
      - 'none'
    script-src:
      - 'self'
      - 'unsafe-inline'
      - 'https://external.script.url'
    style-src:
      - 'self'
      - 'unsafe-inline'
      - 'https://external.stylesheet.url'
    font-src:
      - 'self'
      - 'https://cdnjs.cloudflare.com/'
      - 'https://fonts.gstatic.com/'

Xác nhận chính sách trước khi triển khai

Cấu hình Chính sách Bảo mật Nội dung

Kết quả của Chính sách Bảo mật Nội dung

Bắt đầu bằng cách quan sát các vi phạm ở chế độ báo cáo, sau đó thu hẹp các nguồn được phép. Một CSP không thay thế việc thoát đầu ra hay xác thực đầu vào.

Chia sẻ bài viết