Javascript xóa dấu gạch chéo ngược khỏi json
Tôi muốn xóa dấu gạch chéo ngược khỏi dữ liệu json bên dưới Show
nhưng điều đó sẽ không bị xóa Những gì tôi đã thử chuỗi s = @"{[]}"; var data = JsonConvert. SerializeObject(result); vai trò người dùng = vai trò người dùng. Thay thế("\"", ""); [Chủ đề được chỉnh sửa bởi Adobe] /*Đừng quên gặp gỡ và chào hỏi các đồng nghiệp của bạn qua mạng bằng cách kể cho họ nghe về bản thân bạn tại đây. Đi trước và đến nó ngay bây giờ. https. // adobe. ly/3eDnB4v */ câu hỏi thực tế Xin chào, Tôi đã tạo một đối tượng json mà tôi đang thêm giá trị như json. đặt (khóa, giá trị) Trong khi tôi thêm giá trị đã chứa " " thì nó thêm dấu gạch chéo ngược trước dấu ngoặc kép Làm thế nào tôi có thể loại bỏ nó? Cảm ơn, Himanshu Xin chào,
Tất cả những gì tôi muốn làm là loại bỏ các dấu gạch chéo ngược. Chức năng thay thế Javascript không hoạt động
Bất kỳ trợ giúp? Tôi đã tạo một trang giao diện người dùng tùy chỉnh. Tôi có nhiều dữ liệu cặp giá trị khóa trong đối tượng của mình (ví dụ: danh mục). Trong tập lệnh máy khách, tôi đang tạo biểu đồ bằng highchart. Tôi cần chuyển đối tượng tới tập lệnh máy khách để lấy biểu đồ, nhưng tôi gặp lỗi khi mã hóa đối tượng (trong bảng điều khiển). Mọi khóa và giá trị được mã hóa bằng dấu gạch chéo vui lòng hướng dẫn tôi cách xóa dấu gạch chéo khỏi đối tượng này Cảm ơn bạn trước tl;dr. Bạn không cần phải xóa các dấu gạch chéo, bạn đã lồng JSON và do đó phải giải mã JSON hai lần. DEMO (lưu ý rằng tôi đã sử dụng dấu gạch chéo kép trong ví dụ này, vì JSON nằm trong một chuỗi ký tự JS) Tôi cho rằng JSON thực tế của bạn trông giống như
I. e. bạn có một đối tượng cấp cao nhất với một khóa, 15. Giá trị của khóa đó là một chuỗi chứa chính JSON. Điều này thường là do mã phía máy chủ không tạo đúng JSON. Đó là lý do tại sao bạn thấy 16 bên trong chuỗi. Điều này cho phép trình phân tích cú pháp biết rằng 17 sẽ được xử lý theo nghĩa đen và không chấm dứt chuỗiVì vậy, bạn có thể sửa mã phía máy chủ để không mã hóa dữ liệu hai lần hoặc bạn phải giải mã JSON hai lần, e. g Cross-Site Scripting (XSS) là một cách gọi sai. Tên bắt nguồn từ các phiên bản đầu tiên của cuộc tấn công trong đó đánh cắp dữ liệu giữa các trang web là trọng tâm chính. Kể từ đó, nó đã được mở rộng để bao gồm việc đưa vào cơ bản bất kỳ nội dung nào, nhưng chúng tôi vẫn gọi đây là XSS. XSS nghiêm trọng và có thể dẫn đến mạo danh tài khoản, quan sát hành vi của người dùng, tải nội dung bên ngoài, đánh cắp dữ liệu nhạy cảm, v.v. Chesheet này là một danh sách các kỹ thuật để ngăn chặn hoặc hạn chế tác động của XSS. Không có kỹ thuật đơn lẻ nào giải quyết được XSS. Sử dụng kết hợp đúng các kỹ thuật phòng thủ là cần thiết để ngăn chặn XSS Bảo mật khung¶Ít lỗi XSS hơn xuất hiện trong các ứng dụng được xây dựng bằng khung web hiện đại. Các khung này hướng các nhà phát triển hướng tới các phương pháp bảo mật tốt và giúp giảm thiểu XSS bằng cách sử dụng tạo khuôn mẫu, thoát tự động, v.v. Điều đó nói rằng, các nhà phát triển cần nhận thức được các vấn đề có thể xảy ra khi sử dụng các khung không an toàn, chẳng hạn như
Hiểu cách khung của bạn ngăn chặn XSS và nơi nó có lỗ hổng. Sẽ có lúc bạn cần làm điều gì đó bên ngoài sự bảo vệ được cung cấp bởi khuôn khổ của bạn. Đây là nơi Mã hóa đầu ra và Vệ sinh HTML rất quan trọng. OWASP đang sản xuất các cheatsheet khung cụ thể cho React, Vue và Angular Triết lý bảo vệ XSS¶Để tấn công XSS thành công, kẻ tấn công cần chèn và thực thi nội dung độc hại trong trang web. Mỗi biến trong một ứng dụng web cần được bảo vệ. Đảm bảo rằng tất cả các biến đều trải qua quá trình xác thực và sau đó được thoát hoặc khử trùng được gọi là khả năng chống tiêm hoàn hảo. Bất kỳ biến nào không trải qua quá trình này đều là một điểm yếu tiềm ẩn. Các khung giúp dễ dàng đảm bảo các biến được xác thực chính xác và thoát hoặc làm sạch Tuy nhiên, các framework không hoàn hảo và lỗ hổng bảo mật vẫn tồn tại trong các framework phổ biến như React và Angular. Mã hóa đầu ra và Vệ sinh HTML giúp giải quyết những lỗ hổng đó Mã hóa đầu ra¶Mã hóa đầu ra được khuyến nghị khi bạn cần hiển thị dữ liệu một cách an toàn chính xác như người dùng đã nhập dữ liệu đó vào. Các biến không nên được hiểu là mã thay vì văn bản. Phần này bao gồm từng dạng mã hóa đầu ra, nơi sử dụng nó và nơi tránh sử dụng biến động hoàn toàn Bắt đầu với việc sử dụng bảo vệ mã hóa đầu ra mặc định của khung khi bạn muốn hiển thị dữ liệu khi người dùng nhập dữ liệu vào. Các chức năng mã hóa và thoát tự động được tích hợp trong hầu hết các khung Nếu bạn không sử dụng khung hoặc cần che các khoảng trống trong khung thì bạn nên sử dụng thư viện mã hóa đầu ra. Mỗi biến được sử dụng trong giao diện người dùng phải được chuyển qua chức năng mã hóa đầu ra. Một danh sách các thư viện mã hóa đầu ra được bao gồm trong phần phụ lục Có nhiều phương pháp mã hóa đầu ra khác nhau vì các trình duyệt phân tích cú pháp HTML, JS, URL và CSS khác nhau. Sử dụng phương pháp mã hóa sai có thể gây ra điểm yếu hoặc gây hại cho chức năng của ứng dụng của bạn Mã hóa đầu ra cho “Ngữ cảnh HTML”¶“Ngữ cảnh HTML” đề cập đến việc chèn một biến giữa hai thẻ HTML cơ bản như 5 hoặc 6. Ví dụ
Kẻ tấn công có thể sửa đổi dữ liệu được hiển thị dưới dạng 7. Điều này có thể dẫn đến một cuộc tấn công được thêm vào một trang web. Ví dụ
Để thêm biến vào ngữ cảnh HTML một cách an toàn, hãy sử dụng mã hóa thực thể HTML cho biến đó khi bạn thêm biến đó vào mẫu web Dưới đây là một số ví dụ về các giá trị được mã hóa cho các ký tự cụ thể Nếu bạn đang sử dụng JavaScript để ghi vào HTML, hãy xem thuộc tính 8 vì nó là Safe Sink và sẽ tự động Mã hóa thực thể HTML 3Mã hóa đầu ra cho “Ngữ cảnh thuộc tính HTML”¶“Ngữ cảnh thuộc tính HTML” đề cập đến việc đặt một biến trong một giá trị thuộc tính HTML. Bạn có thể muốn thực hiện việc này để thay đổi siêu liên kết, ẩn phần tử, thêm văn bản thay thế cho hình ảnh hoặc thay đổi kiểu CSS nội tuyến. Bạn nên áp dụng mã hóa thuộc tính HTML cho các biến được đặt trong hầu hết các thuộc tính HTML. Danh sách các thuộc tính HTML an toàn được cung cấp trong phần Safe Sinks 4Điều quan trọng là sử dụng các dấu ngoặc kép như 9 hoặc 30 để bao quanh các biến của bạn. Việc trích dẫn gây khó khăn cho việc thay đổi ngữ cảnh mà một biến hoạt động trong đó, điều này giúp ngăn chặn XSS. Trích dẫn cũng làm giảm đáng kể bộ ký tự mà bạn cần mã hóa, làm cho ứng dụng của bạn đáng tin cậy hơn và mã hóa dễ thực hiện hơnNếu bạn đang sử dụng JavaScript để ghi vào Thuộc tính HTML, hãy xem các phương thức 31 và 32 sẽ tự động Mã hóa thuộc tính HTML. Đó là những phần chìm an toàn miễn là tên thuộc tính được mã hóa cứng và vô thưởng vô phạt, như 33 hoặc 34. Nói chung, các thuộc tính chấp nhận JavaScript, chẳng hạn như 35, KHÔNG an toàn khi sử dụng với các giá trị thuộc tính không đáng tin cậyMã hóa đầu ra cho “Ngữ cảnh JavaScript”¶“Bối cảnh JavaScript” đề cập đến việc đặt các biến vào JavaScript nội tuyến, sau đó được nhúng vào tài liệu HTML. Điều này thường thấy trong các chương trình sử dụng nhiều JavaScript tùy chỉnh được nhúng trong trang web của họ Vị trí 'an toàn' duy nhất để đặt biến trong JavaScript là bên trong "giá trị dữ liệu được trích dẫn". Tất cả các ngữ cảnh khác đều không an toàn và bạn không nên đặt dữ liệu biến đổi trong đó Ví dụ về “Giá trị dữ liệu được trích dẫn” 2Mã hóa tất cả các ký tự bằng định dạng 36. Các thư viện mã hóa thường có một 37 hoặc tương tự để hỗ trợ chức năng nàyVui lòng xem các ví dụ mã hóa JavaScript của OWASP Java Encoder để biết các ví dụ về cách sử dụng JavaScript thích hợp yêu cầu mã hóa tối thiểu Đối với JSON, hãy xác minh rằng tiêu đề 38 là 39 chứ không phải 40 để ngăn chặn XSSMã hóa đầu ra cho “Bối cảnh CSS”¶“Bối cảnh CSS” đề cập đến các biến được đặt vào CSS nội tuyến. Điều này phổ biến khi bạn muốn người dùng có thể tùy chỉnh giao diện trang web của họ. CSS mạnh một cách đáng ngạc nhiên và đã được sử dụng cho nhiều kiểu tấn công. Các biến chỉ nên được đặt trong một giá trị thuộc tính CSS. Các “Bối cảnh CSS” khác không an toàn và bạn không nên đặt dữ liệu biến đổi vào đó 8Nếu bạn đang sử dụng JavaScript để thay đổi thuộc tính CSS, hãy xem xét sử dụng 41. Đây là Safe Sink và sẽ tự động CSS mã hóa dữ liệu trong đó// Thêm lời khuyên mã hóa CSS Mã hóa đầu ra cho “Ngữ cảnh URL”¶“Ngữ cảnh URL” đề cập đến các biến được đặt vào một URL. Thông thường nhất, nhà phát triển sẽ thêm một tham số hoặc đoạn URL vào cơ sở URL sau đó được hiển thị hoặc sử dụng trong một số thao tác. Sử dụng Mã hóa URL cho các tình huống này 0Mã hóa tất cả các ký tự bằng định dạng mã hóa 42. Đảm bảo mọi thuộc tính đều được trích dẫn đầy đủ, giống như JS và CSSLỗi phổ biến¶Sẽ có những trường hợp bạn sử dụng một URL trong các ngữ cảnh khác nhau. Cách phổ biến nhất là thêm nó vào thuộc tính 43 hoặc 44 của thẻ 45. Trong những trường hợp này, bạn nên thực hiện mã hóa URL, sau đó là mã hóa thuộc tính HTML 5Nếu bạn đang sử dụng JavaScript để tạo Giá trị truy vấn URL, hãy xem xét sử dụng 46. Đây là Safe Sink và sẽ tự động URL mã hóa dữ liệu trong đóBối cảnh nguy hiểm¶Mã hóa đầu ra không hoàn hảo. Không phải lúc nào nó cũng ngăn được XSS. Những địa điểm này được gọi là bối cảnh nguy hiểm. bối cảnh nguy hiểm bao gồm 7Các lĩnh vực khác cần cẩn thận bao gồm
Không đặt các biến vào các ngữ cảnh nguy hiểm vì ngay cả với mã hóa đầu ra, nó sẽ không ngăn chặn hoàn toàn một cuộc tấn công XSS Vệ sinh HTML¶Đôi khi người dùng cần tác giả HTML. Một kịch bản sẽ cho phép người dùng thay đổi kiểu dáng hoặc cấu trúc nội dung bên trong trình chỉnh sửa WYSIWYG. Mã hóa đầu ra ở đây sẽ ngăn XSS, nhưng nó sẽ phá vỡ chức năng dự định của ứng dụng. Kiểu dáng sẽ không được hiển thị. Trong những trường hợp này, nên sử dụng HTML Sanitization HTML Sanitization sẽ loại bỏ HTML nguy hiểm khỏi một biến và trả về một chuỗi HTML an toàn. OWASP đề xuất DOMPurify để làm sạch HTML 4Có một số điều nữa để xem xét
Bồn rửa an toàn¶Các chuyên gia bảo mật thường nói về nguồn và phần chìm. Nếu bạn làm ô nhiễm một dòng sông, nó sẽ chảy xuôi dòng ở đâu đó. Bảo mật máy tính cũng vậy. Phần chìm XSS là nơi các biến được đặt vào trang web của bạn Rất may, nhiều bồn rửa nơi có thể đặt các biến được an toàn. Điều này là do những phần chìm này coi biến là văn bản và sẽ không bao giờ thực thi nó. Cố gắng cấu trúc lại mã của bạn để xóa các tham chiếu đến phần chìm không an toàn như InternalHTML và thay vào đó hãy sử dụng textContent hoặc giá trị 0Thuộc tính HTML an toàn bao gồm. _______223, _______224, _______225, _______226, _______227, _______228, _______229, _______134, _______281, _______282, _______283, _______284, _______285, _______286, _______287, _______288, _______289, _______300, _______301, _______302, _______303, _______304, _______305, _______306, _______307, Để có danh sách toàn diện, hãy xem danh sách cho phép của DOMPurify Điều khiển khác¶Bảo vệ bảo mật khung, Mã hóa đầu ra và Vệ sinh HTML sẽ cung cấp sự bảo vệ tốt nhất cho ứng dụng của bạn. OWASP đề xuất những điều này trong mọi trường hợp Cân nhắc áp dụng các biện pháp kiểm soát sau ngoài các biện pháp kiểm soát trên
Tóm tắt quy tắc ngăn chặn XSS¶Các đoạn mã HTML sau minh họa cách hiển thị dữ liệu không đáng tin cậy một cách an toàn trong nhiều ngữ cảnh khác nhau Kiểu dữ liệuMã bối cảnhMẫuDefenseStringHTML Body 75HTMLEncoding Entity (quy tắc #1). Các thuộc tính HTML StringSafe 76Mã hóa thực thể HTML linh hoạt (quy tắc #2), Chỉ đặt dữ liệu không đáng tin cậy vào danh sách các thuộc tính an toàn (được liệt kê bên dưới), Xác thực nghiêm ngặt các thuộc tính không an toàn như nền, ID và tên. Tham số StringGET_______ Mã hóa 377URL (quy tắc số 5). StringUntrusted URL trong thuộc tính SRC hoặc HREF 78Chuẩn hóa đầu vào, Xác thực URL, Xác minh URL an toàn, Chỉ cho phép http và URL HTTPS (Tránh Giao thức JavaScript để mở một cửa sổ mới), Bộ mã hóa thuộc tính. Giá trị StringCSS 79Xác thực cấu trúc nghiêm ngặt (quy tắc #4), mã hóa CSS Hex, thiết kế tốt các tính năng CSS. Biến StringJavaScript_______440Đảm bảo các biến JavaScript được trích dẫn, Mã hóa JavaScript Hex, Mã hóa Unicode JavaScript, Tránh mã hóa dấu gạch chéo ngược ( 41 hoặc 42 hoặc 43). HTMLHTML Body 44Xác nhận HTML (JSoup, AntiSamy, HTML Sanitizer. ). Bảng gian lận phòng chống XSS dựa trên StringDOM XSS____445DOMTóm tắt quy tắc mã hóa đầu ra¶Mục đích của mã hóa đầu ra (vì nó liên quan đến Cross Site Scripting) là chuyển đổi đầu vào không đáng tin cậy thành dạng an toàn nơi đầu vào được hiển thị dưới dạng dữ liệu cho người dùng mà không cần thực thi dưới dạng mã trong trình duyệt. Các biểu đồ sau nêu chi tiết danh sách các phương pháp mã hóa đầu ra quan trọng cần thiết để dừng Cross Site Scripting Loại mã hóa Cơ chế mã hóa Mã hóa thực thể HTML Chuyển đổi 46 thành 47, Chuyển đổi 48 thành 49, Chuyển đổi 00 thành 01, Chuyển đổi 9 thành 03, Chuyển đổi 30 thành 05, Chuyển đổi 06 thành 07 Mã hóa thuộc tính HTML Ngoại trừ các ký tự chữ và số, mã hóa tất cả các ký tự bằng định dạng Thực thể HTML 08, bao gồm . (HH = Giá trị Hex)Mã hóa URL Mã hóa phần trăm tiêu chuẩn, xem tại đây. Mã hóa URL chỉ nên được sử dụng để mã hóa các giá trị tham số, không phải toàn bộ URL hoặc các đoạn đường dẫn của URL. Mã hóa JavaScript Ngoại trừ các ký tự chữ và số, mã hóa tất cả các ký tự bằng định dạng mã hóa unicode 09 (X = Số nguyên). Mã hóa CSS HexMã hóa CSS hỗ trợ 10 và 11. Sử dụng mã hóa hai ký tự có thể gây ra sự cố nếu ký tự tiếp theo tiếp tục chuỗi mã hóa. Có hai giải pháp. (a) Thêm khoảng trắng sau mã hóa CSS (sẽ bị trình phân tích cú pháp CSS bỏ qua) (b) sử dụng toàn bộ lượng mã hóa CSS có thể bằng cách đệm giá trị bằng 0Những bài viết liên quan¶Bảng cheat tấn công XSS Bài viết sau đây mô tả cách khai thác các loại Lỗ hổng XSS khác nhau mà bài viết này được tạo ra để giúp bạn tránh Làm cách nào để xóa dấu gạch chéo khỏi JSON trong JS?var b=JSON. xâu chuỗi (dữ liệu); . str = b. thay thế(/\\/g, ”);
Tại sao JSON của tôi có dấu gạch chéo ngược?Những dấu gạch chéo ngược đó là các ký tự thoát. Họ đang thoát các ký tự đặc biệt bên trong chuỗi được liên kết với phản hồi JSON . Bạn phải sử dụng JSON. parse để phân tích chuỗi JSON đó thành một đối tượng JSON.
Làm cách nào để xóa dấu gạch chéo ngược khỏi đối tượng JSON trong Java?Chuỗi jsonFormattedString = jsonStr. replaceAll("\\", "");
Tại sao JSON thoát khỏi dấu gạch chéo về phía trước?Điều này là do HTML không cho phép một chuỗi bên trong thẻ , so in case that substring's there, you should escape every forward slash. Save this answer. |