Lỗ hổng băm php sha256

Tôi đã thử nhiều thứ khác nhau trong PHP nhưng vẫn chưa tìm được thuật toán chính xác. Đây là mã tôi có bây giờ

if[!function_exists['base64url_encode']]{
    function base64url_encode[$data] {
        $data = str_replace[array['+', '/'], array['-', '_'], base64_encode[$data]];
        return $data;
    }
}

$str = "kki98hkl-u5d0-w96i-62dp-xpmr6xlvfnjz:20151110171858:b2c13532-3416-47d9-8592-a541c208f755:hKSeRD98BHngrNa51Q2IgAXtoZ8oYebgY4vQHEYjlmzN9KSbAVTRvQkUPsjOGu4F";
$sec = "LRH9CAkNs-zoU3hxHbrtY0CUUcmqzibPeN7x6-vwNWQ=";
$signature = mhash[MHASH_SHA256, $str, $sec];
$signature = base64url_encode[$signature];

if[$signature != "P-WgZ8CqV51aI-3TncZj5CpSZh98PjZTYxrvxkmQYmI="]
    echo "wrong: $signature";
else
    echo "correct";

Nó cho chữ ký này

K9lw3V-k5gOedmVwmO5vC7cOn82JSEXsNguozCAOU2c=

Như bạn thấy, độ dài 44 ký tự là chính xác. Xin hãy giúp tôi tìm ra lỗi, vấn đề đơn giản này khiến tôi mất hàng giờ và không có giải pháp

[PHP 5 >= 5. 1. 2, PHP 7, PHP 8, hàm băm PECL >= 1. 1]

hash_hmacTạo giá trị băm có khóa bằng phương thức HMAC

Sự miêu tả

hash_hmac [
     chuỗi

K9lw3V-k5gOedmVwmO5vC7cOn82JSEXsNguozCAOU2c=
75,
    string
K9lw3V-k5gOedmVwmO5vC7cOn82JSEXsNguozCAOU2c=
76
,
    string
K9lw3V-k5gOedmVwmO5vC7cOn82JSEXsNguozCAOU2c=
77
,
    bool
LRH9CAkNs-zoU3hxHbrtY0CUUcmqzibPeN7x6-vwNWQ=
0 =
LRH9CAkNs-zoU3hxHbrtY0CUUcmqzibPeN7x6-vwNWQ=
1

]: chuỗi

Thông số

LRH9CAkNs-zoU3hxHbrtY0CUUcmqzibPeN7x6-vwNWQ=
2

Tên thuật toán băm đã chọn [i. e. "md5", "sha256", "haval160,4", v.v. ] Xem hash_hmac_algos[] để biết danh sách các thuật toán được hỗ trợ.

LRH9CAkNs-zoU3hxHbrtY0CUUcmqzibPeN7x6-vwNWQ=
3

Tin nhắn được băm

LRH9CAkNs-zoU3hxHbrtY0CUUcmqzibPeN7x6-vwNWQ=
4

Khóa bí mật dùng chung được sử dụng để tạo biến thể HMAC của thông báo tóm tắt

LRH9CAkNs-zoU3hxHbrtY0CUUcmqzibPeN7x6-vwNWQ=
5

Khi được đặt thành

LRH9CAkNs-zoU3hxHbrtY0CUUcmqzibPeN7x6-vwNWQ=
6, xuất dữ liệu nhị phân thô.
LRH9CAkNs-zoU3hxHbrtY0CUUcmqzibPeN7x6-vwNWQ=
1 xuất ra chữ thường hexits

Giá trị trả về

Trả về một chuỗi chứa thông báo tóm tắt được tính toán dưới dạng hexit chữ thường trừ khi

LRH9CAkNs-zoU3hxHbrtY0CUUcmqzibPeN7x6-vwNWQ=
5 được đặt thành true trong trường hợp đó, biểu diễn nhị phân thô của thông báo tóm tắt được trả về

Nhật ký thay đổi

Mô tả phiên bản8. 0. 0 hash_hmac[] hiện ném ra một ngoại lệ ValueError nếu
LRH9CAkNs-zoU3hxHbrtY0CUUcmqzibPeN7x6-vwNWQ=
2 không xác định hoặc . 7. 2. 0Việc sử dụng các hàm băm không mã hóa [adler32, crc32, crc32b, fnv132, fnv1a32, fnv164, fnv1a64, joaat] đã bị vô hiệu hóa.

ví dụ

Ví dụ #1 hash_hmac[] ví dụ

K9lw3V-k5gOedmVwmO5vC7cOn82JSEXsNguozCAOU2c=
31

Ví dụ trên sẽ xuất ra

K9lw3V-k5gOedmVwmO5vC7cOn82JSEXsNguozCAOU2c=
4

Xem thêm

  • hash[] - Tạo giá trị băm [thông báo tóm tắt]
  • hash_hmac_algos[] - Trả về danh sách các thuật toán băm đã đăng ký phù hợp với hash_hmac
  • hash_init[] - Khởi tạo bối cảnh băm gia tăng
  • hash_hmac_file[] - Tạo giá trị băm có khóa bằng phương thức HMAC và nội dung của một tệp đã cho

    Chính sách bảo mật nội dung có thể làm giảm đáng kể rủi ro và tác động của các cuộc tấn công kịch bản chéo trang trong các trình duyệt hiện đại

    Ngày 15 tháng 6 năm 2012 — Cập nhật ngày 19 tháng 6 năm 2020

    Mike Tây

    TwitterTrang chủ

    Liên khúc Joe

    TwitterGitHub

    Trên trang này

    • Tóm lược
    • Nguồn danh sách cho phép
      • Chính sách áp dụng cho nhiều loại tài nguyên
      • Chi tiết triển khai
      • hộp cát
      • thẻ meta
    • Mã nội tuyến được coi là có hại
      • Nếu bạn hoàn toàn phải sử dụng nó
    • đánh giá quá
    • Báo cáo
      • Chỉ báo cáo
    • Sử dụng trong thế giới thực
      • Trường hợp sử dụng số 1. tiện ích mạng xã hội
      • Trường hợp sử dụng #2. lệnh đóng cửa
      • Trường hợp sử dụng #3. chỉ SSL
    • Tương lai

    Mô hình bảo mật của web bắt nguồn từ chính sách cùng nguồn gốc. Mã từ

    K9lw3V-k5gOedmVwmO5vC7cOn82JSEXsNguozCAOU2c=
    
    59 chỉ nên có quyền truy cập vào dữ liệu của
    K9lw3V-k5gOedmVwmO5vC7cOn82JSEXsNguozCAOU2c=
    
    59 và chắc chắn
    K9lw3V-k5gOedmVwmO5vC7cOn82JSEXsNguozCAOU2c=
    
    71 không bao giờ được phép truy cập. Mỗi nguồn gốc được tách biệt với phần còn lại của web, mang đến cho nhà phát triển một hộp cát an toàn để xây dựng và chơi. Về lý thuyết, điều này là hoàn toàn tuyệt vời. Trên thực tế, những kẻ tấn công đã tìm ra những cách thông minh để phá hoại hệ thống

    Ví dụ, các cuộc tấn công cross-site scripting [XSS] bỏ qua chính sách gốc bằng cách lừa một trang web gửi mã độc hại cùng với nội dung dự định. Đây là một vấn đề lớn, vì các trình duyệt tin tưởng tất cả mã hiển thị trên một trang là một phần hợp pháp trong nguồn gốc bảo mật của trang đó. XSS Cheat Sheet là một mặt cắt ngang cũ nhưng đại diện cho các phương pháp mà kẻ tấn công có thể sử dụng để vi phạm sự tin tưởng này bằng cách tiêm mã độc. Nếu kẻ tấn công tiêm thành công bất kỳ mã nào, thì trò chơi gần như kết thúc. dữ liệu phiên của người dùng bị xâm phạm và thông tin cần được giữ bí mật bị chuyển đến The Bad Guys. Rõ ràng là chúng tôi muốn ngăn chặn điều đó nếu có thể

    Tổng quan này nêu bật một biện pháp bảo vệ có thể làm giảm đáng kể rủi ro và tác động của các cuộc tấn công XSS trong các trình duyệt hiện đại. Chính sách bảo mật nội dung [CSP]

    Tóm lược #

    • Sử dụng danh sách cho phép để cho khách hàng biết những gì được phép và những gì không
    • Tìm hiểu những chỉ thị nào có sẵn
    • Tìm hiểu các từ khóa họ lấy
    • Mã nội tuyến và
      K9lw3V-k5gOedmVwmO5vC7cOn82JSEXsNguozCAOU2c=
      
      72 được coi là có hại
    • Báo cáo vi phạm chính sách cho máy chủ của bạn trước khi thực thi chúng

    Nguồn danh sách cho phép #

    Vấn đề bị khai thác bởi các cuộc tấn công XSS là trình duyệt không có khả năng phân biệt giữa tập lệnh là một phần của ứng dụng của bạn và tập lệnh đã bị bên thứ ba chèn vào một cách độc hại. Ví dụ: nút Google +1 ở cuối trang này tải và thực thi mã từ

    K9lw3V-k5gOedmVwmO5vC7cOn82JSEXsNguozCAOU2c=
    
    73 trong ngữ cảnh nguồn gốc của trang này. Chúng tôi tin tưởng mã đó, nhưng chúng tôi không thể mong đợi trình duyệt tự nhận ra rằng mã từ
    K9lw3V-k5gOedmVwmO5vC7cOn82JSEXsNguozCAOU2c=
    
    74 là tuyệt vời, trong khi mã từ
    K9lw3V-k5gOedmVwmO5vC7cOn82JSEXsNguozCAOU2c=
    
    75 có thể không. Trình duyệt vui vẻ tải xuống và thực thi bất kỳ mã nào mà một trang yêu cầu, bất kể nguồn nào

    Thay vì mù quáng tin tưởng mọi thứ mà máy chủ cung cấp, CSP xác định tiêu đề HTTP

    K9lw3V-k5gOedmVwmO5vC7cOn82JSEXsNguozCAOU2c=
    
    76, cho phép bạn tạo danh sách cho phép các nguồn nội dung đáng tin cậy và hướng dẫn trình duyệt chỉ thực thi hoặc hiển thị tài nguyên từ các nguồn đó. Ngay cả khi kẻ tấn công có thể tìm thấy một lỗ hổng để chèn tập lệnh, tập lệnh sẽ không khớp với danh sách cho phép và do đó sẽ không được thực thi

    Vì chúng tôi tin tưởng

    K9lw3V-k5gOedmVwmO5vC7cOn82JSEXsNguozCAOU2c=
    
    74 để cung cấp mã hợp lệ và chúng tôi tin tưởng bản thân mình cũng làm như vậy, hãy xác định chính sách chỉ cho phép tập lệnh thực thi khi nó đến từ một trong hai nguồn đó

    LRH9CAkNs-zoU3hxHbrtY0CUUcmqzibPeN7x6-vwNWQ=
    
    4

    Đơn giản, phải không? . Chúng tôi đã chỉ định

    K9lw3V-k5gOedmVwmO5vC7cOn82JSEXsNguozCAOU2c=
    
    79 là một nguồn tập lệnh hợp lệ và
    LRH9CAkNs-zoU3hxHbrtY0CUUcmqzibPeN7x6-vwNWQ=
    
    70 là một nguồn khác. Trình duyệt tải xuống và thực thi JavaScript một cách nghiêm túc từ
    K9lw3V-k5gOedmVwmO5vC7cOn82JSEXsNguozCAOU2c=
    
    74 qua HTTPS, cũng như từ nguồn gốc của trang hiện tại

    Với chính sách này được xác định, trình duyệt chỉ đưa ra lỗi thay vì tải tập lệnh từ bất kỳ nguồn nào khác. Khi một kẻ tấn công thông minh quản lý để đưa mã vào trang web của bạn, chúng sẽ gặp phải một thông báo lỗi thay vì thành công mà chúng mong đợi

    Chính sách áp dụng cho nhiều loại tài nguyên #

    Mặc dù tài nguyên tập lệnh là rủi ro bảo mật rõ ràng nhất, CSP cung cấp một tập hợp phong phú các chỉ thị chính sách cho phép kiểm soát khá chi tiết đối với các tài nguyên mà một trang được phép tải. Bạn đã xem

    K9lw3V-k5gOedmVwmO5vC7cOn82JSEXsNguozCAOU2c=
    
    78, vì vậy khái niệm này phải rõ ràng

    Hãy nhanh chóng xem qua phần còn lại của các chỉ thị tài nguyên. Danh sách dưới đây thể hiện trạng thái của các chỉ thị ở cấp độ 2. Thông số kỹ thuật cấp 3 đã được xuất bản, nhưng phần lớn chưa được triển khai trong các trình duyệt chính

    • LRH9CAkNs-zoU3hxHbrtY0CUUcmqzibPeN7x6-vwNWQ=
      
      73 hạn chế các URL có thể xuất hiện trong phần tử
      LRH9CAkNs-zoU3hxHbrtY0CUUcmqzibPeN7x6-vwNWQ=
      
      74 của trang
    • LRH9CAkNs-zoU3hxHbrtY0CUUcmqzibPeN7x6-vwNWQ=
      
      75 liệt kê các URL cho worker và nội dung khung được nhúng. Ví dụ.
      LRH9CAkNs-zoU3hxHbrtY0CUUcmqzibPeN7x6-vwNWQ=
      
      76 sẽ cho phép nhúng video từ YouTube chứ không phải từ các nguồn gốc khác
    • LRH9CAkNs-zoU3hxHbrtY0CUUcmqzibPeN7x6-vwNWQ=
      
      77 giới hạn nguồn gốc mà bạn có thể kết nối [thông qua XHR, WebSockets và EventSource]
    • LRH9CAkNs-zoU3hxHbrtY0CUUcmqzibPeN7x6-vwNWQ=
      
      78 chỉ định nguồn gốc có thể phục vụ phông chữ web. Phông chữ web của Google có thể được kích hoạt thông qua
      LRH9CAkNs-zoU3hxHbrtY0CUUcmqzibPeN7x6-vwNWQ=
      
      79
    • LRH9CAkNs-zoU3hxHbrtY0CUUcmqzibPeN7x6-vwNWQ=
      
      70 liệt kê các điểm cuối hợp lệ để gửi từ thẻ
      LRH9CAkNs-zoU3hxHbrtY0CUUcmqzibPeN7x6-vwNWQ=
      
      71
    • LRH9CAkNs-zoU3hxHbrtY0CUUcmqzibPeN7x6-vwNWQ=
      
      72 chỉ định các nguồn có thể nhúng trang hiện tại. Chỉ thị này áp dụng cho các thẻ
      LRH9CAkNs-zoU3hxHbrtY0CUUcmqzibPeN7x6-vwNWQ=
      
      73,
      LRH9CAkNs-zoU3hxHbrtY0CUUcmqzibPeN7x6-vwNWQ=
      
      74,
      LRH9CAkNs-zoU3hxHbrtY0CUUcmqzibPeN7x6-vwNWQ=
      
      75 và
      LRH9CAkNs-zoU3hxHbrtY0CUUcmqzibPeN7x6-vwNWQ=
      
      76. Không thể sử dụng lệnh này trong các thẻ
      LRH9CAkNs-zoU3hxHbrtY0CUUcmqzibPeN7x6-vwNWQ=
      
      77 và chỉ áp dụng cho các tài nguyên không phải HTML
    • LRH9CAkNs-zoU3hxHbrtY0CUUcmqzibPeN7x6-vwNWQ=
      
      78 không được dùng nữa ở cấp độ 2, nhưng đã được khôi phục ở cấp độ 3. Nếu không xuất hiện thì vẫn rơi về
      LRH9CAkNs-zoU3hxHbrtY0CUUcmqzibPeN7x6-vwNWQ=
      
      75 như cũ
    • LRH9CAkNs-zoU3hxHbrtY0CUUcmqzibPeN7x6-vwNWQ=
      
      70 xác định nguồn gốc mà hình ảnh có thể được tải
    • LRH9CAkNs-zoU3hxHbrtY0CUUcmqzibPeN7x6-vwNWQ=
      
      71 hạn chế nguồn gốc được phép phân phối video và âm thanh
    • LRH9CAkNs-zoU3hxHbrtY0CUUcmqzibPeN7x6-vwNWQ=
      
      72 cho phép kiểm soát Flash và các plugin khác
    • LRH9CAkNs-zoU3hxHbrtY0CUUcmqzibPeN7x6-vwNWQ=
      
      73 giới hạn các loại plugin mà một trang có thể gọi
    • LRH9CAkNs-zoU3hxHbrtY0CUUcmqzibPeN7x6-vwNWQ=
      
      74 chỉ định URL nơi trình duyệt sẽ gửi báo cáo khi chính sách bảo mật nội dung bị vi phạm. Chỉ thị này không thể được sử dụng trong các thẻ
      LRH9CAkNs-zoU3hxHbrtY0CUUcmqzibPeN7x6-vwNWQ=
      
      77
    • LRH9CAkNs-zoU3hxHbrtY0CUUcmqzibPeN7x6-vwNWQ=
      
      76 là đối tác của
      K9lw3V-k5gOedmVwmO5vC7cOn82JSEXsNguozCAOU2c=
      
      78 cho biểu định kiểu
    • LRH9CAkNs-zoU3hxHbrtY0CUUcmqzibPeN7x6-vwNWQ=
      
      78 hướng dẫn tác nhân người dùng viết lại lược đồ URL, thay đổi HTTP thành HTTPS. Lệnh này dành cho các trang web có số lượng lớn URL cũ cần được viết lại
    • LRH9CAkNs-zoU3hxHbrtY0CUUcmqzibPeN7x6-vwNWQ=
      
      79 là chỉ thị CSP Cấp 3 hạn chế các URL có thể được tải dưới dạng worker, shared worker hoặc service worker. Kể từ tháng 7 năm 2017, chỉ thị này đã hạn chế triển khai

    Theo mặc định, các chỉ thị được mở rộng. Nếu bạn không đặt chính sách cụ thể cho một lệnh, giả sử là

    LRH9CAkNs-zoU3hxHbrtY0CUUcmqzibPeN7x6-vwNWQ=
    
    78, thì lệnh đó sẽ hoạt động theo mặc định như thể bạn đã chỉ định
    LRH9CAkNs-zoU3hxHbrtY0CUUcmqzibPeN7x6-vwNWQ=
    
    81 làm nguồn hợp lệ [ví dụ: bạn có thể tải phông chữ từ bất kỳ đâu mà không bị hạn chế]

    Bạn có thể ghi đè hành vi mặc định này bằng cách chỉ định một chỉ thị

    LRH9CAkNs-zoU3hxHbrtY0CUUcmqzibPeN7x6-vwNWQ=
    
    82. Lệnh này xác định giá trị mặc định cho hầu hết các lệnh mà bạn không chỉ định. Nói chung, điều này áp dụng cho bất kỳ chỉ thị nào kết thúc bằng
    LRH9CAkNs-zoU3hxHbrtY0CUUcmqzibPeN7x6-vwNWQ=
    
    83. Nếu
    LRH9CAkNs-zoU3hxHbrtY0CUUcmqzibPeN7x6-vwNWQ=
    
    82 được đặt thành
    LRH9CAkNs-zoU3hxHbrtY0CUUcmqzibPeN7x6-vwNWQ=
    
    85 và bạn không chỉ định lệnh
    LRH9CAkNs-zoU3hxHbrtY0CUUcmqzibPeN7x6-vwNWQ=
    
    78, thì bạn có thể tải phông chữ từ
    LRH9CAkNs-zoU3hxHbrtY0CUUcmqzibPeN7x6-vwNWQ=
    
    85 và không nơi nào khác. Chúng tôi chỉ chỉ định
    K9lw3V-k5gOedmVwmO5vC7cOn82JSEXsNguozCAOU2c=
    
    78 trong các ví dụ trước của chúng tôi, điều đó có nghĩa là hình ảnh, phông chữ, v.v. có thể được tải từ bất kỳ nguồn gốc nào

    Các lệnh sau không sử dụng

    LRH9CAkNs-zoU3hxHbrtY0CUUcmqzibPeN7x6-vwNWQ=
    
    82 làm phương án dự phòng. Hãy nhớ rằng không thiết lập chúng cũng giống như cho phép bất cứ điều gì

    • LRH9CAkNs-zoU3hxHbrtY0CUUcmqzibPeN7x6-vwNWQ=
      
      73
    • LRH9CAkNs-zoU3hxHbrtY0CUUcmqzibPeN7x6-vwNWQ=
      
      70
    • LRH9CAkNs-zoU3hxHbrtY0CUUcmqzibPeN7x6-vwNWQ=
      
      72
    • LRH9CAkNs-zoU3hxHbrtY0CUUcmqzibPeN7x6-vwNWQ=
      
      73
    • LRH9CAkNs-zoU3hxHbrtY0CUUcmqzibPeN7x6-vwNWQ=
      
      74
    • LRH9CAkNs-zoU3hxHbrtY0CUUcmqzibPeN7x6-vwNWQ=
      
      25

    Bạn có thể sử dụng nhiều hoặc ít trong số các lệnh này nếu phù hợp với ứng dụng cụ thể của mình, chỉ cần liệt kê từng lệnh trong tiêu đề HTTP, phân tách các lệnh bằng dấu chấm phẩy. Đảm bảo rằng bạn liệt kê tất cả các tài nguyên cần thiết của một loại cụ thể trong một lệnh duy nhất. Nếu bạn đã viết một cái gì đó như

    LRH9CAkNs-zoU3hxHbrtY0CUUcmqzibPeN7x6-vwNWQ=
    
    26, chỉ thị thứ hai sẽ bị bỏ qua. Một cái gì đó như sau sẽ chỉ định chính xác cả hai nguồn gốc là hợp lệ

    K9lw3V-k5gOedmVwmO5vC7cOn82JSEXsNguozCAOU2c=
    
    5

    Ví dụ: nếu bạn có một ứng dụng tải tất cả tài nguyên của nó từ mạng phân phối nội dung [giả sử,

    LRH9CAkNs-zoU3hxHbrtY0CUUcmqzibPeN7x6-vwNWQ=
    
    27] và biết rằng bạn không cần bất kỳ nội dung hoặc phần bổ trợ được đóng khung nào, thì chính sách của bạn có thể giống như sau

    K9lw3V-k5gOedmVwmO5vC7cOn82JSEXsNguozCAOU2c=
    
    7

    Chi tiết triển khai #

    Bạn sẽ thấy các tiêu đề

    LRH9CAkNs-zoU3hxHbrtY0CUUcmqzibPeN7x6-vwNWQ=
    
    28 và
    LRH9CAkNs-zoU3hxHbrtY0CUUcmqzibPeN7x6-vwNWQ=
    
    29 trong các hướng dẫn khác nhau trên web. Về sau, bạn nên bỏ qua các tiêu đề có tiền tố này. Các trình duyệt hiện đại [ngoại trừ IE] hỗ trợ tiêu đề
    K9lw3V-k5gOedmVwmO5vC7cOn82JSEXsNguozCAOU2c=
    
    76 không tiền tố. Đó là tiêu đề bạn nên sử dụng

    Bất kể bạn sử dụng tiêu đề nào, chính sách được xác định trên cơ sở từng trang. bạn sẽ cần gửi tiêu đề HTTP cùng với mọi phản hồi mà bạn muốn đảm bảo được bảo vệ. Điều này mang lại rất nhiều tính linh hoạt, vì bạn có thể tinh chỉnh chính sách cho các trang cụ thể dựa trên nhu cầu cụ thể của chúng. Có lẽ một tập hợp các trang trong trang web của bạn có nút +1, trong khi những trang khác thì không. bạn chỉ có thể cho phép mã nút được tải khi cần thiết

    Danh sách nguồn trong mỗi chỉ thị là linh hoạt. Bạn có thể chỉ định các nguồn theo lược đồ [

    LRH9CAkNs-zoU3hxHbrtY0CUUcmqzibPeN7x6-vwNWQ=
    
    01,
    LRH9CAkNs-zoU3hxHbrtY0CUUcmqzibPeN7x6-vwNWQ=
    
    02] hoặc theo phạm vi cụ thể từ chỉ tên máy chủ [
    LRH9CAkNs-zoU3hxHbrtY0CUUcmqzibPeN7x6-vwNWQ=
    
    03, phù hợp với bất kỳ nguồn gốc nào trên máy chủ đó. bất kỳ sơ đồ nào, bất kỳ cổng nào] tới một URI đủ điều kiện [
    LRH9CAkNs-zoU3hxHbrtY0CUUcmqzibPeN7x6-vwNWQ=
    
    04, chỉ khớp với HTTPS, chỉ
    LRH9CAkNs-zoU3hxHbrtY0CUUcmqzibPeN7x6-vwNWQ=
    
    03 và chỉ cổng 443]. Ký tự đại diện được chấp nhận, nhưng chỉ dưới dạng lược đồ, cổng hoặc ở vị trí ngoài cùng bên trái của tên máy chủ.
    LRH9CAkNs-zoU3hxHbrtY0CUUcmqzibPeN7x6-vwNWQ=
    
    06 sẽ khớp với tất cả các tên miền phụ của
    LRH9CAkNs-zoU3hxHbrtY0CUUcmqzibPeN7x6-vwNWQ=
    
    03 [nhưng không phải chính
    LRH9CAkNs-zoU3hxHbrtY0CUUcmqzibPeN7x6-vwNWQ=
    
    03], sử dụng bất kỳ sơ đồ nào, trên bất kỳ cổng nào

    Danh sách nguồn cũng chấp nhận bốn từ khóa

    • LRH9CAkNs-zoU3hxHbrtY0CUUcmqzibPeN7x6-vwNWQ=
      
      09, như bạn có thể mong đợi, không có gì phù hợp
    • K9lw3V-k5gOedmVwmO5vC7cOn82JSEXsNguozCAOU2c=
      
      79 khớp với nguồn gốc hiện tại, nhưng không khớp với tên miền phụ của nó
    • LRH9CAkNs-zoU3hxHbrtY0CUUcmqzibPeN7x6-vwNWQ=
      
      01 cho phép JavaScript và CSS nội tuyến. [Chúng tôi sẽ đề cập đến vấn đề này chi tiết hơn một chút. ]
    • LRH9CAkNs-zoU3hxHbrtY0CUUcmqzibPeN7x6-vwNWQ=
      
      02 cho phép các cơ chế chuyển văn bản thành JavaScript như
      LRH9CAkNs-zoU3hxHbrtY0CUUcmqzibPeN7x6-vwNWQ=
      
      03. [Chúng ta cũng sẽ làm được điều này. ]

    Những từ khóa này yêu cầu dấu nháy đơn. Ví dụ:

    LRH9CAkNs-zoU3hxHbrtY0CUUcmqzibPeN7x6-vwNWQ=
    
    04 [có dấu ngoặc kép] cho phép thực thi JavaScript từ máy chủ hiện tại;

    hộp cát #

    Còn một chỉ thị nữa đáng nói.

    LRH9CAkNs-zoU3hxHbrtY0CUUcmqzibPeN7x6-vwNWQ=
    
    25. Nó hơi khác so với những trang khác mà chúng tôi đã xem xét, vì nó hạn chế các hành động mà trang có thể thực hiện hơn là các tài nguyên mà trang có thể tải. Nếu có chỉ thị
    LRH9CAkNs-zoU3hxHbrtY0CUUcmqzibPeN7x6-vwNWQ=
    
    25, trang được xử lý như thể nó được tải bên trong một
    LRH9CAkNs-zoU3hxHbrtY0CUUcmqzibPeN7x6-vwNWQ=
    
    74 với thuộc tính
    LRH9CAkNs-zoU3hxHbrtY0CUUcmqzibPeN7x6-vwNWQ=
    
    25. Điều này có thể có nhiều hiệu ứng trên trang. buộc trang vào một nguồn gốc duy nhất và ngăn gửi biểu mẫu, trong số những người khác. Nó nằm ngoài phạm vi của bài viết này một chút, nhưng bạn có thể tìm thấy đầy đủ chi tiết về các thuộc tính hộp cát hợp lệ trong phần "Hộp cát" của thông số HTML5

    Thẻ meta #

    Cơ chế phân phối ưa thích của CSP là một tiêu đề HTTP. Tuy nhiên, có thể hữu ích khi đặt chính sách trên một trang trực tiếp trong phần đánh dấu. Làm điều đó bằng cách sử dụng thẻ

    LRH9CAkNs-zoU3hxHbrtY0CUUcmqzibPeN7x6-vwNWQ=
    
    77 với thuộc tính
    K9lw3V-k5gOedmVwmO5vC7cOn82JSEXsNguozCAOU2c=
    
    502

    LRH9CAkNs-zoU3hxHbrtY0CUUcmqzibPeN7x6-vwNWQ=
    
    7

    Điều này không thể được sử dụng cho

    LRH9CAkNs-zoU3hxHbrtY0CUUcmqzibPeN7x6-vwNWQ=
    
    72,
    LRH9CAkNs-zoU3hxHbrtY0CUUcmqzibPeN7x6-vwNWQ=
    
    74 hoặc
    LRH9CAkNs-zoU3hxHbrtY0CUUcmqzibPeN7x6-vwNWQ=
    
    25

    Mã nội tuyến được coi là có hại #

    Rõ ràng là CSP dựa trên nguồn gốc của danh sách cho phép, vì đó là một cách rõ ràng để hướng dẫn trình duyệt coi các nhóm tài nguyên cụ thể là có thể chấp nhận được và từ chối phần còn lại. Tuy nhiên, danh sách cho phép dựa trên nguồn gốc không giải quyết được mối đe dọa lớn nhất do các cuộc tấn công XSS gây ra. tiêm tập lệnh nội tuyến. Nếu kẻ tấn công có thể chèn một thẻ tập lệnh trực tiếp chứa một số tải trọng độc hại [

    K9lw3V-k5gOedmVwmO5vC7cOn82JSEXsNguozCAOU2c=
    
    506], thì trình duyệt không có cơ chế nào để phân biệt nó với một thẻ tập lệnh nội tuyến hợp pháp. CSP giải quyết vấn đề này bằng cách cấm hoàn toàn tập lệnh nội tuyến. đó là cách duy nhất để chắc chắn

    Lệnh cấm này không chỉ bao gồm các tập lệnh được nhúng trực tiếp vào các thẻ

    K9lw3V-k5gOedmVwmO5vC7cOn82JSEXsNguozCAOU2c=
    
    507 mà còn cả các trình xử lý sự kiện nội tuyến và các URL
    K9lw3V-k5gOedmVwmO5vC7cOn82JSEXsNguozCAOU2c=
    
    508. Bạn sẽ cần di chuyển nội dung của các thẻ
    K9lw3V-k5gOedmVwmO5vC7cOn82JSEXsNguozCAOU2c=
    
    507 vào một tệp bên ngoài và thay thế các URL
    K9lw3V-k5gOedmVwmO5vC7cOn82JSEXsNguozCAOU2c=
    
    508 và
    K9lw3V-k5gOedmVwmO5vC7cOn82JSEXsNguozCAOU2c=
    
    511 bằng các lệnh gọi
    K9lw3V-k5gOedmVwmO5vC7cOn82JSEXsNguozCAOU2c=
    
    512 thích hợp. Ví dụ: bạn có thể viết lại phần sau từ

    LRH9CAkNs-zoU3hxHbrtY0CUUcmqzibPeN7x6-vwNWQ=
    
    7

    đến một cái gì đó giống như

    LRH9CAkNs-zoU3hxHbrtY0CUUcmqzibPeN7x6-vwNWQ=
    
    7
    LRH9CAkNs-zoU3hxHbrtY0CUUcmqzibPeN7x6-vwNWQ=
    
    8

    Mã được viết lại có một số ưu điểm trên và ngoài việc hoạt động tốt với CSP; . JavaScript nội tuyến kết hợp cấu trúc và hành vi theo đúng cách bạn không nên làm. Các tài nguyên bên ngoài giúp trình duyệt dễ dàng lưu vào bộ đệm hơn, dễ hiểu hơn đối với các nhà phát triển và thuận lợi cho việc biên dịch và thu nhỏ. Bạn sẽ viết mã tốt hơn nếu bạn thực hiện công việc chuyển mã sang các tài nguyên bên ngoài

    Kiểu nội tuyến được xử lý theo cùng một cách. cả thuộc tính

    K9lw3V-k5gOedmVwmO5vC7cOn82JSEXsNguozCAOU2c=
    
    513 và thẻ
    K9lw3V-k5gOedmVwmO5vC7cOn82JSEXsNguozCAOU2c=
    
    513 phải được hợp nhất vào biểu định kiểu bên ngoài để bảo vệ chống lại nhiều phương pháp đánh cắp dữ liệu thông minh đáng ngạc nhiên mà CSS cho phép

    Nếu bạn phải có tập lệnh và kiểu nội tuyến, bạn có thể kích hoạt nó bằng cách thêm

    LRH9CAkNs-zoU3hxHbrtY0CUUcmqzibPeN7x6-vwNWQ=
    
    01 làm nguồn được phép trong chỉ thị
    K9lw3V-k5gOedmVwmO5vC7cOn82JSEXsNguozCAOU2c=
    
    78 hoặc
    LRH9CAkNs-zoU3hxHbrtY0CUUcmqzibPeN7x6-vwNWQ=
    
    76. Bạn cũng có thể sử dụng nonce hoặc hash [xem bên dưới], nhưng bạn thực sự không nên. Cấm tập lệnh nội tuyến là chiến thắng bảo mật lớn nhất mà CSP cung cấp và việc cấm kiểu nội tuyến cũng làm cứng ứng dụng của bạn. Cần phải nỗ lực một chút để đảm bảo rằng mọi thứ hoạt động chính xác sau khi di chuyển tất cả mã ra khỏi dòng, nhưng đó là một sự đánh đổi rất đáng để thực hiện

    Nếu bạn hoàn toàn phải sử dụng nó #

    CSP Cấp 2 cung cấp khả năng tương thích ngược cho các tập lệnh nội tuyến bằng cách cho phép bạn thêm các tập lệnh nội tuyến cụ thể vào danh sách cho phép bằng cách sử dụng nonce mật mã [số được sử dụng một lần] hoặc hàm băm. Mặc dù điều này có thể rườm rà, nhưng nó rất hữu ích trong trường hợp khẩn cấp

    Để sử dụng nonce, hãy cung cấp cho thẻ tập lệnh của bạn một thuộc tính nonce. Giá trị của nó phải khớp với một trong danh sách các nguồn đáng tin cậy. Ví dụ

    LRH9CAkNs-zoU3hxHbrtY0CUUcmqzibPeN7x6-vwNWQ=
    
    2

    Bây giờ, hãy thêm nonce vào chỉ thị

    K9lw3V-k5gOedmVwmO5vC7cOn82JSEXsNguozCAOU2c=
    
    78 của bạn được thêm vào từ khóa
    K9lw3V-k5gOedmVwmO5vC7cOn82JSEXsNguozCAOU2c=
    
    519

    LRH9CAkNs-zoU3hxHbrtY0CUUcmqzibPeN7x6-vwNWQ=
    
    0

    Hãy nhớ rằng các nonce phải được tạo lại cho mọi yêu cầu trang và chúng phải không thể đoán được

    Băm hoạt động theo cách tương tự. Thay vì thêm mã vào thẻ tập lệnh, hãy tạo hàm băm SHA của chính tập lệnh đó và thêm nó vào chỉ thị

    K9lw3V-k5gOedmVwmO5vC7cOn82JSEXsNguozCAOU2c=
    
    78. Ví dụ: giả sử trang của bạn chứa nội dung này

    LRH9CAkNs-zoU3hxHbrtY0CUUcmqzibPeN7x6-vwNWQ=
    
    0

    Chính sách của bạn sẽ chứa điều này

    K9lw3V-k5gOedmVwmO5vC7cOn82JSEXsNguozCAOU2c=
    
    50

    Có một vài điều cần lưu ý ở đây. Tiền tố

    K9lw3V-k5gOedmVwmO5vC7cOn82JSEXsNguozCAOU2c=
    
    521 chỉ định thuật toán tạo hàm băm. Trong ví dụ trên,
    K9lw3V-k5gOedmVwmO5vC7cOn82JSEXsNguozCAOU2c=
    
    522 được sử dụng. CSP cũng hỗ trợ
    K9lw3V-k5gOedmVwmO5vC7cOn82JSEXsNguozCAOU2c=
    
    523 và
    K9lw3V-k5gOedmVwmO5vC7cOn82JSEXsNguozCAOU2c=
    
    524. Khi tạo hàm băm, không bao gồm các thẻ
    K9lw3V-k5gOedmVwmO5vC7cOn82JSEXsNguozCAOU2c=
    
    525. Ngoài ra, viết hoa và khoảng trắng cũng quan trọng, bao gồm cả khoảng trắng ở đầu hoặc cuối

    Tìm kiếm trên Google về cách tạo hàm băm SHA sẽ dẫn bạn đến các giải pháp bằng bất kỳ ngôn ngữ nào. Sử dụng Chrome 40 trở lên, bạn có thể mở DevTools rồi tải lại trang của mình. Tab Bảng điều khiển sẽ chứa các thông báo lỗi với hàm băm sha256 chính xác cho từng tập lệnh nội tuyến của bạn

    Đánh giá quá #

    Ngay cả khi kẻ tấn công không thể đưa tập lệnh trực tiếp vào, chúng vẫn có thể lừa ứng dụng của bạn chuyển đổi văn bản trơ thành JavaScript có thể thực thi được và thay mặt chúng thực thi nó.

    K9lw3V-k5gOedmVwmO5vC7cOn82JSEXsNguozCAOU2c=
    
    72,
    K9lw3V-k5gOedmVwmO5vC7cOn82JSEXsNguozCAOU2c=
    
    527,
    K9lw3V-k5gOedmVwmO5vC7cOn82JSEXsNguozCAOU2c=
    
    528 và
    K9lw3V-k5gOedmVwmO5vC7cOn82JSEXsNguozCAOU2c=
    
    529 đều là các vectơ mà qua đó văn bản được đưa vào có thể sẽ thực thi một thứ gì đó độc hại không mong muốn. Phản ứng mặc định của CSP đối với rủi ro này là chặn hoàn toàn tất cả các vectơ này

    Điều này có nhiều tác động đến cách bạn xây dựng ứng dụng

    • Bạn phải phân tích cú pháp JSON thông qua
      K9lw3V-k5gOedmVwmO5vC7cOn82JSEXsNguozCAOU2c=
      
      530 tích hợp, thay vì dựa vào
      LRH9CAkNs-zoU3hxHbrtY0CUUcmqzibPeN7x6-vwNWQ=
      
      03. Các hoạt động JSON gốc có sẵn trong mọi trình duyệt kể từ IE8 và chúng hoàn toàn an toàn
    • Viết lại bất kỳ cuộc gọi
      K9lw3V-k5gOedmVwmO5vC7cOn82JSEXsNguozCAOU2c=
      
      532 hoặc
      K9lw3V-k5gOedmVwmO5vC7cOn82JSEXsNguozCAOU2c=
      
      533 nào bạn hiện đang thực hiện bằng các hàm nội tuyến thay vì chuỗi. Ví dụ
    K9lw3V-k5gOedmVwmO5vC7cOn82JSEXsNguozCAOU2c=
    
    51

    sẽ được viết tốt hơn như

    K9lw3V-k5gOedmVwmO5vC7cOn82JSEXsNguozCAOU2c=
    
    52
    • Tránh tạo khuôn mẫu nội tuyến trong thời gian chạy. Nhiều thư viện tạo khuôn mẫu sử dụng tự do
      K9lw3V-k5gOedmVwmO5vC7cOn82JSEXsNguozCAOU2c=
      
      527 để tăng tốc độ tạo khuôn mẫu trong thời gian chạy. Đó là một ứng dụng tiện lợi của lập trình động, nhưng có nguy cơ đánh giá văn bản độc hại. Một số khung hỗ trợ CSP ngay lập tức, quay trở lại trình phân tích cú pháp mạnh mẽ khi không có
      LRH9CAkNs-zoU3hxHbrtY0CUUcmqzibPeN7x6-vwNWQ=
      
      03. Chỉ thị ng-csp của AngularJS là một ví dụ điển hình về điều này

    Tuy nhiên, một lựa chọn tốt hơn sẽ là một ngôn ngữ tạo khuôn mẫu cung cấp khả năng biên dịch trước [ví dụ như Handlebars]. Biên dịch trước các mẫu của bạn có thể giúp trải nghiệm người dùng nhanh hơn so với triển khai thời gian chạy nhanh nhất và nó cũng an toàn hơn. Nếu eval và các anh em chuyển văn bản thành JavaScript của nó cần thiết cho ứng dụng của bạn, bạn có thể kích hoạt chúng bằng cách thêm

    LRH9CAkNs-zoU3hxHbrtY0CUUcmqzibPeN7x6-vwNWQ=
    
    02 làm nguồn được phép trong chỉ thị
    K9lw3V-k5gOedmVwmO5vC7cOn82JSEXsNguozCAOU2c=
    
    78, nhưng chúng tôi thực sự không khuyến khích điều này. Việc cấm khả năng thực thi chuỗi khiến kẻ tấn công khó thực thi mã trái phép trên trang web của bạn hơn nhiều

    Báo cáo #

    Khả năng chặn các tài nguyên không đáng tin cậy phía máy khách của CSP là một chiến thắng lớn cho người dùng của bạn, nhưng sẽ khá hữu ích nếu có một số loại thông báo được gửi lại máy chủ để bạn có thể xác định và loại bỏ bất kỳ lỗi nào cho phép tiêm mã độc ngay từ đầu . Để làm được điều này, bạn có thể hướng dẫn trình duyệt gửi các báo cáo vi phạm có định dạng JSON của

    K9lw3V-k5gOedmVwmO5vC7cOn82JSEXsNguozCAOU2c=
    
    538 đến một vị trí được chỉ định trong chỉ thị
    LRH9CAkNs-zoU3hxHbrtY0CUUcmqzibPeN7x6-vwNWQ=
    
    74

    K9lw3V-k5gOedmVwmO5vC7cOn82JSEXsNguozCAOU2c=
    
    53

    Những báo cáo đó sẽ trông giống như sau

    K9lw3V-k5gOedmVwmO5vC7cOn82JSEXsNguozCAOU2c=
    
    54

    Phần này chứa một lượng lớn thông tin sẽ giúp bạn theo dõi nguyên nhân cụ thể của vi phạm, bao gồm trang xảy ra vi phạm [

    K9lw3V-k5gOedmVwmO5vC7cOn82JSEXsNguozCAOU2c=
    
    540], liên kết giới thiệu của trang đó [lưu ý rằng không giống như trường tiêu đề HTTP, khóa không bị sai chính tả]

    Chỉ báo cáo #

    Nếu bạn mới bắt đầu sử dụng CSP, bạn nên đánh giá trạng thái hiện tại của ứng dụng trước khi đưa ra chính sách hà khắc cho người dùng của mình. Là bước đệm để triển khai hoàn chỉnh, bạn có thể yêu cầu trình duyệt giám sát chính sách, báo cáo vi phạm nhưng không thực thi các hạn chế. Thay vì gửi tiêu đề

    K9lw3V-k5gOedmVwmO5vC7cOn82JSEXsNguozCAOU2c=
    
    76, hãy gửi tiêu đề
    K9lw3V-k5gOedmVwmO5vC7cOn82JSEXsNguozCAOU2c=
    
    545

    K9lw3V-k5gOedmVwmO5vC7cOn82JSEXsNguozCAOU2c=
    
    55

    Chính sách được chỉ định trong chế độ chỉ báo cáo sẽ không chặn các tài nguyên bị hạn chế nhưng sẽ gửi báo cáo vi phạm đến vị trí bạn chỉ định. Bạn thậm chí có thể gửi cả hai tiêu đề, thực thi một chính sách trong khi theo dõi một chính sách khác. Đây là một cách tuyệt vời để đánh giá tác động của các thay đổi đối với CSP của ứng dụng của bạn. bật báo cáo cho một chính sách mới, theo dõi các báo cáo vi phạm và sửa bất kỳ lỗi nào xuất hiện;

    Cách sử dụng trong thế giới thực #

    CSP 1 hoàn toàn có thể sử dụng được trong Chrome, Safari và Firefox nhưng hỗ trợ rất hạn chế trong IE 10. Bạn có thể xem cụ thể tại caniuse. com. CSP Cấp 2 đã có trong Chrome kể từ phiên bản 40. Các trang web lớn như Twitter và Facebook đã triển khai tiêu đề [nghiên cứu điển hình của Twitter rất đáng đọc] và tiêu chuẩn đã sẵn sàng để bạn bắt đầu triển khai trên các trang web của riêng mình

    Bước đầu tiên để xây dựng chính sách cho ứng dụng của bạn là đánh giá các tài nguyên bạn đang thực sự tải. Sau khi bạn cho rằng mình nắm được cách mọi thứ được kết hợp với nhau trong ứng dụng của mình, hãy thiết lập chính sách dựa trên những yêu cầu đó. Hãy xem qua một vài trường hợp sử dụng phổ biến và xác định cách tốt nhất chúng ta có thể hỗ trợ chúng trong giới hạn bảo vệ của CSP

    Trường hợp sử dụng số 1. tiện ích truyền thông xã hội #

    • Nút Like của Facebook có một số tùy chọn triển khai. Chúng tôi khuyên bạn nên sử dụng phiên bản

      LRH9CAkNs-zoU3hxHbrtY0CUUcmqzibPeN7x6-vwNWQ=
      
      74 vì phiên bản này được hộp cát an toàn với phần còn lại của trang web của bạn. Nó yêu cầu một chỉ thị
      K9lw3V-k5gOedmVwmO5vC7cOn82JSEXsNguozCAOU2c=
      
      547 để hoạt động bình thường. Lưu ý rằng, theo mặc định, mã
      LRH9CAkNs-zoU3hxHbrtY0CUUcmqzibPeN7x6-vwNWQ=
      
      74 mà Facebook cung cấp sẽ tải một URL tương đối,
      K9lw3V-k5gOedmVwmO5vC7cOn82JSEXsNguozCAOU2c=
      
      549. Thay đổi điều đó để chỉ định rõ ràng HTTPS.
      K9lw3V-k5gOedmVwmO5vC7cOn82JSEXsNguozCAOU2c=
      
      550. Không có lý do gì để sử dụng HTTP nếu bạn không phải làm vậy

    • Nút Tweet của Twitter dựa trên quyền truy cập vào tập lệnh và khung, cả hai đều được lưu trữ tại

      K9lw3V-k5gOedmVwmO5vC7cOn82JSEXsNguozCAOU2c=
      
      551. [Twitter cũng cung cấp một URL tương đối theo mặc định; chỉnh sửa mã để chỉ định HTTPS khi sao chép/dán nó cục bộ. ] Bạn sẽ hoàn tất cài đặt với
      K9lw3V-k5gOedmVwmO5vC7cOn82JSEXsNguozCAOU2c=
      
      552, miễn là bạn di chuyển đoạn mã JavaScript mà Twitter cung cấp vào một tệp JavaScript bên ngoài

    • Các nền tảng khác có yêu cầu tương tự và có thể được giải quyết tương tự. Chúng tôi khuyên bạn chỉ nên đặt

      LRH9CAkNs-zoU3hxHbrtY0CUUcmqzibPeN7x6-vwNWQ=
      
      82 của
      LRH9CAkNs-zoU3hxHbrtY0CUUcmqzibPeN7x6-vwNWQ=
      
      09 và xem bảng điều khiển của bạn để xác định tài nguyên nào bạn sẽ cần kích hoạt để các tiện ích con hoạt động

    Bao gồm nhiều vật dụng rất đơn giản. chỉ cần kết hợp các chỉ thị chính sách, nhớ hợp nhất tất cả các tài nguyên của một loại thành một chỉ thị duy nhất. Nếu bạn muốn cả ba tiện ích mạng xã hội, chính sách sẽ như thế này

    K9lw3V-k5gOedmVwmO5vC7cOn82JSEXsNguozCAOU2c=
    
    56

    Trường hợp sử dụng #2. lệnh đóng cửa #

    Giả sử rằng bạn điều hành một trang web ngân hàng và muốn đảm bảo rằng chỉ những tài nguyên do chính bạn viết mới có thể được tải. Trong trường hợp này, hãy bắt đầu với một chính sách mặc định chặn hoàn toàn mọi thứ [

    K9lw3V-k5gOedmVwmO5vC7cOn82JSEXsNguozCAOU2c=
    
    555] và xây dựng từ đó

    Giả sử ngân hàng tải tất cả hình ảnh, phong cách và tập lệnh từ CDN tại

    K9lw3V-k5gOedmVwmO5vC7cOn82JSEXsNguozCAOU2c=
    
    556 và kết nối qua XHR tới
    K9lw3V-k5gOedmVwmO5vC7cOn82JSEXsNguozCAOU2c=
    
    557 để kéo nhiều bit dữ liệu xuống. Khung được sử dụng, nhưng chỉ dành cho các trang cục bộ của trang web [không có nguồn gốc của bên thứ ba]. Không có Flash trên trang web, không có phông chữ, không có tính năng bổ sung. Tiêu đề CSP hạn chế nhất mà chúng tôi có thể gửi là đây

    K9lw3V-k5gOedmVwmO5vC7cOn82JSEXsNguozCAOU2c=
    
    57

    Trường hợp sử dụng #3. Chỉ SSL #

    Quản trị viên diễn đàn thảo luận về nhẫn cưới muốn đảm bảo rằng tất cả các tài nguyên chỉ được tải qua các kênh an toàn nhưng không thực sự viết nhiều mã; . Chính sách sau đây sẽ có hiệu quả

    K9lw3V-k5gOedmVwmO5vC7cOn82JSEXsNguozCAOU2c=
    
    58

    Mặc dù

    LRH9CAkNs-zoU3hxHbrtY0CUUcmqzibPeN7x6-vwNWQ=
    
    02 được chỉ định trong
    LRH9CAkNs-zoU3hxHbrtY0CUUcmqzibPeN7x6-vwNWQ=
    
    82, các chỉ thị kiểu lệnh và tập lệnh không tự động kế thừa nguồn đó. Mỗi lệnh ghi đè hoàn toàn mặc định cho loại tài nguyên cụ thể đó

    Tương lai #

    Chính sách bảo mật nội dung cấp 2 là Đề xuất của ứng viên. Nhóm làm việc về bảo mật ứng dụng web của W3C đã bắt đầu làm việc với lần lặp tiếp theo của đặc tả, Chính sách bảo mật nội dung cấp 3

    Nếu bạn quan tâm đến cuộc thảo luận xung quanh các tính năng sắp ra mắt này, hãy lướt qua kho lưu trữ danh sách gửi thư công khai-webappsec@ hoặc tự mình tham gia

Chủ Đề