Content-Security-Policy: connect-src directive
Baseline
Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since November 2016.
Chỉ thị connect-src trong HTTP Content-Security-Policy (CSP) giới hạn các URL có thể được tải bằng giao diện script. Các API sau được kiểm soát bởi chỉ thị này:
- Thuộc tính
pingtrong các phần tử<a> fetch()fetchLater()ExperimentalXMLHttpRequestWebSocketEventSourceNavigator.sendBeacon()
Note:
connect-src 'self' không phân giải thành các lược đồ websocket
trong tất cả các trình duyệt, xem thêm trong issue này.
| Phiên bản CSP | 1 |
|---|---|
| Loại chỉ thị | Fetch directive |
Dự phòng default-src |
Có. Nếu chỉ thị này vắng mặt thì trình duyệt sẽ tìm kiếm chỉ thị
default-src.
|
Cú pháp
Content-Security-Policy: connect-src 'none';
Content-Security-Policy: connect-src <source-expression-list>;
Chỉ thị này có thể nhận một trong các giá trị sau:
'none'-
Không có tài nguyên nào thuộc loại này được tải. Dấu nháy đơn là bắt buộc.
<source-expression-list>-
Danh sách các giá trị biểu thức nguồn phân cách bằng khoảng trắng. Tài nguyên thuộc loại này có thể được tải nếu chúng khớp với bất kỳ biểu thức nguồn nào. Đối với chỉ thị này, các giá trị biểu thức nguồn sau đây có thể áp dụng:
Ví dụ
>Trường hợp vi phạm
Với tiêu đề CSP này:
Content-Security-Policy: connect-src https://example.com/
Các kết nối sau bị chặn và sẽ không tải:
<a ping="https://not-example.com" href="/">Liên kết</a>
<script>
const response = fetch("https://not-example.com/");
const xhr = new XMLHttpRequest();
xhr.open("GET", "https://not-example.com/");
xhr.send();
const ws = new WebSocket("wss://not-example.com/");
const es = new EventSource("https://not-example.com/");
navigator.sendBeacon("https://not-example.com/", {
/* … */
});
</script>
Thông số kỹ thuật
| Specification |
|---|
| Content Security Policy Level 3> # directive-connect-src> |