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 Show
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
Cấu trúc dự án. Nó sẽ giống như sau 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. jscd foldername4 cd foldername5 cd foldername6 cd foldername7 cd foldername8 cd foldername9 cd foldername7 cd foldername0 cd foldername1 cd foldername0 cd foldername3 cd foldername4 cd foldername5 cd foldername6 cd foldername7 cd foldername8 cd foldername9 cd foldername0____131 cd foldername7 cd foldername0 cd foldername34 cd foldername0 cd foldername6 cd foldername37 cd foldername5____139 cd foldername40 cd foldername41 cd foldername40 cd foldername43 cd foldername44 cd foldername45 cd foldername5 cd foldername47 cd foldername0____349 cd foldername31 cd foldername7 cd foldername52 cd foldername53 cd foldername54 cd foldername55 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 foldername5 trong ứng dụng React Bước chúng tôi sẽ bao gồm
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 foldername4 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 foldername5 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 foldername6 Đ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 foldername7 Ứ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. 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 foldername8 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 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 foldername9 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 foldername6 trong thư mục src của dự án và thêm dữ liệu giả bên dưới cd foldername0 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 foldername50 để hiển thị dữ liệu bằng đoạn mã bên dưới cd foldername2 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 foldername51 tới DangerlySetInnerHTML và bọc nội dung sẽ được hiển thị trong phương thức khử trùng dompurify Trong ảnh chụp màn hình ở trên, cd foldername5 đã hiển thị nội dung giống như cách chúng được định dạng kết luậnnguy 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 . |