Hóa ra sau trông giống như javascript hợp lệ, không phải là:Cách chính xác để mã hóa một đối tượng javascript nội tuyến là gì, để bảo vệ nó khỏi XSS?
<html>
<body>
<script>
json = {test: "</script><script>alert('hello');</script>"};
</script>
</body>
</html>
Các văn bản tương tự, khi trở về JSON qua một api ajax công trình cũng giống như mong đợi. Tuy nhiên khi kết quả in-line trong một vấn đề XSS cơ bản.
Cho chuỗi JSON chính xác tùy ý, tôi cần làm gì với phía máy chủ để đảm bảo an toàn cho hiển thị trong dòng?
EDIT Lý tưởng nhất là tôi muốn sửa chữa để làm việc với các chuỗi sau đây cũng như:
json = {test: "<\/script><script>alert('hello');<\/script>"};
Ý nghĩa, tôi không có ý tưởng như thế nào thư viện cơ bản của tôi là mã hóa các /
char, nó có thể đã chọn mã hóa hoặc có thể không. (Vì vậy nó có thể là một sửa chữa regex là mạnh mẽ hơn)
Về cơ bản, nếu bạn muốn hiển thị trực tuyến, bạn cần đảm bảo nó không chứa chuỗi ký tự ' '. –
hoặc Tôi đoán ... Tôi lo lắng về hiệu suất với một sửa chuỗi nối đơn giản và cũng có thể có các vấn đề lạ khác mà tôi không biết về –
Trừ khi có điều gì đó kỳ lạ xảy ra, thư viện cơ bản không thoát khỏi ký tự gạch chéo . Nó không có ý nghĩa đặc biệt trong một chuỗi Javacript, vì vậy không có lý do gì để thoát khỏi nó. – Guffa