Come sfuggire all'input dell'utente in un valore di oggetto javascript?

0

Come sfuggire correttamente l'input controllato dall'utente quando viene inserito come valore nell'oggetto JSON?

<script>
  $(document).ready(function() {
    new MyObject({
      key1: "user_input",
      key2: ["user_input1", "user_input2"]
    });
  });
</script>
    
posta Andrei Botalov 01.11.2012 - 17:41
fonte

1 risposta

1

Il link prende il contenuto simile a JSON e lo converte in JSON che è sicuro da valutare come codice sorgente JavaScript e che può essere incorporato in HTML <script> elementi e in XML <![CDATA[...]]> sezioni.

Ad esempio, dato

{
  key1: "user_input",
  key2: ["user_input1", "user_input2"]
}

Conserva diverse proprietà:

  1. Le chiavi devono essere citate correttamente.
  2. Le parentesi corrispondono.
  3. Tutti i caratteri newline JavaScript (CR, LF, U + 2028, U + 2029) nelle stringhe sono \u.... escape.
  4. Quotes ( " ), backslash ( \ ) sono \u.... di escape per garantire che le stringhe non finiscano prematuramente.
  5. Le parentesi angolari ( < e > ) sono \u.... di escape se necessario per impedire alle stringhe di contenere il testo letterale </script o ]]> che impedirebbe l'incorporamento.
  6. Tutti i caratteri di controllo (in realtà i caratteri non consentiti in XML) sono \u.... con escape compreso U + 0-U + 1F escluso tab, U + 7F, U + FFFE, U + FFFF.
  7. I sostituti orfani UTF-16 sono \u.... con escape.
  8. Tutte le sequenze di escape vengono convertite in sequenze di escape JSON valide, inclusi escape ottali ( 2 ), escape esadecimale a due cifre ( \x0A ) e escape di caratteri singoli ( \! ).

Può essere una buona idea per \u.... sfuggire a cose come + a defang UTF-7.

    
risposta data 01.11.2012 - 18:08
fonte

Leggi altre domande sui tag