Vệ sinh-html github

nhập * dưới dạng vệ sinh từ 'sanitize-html'; . vệ sinh. IOptions = { allowTags. vệ sinh. mặc định. cho phépTags. concat['h1', 'h2', 'img'], allowAttributes. { 'một'. vệ sinh. mặc định. allowAttributes['a']. concat['rel'], 'img'. ['src', 'height', 'width', 'alt'] }, transformTags. { 'một'. vệ sinh. SimpleTransform['a', { 'rel'. 'nofollow' }], 'img'. [tên thẻ. chuỗi, thuộc tính. vệ sinh. Thuộc tính] => { let img = { tagName, attribs }; . attribs['alt'] = 'đã biến đổi' ; . chức năng [khung. vệ sinh. iFrame] { khung trả lại. thẻ === 'a' &&. khung. chữ. cắt [];

sanitize-html là khoan dung. Nó rất phù hợp để dọn dẹp các đoạn HTML chẳng hạn như các đoạn được tạo bởi CKEditor và các trình soạn thảo văn bản đa dạng thức khác. Nó đặc biệt tiện dụng để loại bỏ CSS không mong muốn khi sao chép và dán từ Word

sanitize-html cho phép bạn chỉ định các thẻ bạn muốn cho phép và các thuộc tính được phép cho từng thẻ đó

Nếu thẻ không được phép, nội dung của thẻ sẽ không bị loại bỏ. Có một số ngoại lệ đối với điều này, được thảo luận bên dưới trong phần "Loại bỏ toàn bộ nội dung của thẻ không được phép"

Cú pháp của các phần tử

import sanitizeHtml from 'sanitize-html';

const html = "hello world";
console.log[sanitizeHtml[html]];
console.log[sanitizeHtml[""]];
console.log[sanitizeHtml["console.log['hello world']"]];
console.log[sanitizeHtml["alert['hello world']"]];
8 và
import sanitizeHtml from 'sanitize-html';

const html = "hello world";
console.log[sanitizeHtml[html]];
console.log[sanitizeHtml[""]];
console.log[sanitizeHtml["console.log['hello world']"]];
console.log[sanitizeHtml["alert['hello world']"]];
9 đóng kém được làm sạch

Thuộc tính

npm install sanitize-html
0 được xác thực để đảm bảo chúng chỉ chứa các URL
npm install sanitize-html
1,
npm install sanitize-html
2,
npm install sanitize-html
3 và
npm install sanitize-html
4. URL tương đối cũng được cho phép. Ditto cho các thuộc tính
npm install sanitize-html
5

Cho phép các url cụ thể dưới dạng

npm install sanitize-html
5 đối với thẻ iframe bằng cách lọc tên máy chủ cũng được hỗ trợ

Nhận xét HTML không được lưu giữ. Ngoài ra,

npm install sanitize-html
7 thoát khỏi TẤT CẢ nội dung văn bản - điều này có nghĩa là các ký hiệu và, lớn hơn và nhỏ hơn được chuyển đổi thành tham chiếu ký tự HTML tương đương của chúng [
npm install sanitize-html
8 -->
npm install sanitize-html
9,
import sanitizeHtml from 'sanitize-html';

const html = "hello world";
console.log[sanitizeHtml[html]];
console.log[sanitizeHtml[""]];
console.log[sanitizeHtml["console.log['hello world']"]];
console.log[sanitizeHtml["alert['hello world']"]];
20 -->
import sanitizeHtml from 'sanitize-html';

const html = "hello world";
console.log[sanitizeHtml[html]];
console.log[sanitizeHtml[""]];
console.log[sanitizeHtml["console.log['hello world']"]];
console.log[sanitizeHtml["alert['hello world']"]];
21, v.v.]. Ngoài ra, trong các giá trị thuộc tính, dấu ngoặc kép cũng được thoát ra [
import sanitizeHtml from 'sanitize-html';

const html = "hello world";
console.log[sanitizeHtml[html]];
console.log[sanitizeHtml[""]];
console.log[sanitizeHtml["console.log['hello world']"]];
console.log[sanitizeHtml["alert['hello world']"]];
22 -->
import sanitizeHtml from 'sanitize-html';

const html = "hello world";
console.log[sanitizeHtml[html]];
console.log[sanitizeHtml[""]];
console.log[sanitizeHtml["console.log['hello world']"]];
console.log[sanitizeHtml["alert['hello world']"]];
23]

Yêu cầu

sanitize-html được thiết kế để sử dụng với Node. js và hỗ trợ Node 10+. Tất cả các phụ thuộc npm của nó là JavaScript thuần túy. sanitize-html được xây dựng trên mô-đun

import sanitizeHtml from 'sanitize-html';

const html = "hello world";
console.log[sanitizeHtml[html]];
console.log[sanitizeHtml[""]];
console.log[sanitizeHtml["console.log['hello world']"]];
console.log[sanitizeHtml["alert['hello world']"]];
24 xuất sắc

Về TypeScript

sanitize-html không được viết bằng TypeScript và không có kế hoạch hỗ trợ trực tiếp nó. Tuy nhiên, có một định nghĩa đánh máy được cộng đồng hỗ trợ,

import sanitizeHtml from 'sanitize-html';

const html = "hello world";
console.log[sanitizeHtml[html]];
console.log[sanitizeHtml[""]];
console.log[sanitizeHtml["console.log['hello world']"]];
console.log[sanitizeHtml["alert['hello world']"]];
25

import sanitizeHtml from 'sanitize-html';

const html = "hello world";
console.log[sanitizeHtml[html]];
console.log[sanitizeHtml[""]];
console.log[sanitizeHtml["console.log['hello world']"]];
console.log[sanitizeHtml["alert['hello world']"]];
8

Nếu

import sanitizeHtml from 'sanitize-html';

const html = "hello world";
console.log[sanitizeHtml[html]];
console.log[sanitizeHtml[""]];
console.log[sanitizeHtml["console.log['hello world']"]];
console.log[sanitizeHtml["alert['hello world']"]];
26 không được đặt trong tệp
import sanitizeHtml from 'sanitize-html';

const html = "hello world";
console.log[sanitizeHtml[html]];
console.log[sanitizeHtml[""]];
console.log[sanitizeHtml["console.log['hello world']"]];
console.log[sanitizeHtml["alert['hello world']"]];
27 của bạn, bạn phải nhập nó bằng

npm install sanitize-html
1

Bất kỳ câu hỏi hoặc vấn đề nào trong khi sử dụng

import sanitizeHtml from 'sanitize-html';

const html = "hello world";
console.log[sanitizeHtml[html]];
console.log[sanitizeHtml[""]];
console.log[sanitizeHtml["console.log['hello world']"]];
console.log[sanitizeHtml["alert['hello world']"]];
25 nên được chuyển đến những người bảo trì của nó theo chỉ dẫn của hướng dẫn đóng góp của dự án đó

Cách sử dụng

trình duyệt

Hãy suy nghĩ trước. tại sao bạn muốn sử dụng nó trong trình duyệt? . Bạn không thể khử trùng HTML để lưu trên máy chủ ở bất kỳ nơi nào khác ngoài máy chủ

Tuy nhiên, có lẽ bạn muốn hiển thị HTML đã được làm sạch ngay lập tức trong trình duyệt để xem trước. Hoặc yêu cầu trình duyệt thực hiện công việc khử trùng trên mỗi lần tải trang. Bạn có thể nếu bạn muốn

  • Cài đặt gói

npm install sanitize-html

hoặc

npm install sanitize-html
4

Sự thay đổi chính trong 2. phiên bản x của sanitize-html là nó không còn bao gồm bản dựng đã sẵn sàng để sử dụng trình duyệt. Các nhà phát triển dự kiến ​​sẽ bao gồm sanitize-html trong các bản dựng dự án của họ [e. g. , webpack] giống như bất kỳ phần phụ thuộc nào khác. Vì vậy, trong khi sanitize-html không còn sẵn sàng để liên kết trực tiếp trong HTML, giờ đây các nhà phát triển có thể xử lý nó dễ dàng hơn theo nhu cầu của họ

Sau khi được xây dựng và liên kết trong trình duyệt với Javascript của dự án khác, nó có thể được sử dụng để làm sạch các chuỗi HTML trong mã giao diện người dùng

import sanitizeHtml from 'sanitize-html';

const html = "hello world";
console.log[sanitizeHtml[html]];
console.log[sanitizeHtml[""]];
console.log[sanitizeHtml["console.log['hello world']"]];
console.log[sanitizeHtml["alert['hello world']"]];

Nút [Được khuyến nghị]

Cài đặt mô-đun từ bảng điều khiển

npm install sanitize-html

Nhập mô-đun

import sanitizeHtml from 'sanitize-html';

const html = "hello world";
console.log[sanitizeHtml[html]];
console.log[sanitizeHtml[""]];
console.log[sanitizeHtml["console.log['hello world']"]];
console.log[sanitizeHtml["alert['hello world']"]];
2

Sử dụng nó trong ứng dụng JavaScript của bạn

npm install sanitize-html
8

Điều đó sẽ cho phép danh sách các thẻ và thuộc tính được phép mặc định của chúng tôi thông qua. Đó là một bộ đẹp, nhưng có lẽ không hoàn toàn như những gì bạn muốn. Cho nên

npm install sanitize-html
9

bùng nổ

tùy chọn mặc định

npm install sanitize-html
0

Các trường hợp sử dụng phổ biến

"Tôi thích bộ của bạn nhưng tôi muốn thêm một thẻ nữa. Có cách nào thuận tiện không?"

Chắc chắn rồi

npm install sanitize-html
10

Nếu bạn không chỉ định

import sanitizeHtml from 'sanitize-html';

const html = "hello world";
console.log[sanitizeHtml[html]];
console.log[sanitizeHtml[""]];
console.log[sanitizeHtml["console.log['hello world']"]];
console.log[sanitizeHtml["alert['hello world']"]];
29 hoặc
npm install sanitize-html
80, danh sách mặc định của chúng tôi sẽ được áp dụng. Vì vậy, nếu bạn thực sự muốn có một danh sách trống, hãy chỉ định một

"Nếu tôi muốn cho phép tất cả các thẻ hoặc tất cả các thuộc tính thì sao?"

Giản dị. Thay vì để

import sanitizeHtml from 'sanitize-html';

const html = "hello world";
console.log[sanitizeHtml[html]];
console.log[sanitizeHtml[""]];
console.log[sanitizeHtml["console.log['hello world']"]];
console.log[sanitizeHtml["alert['hello world']"]];
29 hoặc
npm install sanitize-html
80 ngoài các tùy chọn, hãy đặt một hoặc cả hai thành
npm install sanitize-html
83

npm install sanitize-html
11

"Nếu tôi không muốn cho phép bất kỳ thẻ nào thì sao?"

Cũng đơn giản. Đặt

import sanitizeHtml from 'sanitize-html';

const html = "hello world";
console.log[sanitizeHtml[html]];
console.log[sanitizeHtml[""]];
console.log[sanitizeHtml["console.log['hello world']"]];
console.log[sanitizeHtml["alert['hello world']"]];
29 thành
npm install sanitize-html
85 và
npm install sanitize-html
80 thành
npm install sanitize-html
87

npm install sanitize-html
12

"Điều gì xảy ra nếu tôi muốn các thẻ không được phép thoát thay vì bị loại bỏ?"

Nếu bạn đặt

npm install sanitize-html
88 thành
npm install sanitize-html
89 [mặc định], các thẻ không được phép sẽ bị loại bỏ. Mọi nội dung văn bản hoặc thẻ phụ vẫn được bao gồm, tùy thuộc vào việc các thẻ phụ riêng lẻ có được phép hay không

Nếu bạn đặt

npm install sanitize-html
88 thành
npm install sanitize-html
91, các thẻ không được phép sẽ được thoát thay vì bị loại bỏ. Mọi văn bản hoặc thẻ phụ đều được xử lý bình thường

Nếu bạn đặt

npm install sanitize-html
88 thành
npm install sanitize-html
93, các thẻ không được phép sẽ được thoát thay vì bị loại bỏ và cách xử lý tương tự được áp dụng cho tất cả các thẻ phụ, cho dù có được phép hay không

"Nếu tôi chỉ muốn cho phép các giá trị cụ thể trên một số thuộc tính thì sao?"

Khi định cấu hình thuộc tính trong

npm install sanitize-html
80, chỉ cần sử dụng một đối tượng có thuộc tính
npm install sanitize-html
95 và một mảng
npm install sanitize-html
96 được phép. Trong ví dụ sau,
npm install sanitize-html
97 sẽ trở thành
npm install sanitize-html
98

npm install sanitize-html
13

Với

npm install sanitize-html
99, một số giá trị được phép có thể xuất hiện trong cùng một thuộc tính, được phân tách bằng dấu cách. Mặt khác, thuộc tính phải khớp chính xác với một và chỉ một trong các giá trị được phép

Ký tự đại diện cho các thuộc tính

Bạn có thể sử dụng ký tự đại diện

npm install sanitize-html
00 để cho phép tất cả các thuộc tính có tiền tố nhất định

npm install sanitize-html
14

Ngoài ra, bạn có thể sử dụng

npm install sanitize-html
00 làm tên cho thẻ, để cho phép các thuộc tính được liệt kê có hiệu lực đối với bất kỳ thẻ nào

npm install sanitize-html
15

Tùy chọn bổ sung

Các lớp CSS được phép

Nếu bạn muốn cho phép các lớp CSS cụ thể trên một phần tử cụ thể, bạn có thể làm như vậy với tùy chọn

npm install sanitize-html
02. Bất kỳ lớp CSS nào khác đều bị loại bỏ

Điều này ngụ ý rằng thuộc tính

npm install sanitize-html
03 được cho phép trên phần tử đó

npm install sanitize-html
16

Tương tự như

npm install sanitize-html
80, bạn có thể sử dụng
npm install sanitize-html
00 để cho phép các lớp có tiền tố nhất định hoặc sử dụng
npm install sanitize-html
00 làm tên thẻ để cho phép các lớp được liệt kê có giá trị đối với bất kỳ thẻ nào

npm install sanitize-html
17

Hơn nữa, các biểu thức chính quy cũng được hỗ trợ

npm install sanitize-html
18

Ghi chú. Chúng tôi khuyên rằng các biểu thức chính quy của bạn luôn bắt đầu bằng

npm install sanitize-html
07 để bạn yêu cầu một tiền tố đã biết. Một biểu thức chính quy không có
npm install sanitize-html
07 hay
npm install sanitize-html
09 chỉ yêu cầu một cái gì đó xuất hiện ở giữa

Kiểu CSS được phép

Nếu bạn muốn cho phép các kiểu CSS cụ thể trên một phần tử cụ thể, bạn có thể làm điều đó với tùy chọn

npm install sanitize-html
100. Chỉ cần khai báo các thuộc tính mong muốn của bạn dưới dạng các tùy chọn biểu thức chính quy trong một mảng cho thuộc tính đã cho. Các phần tử cụ thể sẽ kế thừa các thuộc tính trong danh sách cho phép từ thuộc tính toàn cầu [
npm install sanitize-html
00]. Bất kỳ lớp CSS nào khác đều bị loại bỏ

Bạn cũng phải sử dụng

npm install sanitize-html
80 để kích hoạt thuộc tính
npm install sanitize-html
103 cho các phần tử liên quan. Nếu không thì tính năng này sẽ không bao giờ phát huy tác dụng

Khi xây dựng biểu thức chính quy, đừng quên

npm install sanitize-html
07 và
npm install sanitize-html
09. Không đủ để nói "chuỗi nên chứa cái này. " Cũng phải nói " và chỉ cái này thôi. "

Các URL ở kiểu nội tuyến KHÔNG được lọc bởi bất kỳ cơ chế nào ngoài cụm từ thông dụng của bạn

npm install sanitize-html
19

Loại bỏ văn bản bên ngoài các thẻ
npm install sanitize-html
106

Một số ứng dụng chỉnh sửa văn bản tạo HTML để cho phép sao chép sang ứng dụng web. Đôi khi chúng có thể bao gồm các ký tự điều khiển không mong muốn sau khi kết thúc thẻ

npm install sanitize-html
107. Theo mặc định, sanitize-html sẽ không loại bỏ các ký tự này, thay vào đó trả về chúng trong chuỗi đã được làm sạch. Hành vi này có thể được sửa đổi bằng cách sử dụng tùy chọn
npm install sanitize-html
108

Đặt tùy chọn này thành true sẽ hướng dẫn sanitize-html loại bỏ tất cả các ký tự bên ngoài ranh giới thẻ

npm install sanitize-html
107 -- trước thẻ
npm install sanitize-html
110 và sau thẻ
npm install sanitize-html
111

npm install sanitize-html
0

htmlparser2 Tùy chọn

sanitize-html được xây dựng trên

import sanitizeHtml from 'sanitize-html';

const html = "hello world";
console.log[sanitizeHtml[html]];
console.log[sanitizeHtml[""]];
console.log[sanitizeHtml["console.log['hello world']"]];
console.log[sanitizeHtml["alert['hello world']"]];
24. Theo mặc định, tùy chọn duy nhất được truyền xuống là
npm install sanitize-html
113. Bạn có thể đặt các tùy chọn để vượt qua bằng cách sử dụng tùy chọn trình phân tích cú pháp

lưu ý bảo mật. thay đổi cài đặt

npm install sanitize-html
114 có thể gặp rủi ro. Đặc biệt,
npm install sanitize-html
115 đã biết các mối lo ngại về bảo mật và không tồn tại bộ thử nghiệm hoàn chỉnh cho mọi kết hợp cài đặt có thể có khi được sử dụng với
npm install sanitize-html
7. Nếu mục tiêu của bạn là bảo mật, chúng tôi khuyên bạn nên sử dụng các giá trị mặc định thay vì thay đổi
npm install sanitize-html
114, ngoại trừ tùy chọn
npm install sanitize-html
118

npm install sanitize-html
1

Xem wiki htmlparser2 để biết danh sách đầy đủ các tùy chọn có thể

phép biến hình

Nếu bạn muốn thêm hoặc thay đổi một thuộc tính thì sao?

Cách dễ nhất [sẽ thay đổi tất cả các thẻ

npm install sanitize-html
119 thành thẻ
npm install sanitize-html
120]

npm install sanitize-html
2

Cách sử dụng tiên tiến nhất

npm install sanitize-html
3

Bạn có thể chỉ định ký tự đại diện

npm install sanitize-html
00 thay vì tên thẻ để chuyển đổi tất cả các thẻ

Ngoài ra còn có một phương thức trợ giúp đủ cho các trường hợp đơn giản mà bạn muốn thay đổi thẻ và/hoặc thêm một số thuộc tính

npm install sanitize-html
4

Phương thức trợ giúp

npm install sanitize-html
122 có 3 tham số

npm install sanitize-html
5

Tham số cuối cùng [

npm install sanitize-html
123] được đặt thành
npm install sanitize-html
124 theo mặc định. Khi
npm install sanitize-html
124,
npm install sanitize-html
122 sẽ hợp nhất các thuộc tính hiện tại với các thuộc tính mới [
npm install sanitize-html
127]. Khi
npm install sanitize-html
83, tất cả các thuộc tính hiện có sẽ bị loại bỏ

Bạn cũng có thể thêm hoặc sửa đổi nội dung văn bản của thẻ

npm install sanitize-html
6

Ví dụ: bạn có thể chuyển đổi một phần tử liên kết có văn bản neo bị thiếu

npm install sanitize-html
7

Đến một liên kết có anchor text

npm install sanitize-html
8

bộ lọc

Bạn có thể cung cấp chức năng lọc để xóa các thẻ không mong muốn. Giả sử chúng ta cần xóa các thẻ

npm install sanitize-html
129 trống như

npm install sanitize-html
9

Chúng ta có thể làm điều đó với bộ lọc sau

npm install sanitize-html
40

Đối tượng

npm install sanitize-html
130 được cung cấp cho cuộc gọi lại cung cấp các thuộc tính sau

  • npm install sanitize-html
    131. Tên thẻ, tôi. e.
    npm install sanitize-html
    132
  • npm install sanitize-html
    133. Thuộc tính của thẻ, tôi. e.
    npm install sanitize-html
    134
  • npm install sanitize-html
    135. Nội dung văn bản của thẻ
  • npm install sanitize-html
    136. Các thẻ con ngay lập tức có khả năng đại diện cho phương tiện độc lập [e. g. ,
    import sanitizeHtml from 'sanitize-html';
    
    const html = "hello world";
    console.log[sanitizeHtml[html]];
    console.log[sanitizeHtml[""]];
    console.log[sanitizeHtml["console.log['hello world']"]];
    console.log[sanitizeHtml["alert['hello world']"]];
    9,
    npm install sanitize-html
    138,
    npm install sanitize-html
    139,
    npm install sanitize-html
    140]. Xem biến
    npm install sanitize-html
    141 trong
    npm install sanitize-html
    142 để biết danh sách đầy đủ
  • npm install sanitize-html
    143. Chỉ mục vị trí của thẻ trong chuỗi kết quả

Bạn cũng có thể xử lý tất cả nội dung văn bản bằng chức năng bộ lọc được cung cấp. Giả sử chúng ta muốn có dấu chấm lửng thay vì dấu ba chấm

npm install sanitize-html
41

Chúng ta có thể làm điều đó với bộ lọc sau

npm install sanitize-html
42

Lưu ý rằng văn bản được chuyển đến phương thức

npm install sanitize-html
144 đã được thoát để hiển thị an toàn dưới dạng HTML. Bạn có thể thêm đánh dấu và sử dụng chuỗi thoát thực thể trong
npm install sanitize-html
144 của mình

Bộ lọc khung nội tuyến

Nếu muốn cho phép các thẻ iframe nhưng muốn kiểm soát các miền được phép thông qua, bạn có thể cung cấp một mảng tên máy chủ và/hoặc mảng các miền mà bạn muốn cho phép làm nguồn iframe. Tên máy chủ này là một thuộc tính trong đối tượng tùy chọn được truyền dưới dạng đối số cho hàm sanitize-html

Các mảng này sẽ được kiểm tra đối với html được chuyển đến hàm và chỉ trả về 25 url bao gồm tên máy chủ hoặc miền được phép trong đối tượng. Url trong html được chuyển phải được định dạng chính xác [tên máy chủ hợp lệ] dưới dạng iframe được nhúng nếu không mô-đun sẽ loại bỏ src khỏi iframe

Đảm bảo chuyển tên máy chủ hợp lệ cùng với miền bạn muốn cho phép, tôi. e

npm install sanitize-html
43

Bạn cũng có thể chỉ định có cho phép các URL tương đối làm nguồn iframe hay không

npm install sanitize-html
44

Lưu ý rằng nếu không được chỉ định, các URL tương đối sẽ được phép theo mặc định nếu không cung cấp bộ lọc tên máy chủ hoặc tên miền nhưng bị xóa theo mặc định nếu bộ lọc tên máy chủ hoặc tên miền được cung cấp

Hãy nhớ rằng thẻ

npm install sanitize-html
140 phải được cho phép cũng như thuộc tính
npm install sanitize-html
5

Ví dụ

npm install sanitize-html
45

sẽ đi qua như an toàn trong khi

npm install sanitize-html
46

hoặc

npm install sanitize-html
47

sẽ trả về một thẻ khung nội tuyến trống

Nếu bạn muốn cho phép bất kỳ tên miền phụ nào ở mọi cấp độ, bạn có thể cung cấp tên miền trong

npm install sanitize-html
149

npm install sanitize-html
48

Bộ lọc tập lệnh

Tương tự như iframe, bạn có thể cho phép thẻ tập lệnh trên danh sách các miền có trong danh sách cho phép

npm install sanitize-html
49

Bạn cũng có thể cho phép thẻ tập lệnh trong danh sách tên máy chủ có trong danh sách cho phép

import sanitizeHtml from 'sanitize-html';

const html = "hello world";
console.log[sanitizeHtml[html]];
console.log[sanitizeHtml[""]];
console.log[sanitizeHtml["console.log['hello world']"]];
console.log[sanitizeHtml["alert['hello world']"]];
0

Lược đồ URL được phép

Theo mặc định, chúng tôi cho phép các sơ đồ URL sau đây trong trường hợp

npm install sanitize-html
0,
npm install sanitize-html
5, v.v. được cho phép

import sanitizeHtml from 'sanitize-html';

const html = "hello world";
console.log[sanitizeHtml[html]];
console.log[sanitizeHtml[""]];
console.log[sanitizeHtml["console.log['hello world']"]];
console.log[sanitizeHtml["alert['hello world']"]];
1

Bạn có thể ghi đè lên điều này nếu bạn muốn

import sanitizeHtml from 'sanitize-html';

const html = "hello world";
console.log[sanitizeHtml[html]];
console.log[sanitizeHtml[""]];
console.log[sanitizeHtml["console.log['hello world']"]];
console.log[sanitizeHtml["alert['hello world']"]];
2

Bạn cũng có thể chỉ cho phép lược đồ cho một thẻ cụ thể

import sanitizeHtml from 'sanitize-html';

const html = "hello world";
console.log[sanitizeHtml[html]];
console.log[sanitizeHtml[""]];
console.log[sanitizeHtml["console.log['hello world']"]];
console.log[sanitizeHtml["alert['hello world']"]];
3

Và bạn có thể cấm sử dụng các URL liên quan đến giao thức [bắt đầu bằng

npm install sanitize-html
152] để truy cập một trang web khác bằng giao thức hiện tại, giao thức này được cho phép theo mặc định

import sanitizeHtml from 'sanitize-html';

const html = "hello world";
console.log[sanitizeHtml[html]];
console.log[sanitizeHtml[""]];
console.log[sanitizeHtml["console.log['hello world']"]];
console.log[sanitizeHtml["alert['hello world']"]];
4

Loại bỏ toàn bộ nội dung của thẻ không được phép

Thông thường, với một vài ngoại lệ, nếu một thẻ không được phép, tất cả văn bản bên trong nó sẽ được giữ nguyên và mọi thẻ được phép bên trong nó cũng vậy

Các trường hợp ngoại lệ là

npm install sanitize-html
103,
npm install sanitize-html
154,
npm install sanitize-html
155,
npm install sanitize-html
156

Ví dụ: nếu bạn muốn thay thế danh sách này để loại bỏ bất kỳ nội dung nào được tìm thấy bên trong thẻ

npm install sanitize-html
157, hãy sử dụng tùy chọn
npm install sanitize-html
158

import sanitizeHtml from 'sanitize-html';

const html = "hello world";
console.log[sanitizeHtml[html]];
console.log[sanitizeHtml[""]];
console.log[sanitizeHtml["console.log['hello world']"]];
console.log[sanitizeHtml["alert['hello world']"]];
5

Lưu ý rằng nếu bạn sử dụng tùy chọn này, bạn có trách nhiệm nêu toàn bộ danh sách. Điều này cho phép bạn giữ lại nội dung của

npm install sanitize-html
155, nếu bạn muốn

Nội dung vẫn được thoát đúng cách, ngoại trừ các thẻ

npm install sanitize-html
154 và
npm install sanitize-html
103. Việc cho phép
npm install sanitize-html
154 hoặc
npm install sanitize-html
103 khiến bạn dễ bị tấn công XSS. Đừng làm vậy trừ khi bạn có lý do chính đáng để tin tưởng vào nguồn gốc của chúng. sanitize-html sẽ ghi cảnh báo nếu các thẻ này được cho phép, có thể tắt cảnh báo này bằng tùy chọn
npm install sanitize-html
164

Chọn những việc cần làm với các thẻ không được phép

Thay vì loại bỏ hoặc chỉ giữ lại văn bản, bạn có thể kích hoạt thoát toàn bộ nội dung

import sanitizeHtml from 'sanitize-html';

const html = "hello world";
console.log[sanitizeHtml[html]];
console.log[sanitizeHtml[""]];
console.log[sanitizeHtml["console.log['hello world']"]];
console.log[sanitizeHtml["alert['hello world']"]];
6

Điều này sẽ biến đổi

npm install sanitize-html
165 thành
npm install sanitize-html
166

Giá trị hợp lệ là.

npm install sanitize-html
167 [mặc định],
npm install sanitize-html
168 [thoát khỏi thẻ] và
npm install sanitize-html
169 [để thoát khỏi thẻ và tất cả nội dung của nó]

Hạn chế làm tổ sâu

Bạn có thể giới hạn độ sâu của các thẻ HTML trong tài liệu bằng tùy chọn

npm install sanitize-html
170

import sanitizeHtml from 'sanitize-html';

const html = "hello world";
console.log[sanitizeHtml[html]];
console.log[sanitizeHtml[""]];
console.log[sanitizeHtml["console.log['hello world']"]];
console.log[sanitizeHtml["alert['hello world']"]];
7

Điều này sẽ ngăn người dùng lồng các thẻ sâu hơn 6 cấp độ. Các thẻ sâu hơn sẽ bị loại bỏ chính xác như thể chúng không được phép. Lưu ý rằng điều này có nghĩa là văn bản được giữ nguyên theo những cách thông thường khi thích hợp

Giới thiệu về dấu nháy đơnCMS

sanitize-html đã được tạo tại P'unk Avenue để sử dụng trong ApostropheCMS, một hệ thống quản lý nội dung nguồn mở được xây dựng trên Node. js. Nếu bạn thích sanitize-html, bạn chắc chắn nên xem ApostropheCMS

Điều gì có nghĩa là vệ sinh HTML?

Trong dọn dẹp dữ liệu, dọn dẹp HTML là quá trình kiểm tra tài liệu HTML và tạo tài liệu HTML mới chỉ giữ lại bất kỳ thẻ nào được chỉ định là "an toàn" và mong muốn.

Tại sao nên vệ sinh HTML?

Khử trùng HTML là một chiến lược được OWASP đề xuất để ngăn chặn các lỗ hổng XSS trong các ứng dụng web . Khử trùng HTML cung cấp một cơ chế bảo mật để xóa nội dung không an toàn [và có khả năng độc hại] khỏi các chuỗi HTML thô không đáng tin cậy trước khi hiển thị chúng cho người dùng.

Làm cách nào để khử trùng đầu vào HTML trong Java?

Xử lý đầu vào của người dùng .
Không cho phép nội dung để bạn hiển thị lỗi nếu người dùng cố gắng gửi nội dung xấu
Thoát nội dung để HTML được hiển thị dưới dạng văn bản. .
Làm sạch nội dung để chỉ cho phép HTML an toàn thông qua. .
Tách nội dung để không cho phép bất kỳ HTML nào. .
Thay thế nội dung để người dùng có thể nhập các thẻ không phải HTML mà bạn chuyển đổi sang HTML

Làm cách nào để khử trùng HTML trong Angular?

Làm sạch chuỗi html bằng cách xóa tất cả các mã thông báo nguy hiểm tiềm ẩn . Đầu vào được làm sạch bằng cách phân tích cú pháp HTML thành mã thông báo. Tất cả các mã thông báo an toàn [từ danh sách URI đáng tin cậy] sau đó được tuần tự hóa trở lại chuỗi HTML được thoát đúng cách. Điều này có nghĩa là không có đầu vào không an toàn nào có thể đưa nó vào chuỗi được trả về.

Chủ Đề