Nguy hiểmSetInnerHTML CSS

Phản ứng. thư viện js là tất cả về việc chia ứng dụng thành nhiều thành phần. Mỗi Thành phần có vòng đời riêng. React cung cấp cho chúng ta một số phương thức dựng sẵn mà chúng ta có thể ghi đè ở các giai đoạn cụ thể trong vòng đời của thành phần

Trong các thành phần dựa trên lớp, thuộc tính DangerlySetInnerHTML được sử dụng để đặt InternalHTML cho trang. Đây là sự thay thế cho thuộc tính InternalHTML

Tạo ứng dụng React và cài đặt mô-đun

  • Bước 1. Tạo ứng dụng React bằng lệnh sau

    npx create-react-app foldername
  • Bước 2. Sau khi tạo thư mục dự án của bạn, tôi. e. tên thư mục, di chuyển đến nó bằng lệnh sau

    cd foldername

Cấu trúc dự án. Nó sẽ giống như sau

Nguy hiểmSetInnerHTML CSS

Ví dụ. Bây giờ hãy viết đoạn mã sau vào Ứng dụng. tập tin js. Ở đây, Ứng dụng là thành phần mặc định của chúng tôi, nơi chúng tôi đã viết mã của mình

Ứng dụng. js




cd foldername
4
cd foldername
5
cd foldername
6

cd foldername
7

cd foldername
8

cd foldername
9

cd foldername
7

cd foldername
0
cd foldername
1

cd foldername
0
cd foldername
3
cd foldername
4

cd foldername
5
cd foldername
6
cd foldername
7
cd foldername
8
cd foldername
9

cd foldername
0____131

cd foldername
7

cd foldername
0
cd foldername
34

cd foldername
0
cd foldername
6
cd foldername
37

cd foldername
5____139

cd foldername
40
cd foldername
41

cd foldername
40
cd foldername
43

cd foldername
44
cd foldername
45

cd foldername
5
cd foldername
47

cd foldername
0____349

cd foldername
31

cd foldername
7

cd foldername
52

cd foldername
53
cd foldername
54
cd foldername
55

Bước để chạy ứng dụng. Chạy ứng dụng bằng lệnh sau từ thư mục gốc của dự án

Hiển thị đánh dấu HTML từ văn bản đa dạng thức được tạo trong trình chỉnh sửa WYSIWYG có thể khó khăn. Bởi vì cần có nhiều phần logic để làm cho mọi thứ hoạt động như bình thường. Điều này có thể là do React sử dụng một hệ thống độc lập với trình duyệt để thao tác với các phần tử DOM, do đó ngăn chặn tương tác trực tiếp với DOM. Mọi thứ có thể trở nên dễ dàng hơn và nhanh hơn với DangerlySetInnerHTML

Trong hướng dẫn này, chúng ta sẽ xem cách sử dụng

cd foldername
5 trong ứng dụng React

Bước chúng tôi sẽ bao gồm

  • Nguy hiểmSetInnerHTML là gì?
  • Khi nào nên sử dụng một cách nguy hiểmSetInnerHTML?

Nguy hiểmSetInnerHTML là gì?​

Phản ứng nguy hiểmSetInnerHTML là một thuộc tính HTML giúp dễ dàng lập trình các phần tử HTML từ một nguồn bên ngoài. Nó đã thay thế InternalHTML được sử dụng trong DOM của trình duyệt. nguy hiểmSetInnerHTML giúp React biết cách xử lý các phần tử HTML trong một thành phần nơi nội dung sẽ được hiển thị

Khi nào nên sử dụng một cách nguy hiểmSetInnerHTML?​

nguy hiểmSetInnerHTML chủ yếu được sử dụng trong bất kỳ ứng dụng nào mà bạn cần hiển thị văn bản được định dạng trong phần tử div. Ngoài ra, bạn có thể sử dụng nó để hiển thị nội dung chính xác như bạn đã định dạng nó. Chẳng hạn, hãy xem xét một ứng dụng blog. Nội dung của blog thường được định dạng bằng tiêu đề, đoạn văn, hình ảnh, khối mã, v.v.

Để hiển thị những nội dung như vậy trong ứng dụng React, bạn sẽ cần thao tác với DOM để lấy các phần tử HTML trong nội dung và đặt chúng thành một phần tử bằng cách sử dụng InternalHTML. Vì React không cho phép tương tác trực tiếp với DOM nên nội dung của bạn sẽ không được hiển thị như bình thường. Tuy nhiên, khi DangerlySetInnerHTML được áp dụng, React sẽ nhận ra các thẻ HTML và hiển thị chúng một cách chính xác

Do tính dễ bị tấn công của tập lệnh chéo trang (XSS), nguy hiểmSetInnerHTML có thể tạo thành mối đe dọa lớn đối với ứng dụng của bạn, như tên cho thấy. Tuy nhiên, DOMPurify đã được chứng minh là một công cụ hiệu quả cao trong việc khắc phục những khó khăn đó. DOMPurify là trình khử trùng XSS chỉ dành cho DOM dành cho HTML để ngăn chặn các cuộc tấn công XSS bằng cách loại bỏ tất cả HTML nguy hiểm trong nội dung được hiển thị trong một ứng dụng

Ví dụ: nếu người dùng được phép chèn HTML trực tiếp vào trang web thông qua trường biểu mẫu, tin tặc có thể nhúng mã độc vào ứng dụng, khiến ứng dụng hoạt động không phù hợp hoặc thậm chí dẫn đến mất dữ liệu. Hãy xem xét đoạn mã sau

cd foldername
4

Một đoạn mã JavaScript đã được nhúng vào đoạn mã trên. Điều này sẽ kích hoạt cảnh báo mỗi khi người dùng cố gắng truy cập ứng dụng. Điều này là do dữ liệu không được làm sạch trước khi được hiển thị trong ứng dụng. Đoạn mã trên sẽ trả về kết quả bên dưới

cd foldername
5

Như hình bên dưới, bạn có thể vệ sinh dữ liệu để loại bỏ tất cả các mã độc và tập lệnh được nhúng trong đó

cd foldername
6

Đoạn code trên sẽ loại bỏ script trong dữ liệu đã render trên ứng dụng và kết quả bên dưới

cd foldername
7


Ứng dụng CRUD của bạn có cần quản lý trạng thái máy chủ không?

Làm quen với giải pháp dựa trên React không đầu để xây dựng các ứng dụng CRUD bóng bẩy. Với tính năng tinh chỉnh, bạn có thể yên tâm rằng cơ sở mã của mình sẽ luôn sạch sẽ và không có bản mẫu.

Hãy thử tinh chỉnh để nhanh chóng xây dựng dự án CRUD tiếp theo của bạn, cho dù đó là bảng quản trị, trang tổng quan, công cụ nội bộ hay mặt tiền cửa hàng.

Nguy hiểmSetInnerHTML CSS



Xây dựng một ứng dụng ví dụ đơn giản

Để chứng minh mức độ nguy hiểm của SetInnerHTML hoạt động trong ứng dụng React, hãy xây dựng một ứng dụng blog đơn giản. Để làm cho mọi thứ dễ dàng hơn, chúng tôi sẽ sử dụng CLI siêu bản để tạo ứng dụng React

Để bắt đầu, hãy tạo một ứng dụng mới bằng lệnh bên dưới

cd foldername
8

Lệnh trên sẽ nhắc bạn chọn cấu hình cho dự án của bạn. Lựa chọn của bạn sẽ giống như ảnh chụp màn hình bên dưới

Nguy hiểmSetInnerHTML CSS


Sau khi bạn hoàn thành các lời nhắc, Superlate sẽ cài đặt tất cả các gói cần thiết và thiết lập các thư mục dự án cho ứng dụng của bạn

Bây giờ hãy cài đặt mô-đun Dompurify để làm sạch các mã HTML mà chúng tôi sẽ hiển thị trong ứng dụng

cd foldername
9

Tiếp theo, mở ứng dụng trong trình soạn thảo văn bản yêu thích của bạn. Sau đó tạo một tệp

cd foldername
6 trong thư mục src của dự án và thêm dữ liệu giả bên dưới

cd foldername
0

Trong dữ liệu JSON ở trên, chúng tôi đã tạo một số dữ liệu blog có định dạng HTML mà chúng tôi sẽ hiển thị cho ứng dụng

Bây giờ hãy cập nhật mã trong tệp

cd foldername
50 để hiển thị dữ liệu bằng đoạn mã bên dưới

cd foldername
2

Trong đoạn mã trên, chúng tôi đã nhập dompurify để làm sạch nội dung trong blog, các thành phần react-bootstrap để tạo kiểu cho ứng dụng và dữ liệu JSON giả mà chúng tôi đã tạo. Sau đó, trong thẻ, chúng tôi lặp qua các blog để truy cập và hiển thị dữ liệu trong các đối tượng

Đối với Tiêu đề thẻ và Văn bản, chúng tôi đã thêm các phần tử div và đính kèm thuộc tính DangerlySetInnerHTML để hiển thị nội dung theo cách chúng được định dạng

Để cho phép div nơi nội dung được hiển thị có phần tử con, chúng tôi đã chuyển khóa

cd foldername
51 tới DangerlySetInnerHTML và bọc nội dung sẽ được hiển thị trong phương thức khử trùng dompurify

Nguy hiểmSetInnerHTML CSS


Trong ảnh chụp màn hình ở trên,

cd foldername
5 đã hiển thị nội dung giống như cách chúng được định dạng


Nguy hiểmSetInnerHTML CSS

kết luận

nguy hiểmSetInnerHTML trong ứng dụng React. Chúng tôi đã bắt đầu bằng cách giải thích SetInnerHTML nguy hiểm là gì, khi nào nên sử dụng nó và các phương pháp hay nhất để sử dụng nó trong ứng dụng React

Tại sao bạn không nên sử dụng một cách nguy hiểmSetInnerHTML?

Do tính dễ bị tấn công của tập lệnh chéo trang (XSS) , DangerlySetInnerHTML có thể tạo thành mối đe dọa lớn đối với ứng dụng của bạn, như tên cho thấy.

Tôi có thể sử dụng cái gì thay vì một cách nguy hiểmSetInnerHTML?

Tuy nhiên, ngoài điều đó ra, có một giải pháp thay thế cho việc sử dụng DangerlySetInnerHTML, chỉ cần đặt innerHTML của phần tử React HTML bằng cách sử dụng vanilla JS thay thế.

Nguy hiểmSetInnerHTML là gì?

nguy hiểmSetInnerHTML. nguy hiểmSetInnerHTML là sự thay thế của React để sử dụng InternalHTML trong DOM của trình duyệt. Nói chung, việc đặt HTML từ mã là rủi ro vì rất dễ khiến người dùng của bạn vô tình bị tấn công bằng tập lệnh chéo trang (XSS)

Tại sao chúng ta không nên cập nhật trạng thái trực tiếp?

Nếu bạn cố gắng cập nhật trạng thái trực tiếp thì nó sẽ không kết xuất lại thành phần .