diff options
| author | Russ Cox <rsc@golang.org> | 2019-04-23 07:27:07 -0400 |
|---|---|---|
| committer | Russ Cox <rsc@golang.org> | 2019-04-23 14:22:20 +0000 |
| commit | d92bc7a55aa11777bdb4605eda6536c64defb0d3 (patch) | |
| tree | c4ac3196655a58e81ad03238994a6a85063cd4e6 /src/encoding/json/encode.go | |
| parent | b51c157025c1ff08b5090d9cf13bc88a068c5190 (diff) | |
| download | go-d92bc7a55aa11777bdb4605eda6536c64defb0d3.tar.xz | |
encoding/json: document HTML escaping in Compact
Make explicit that Compact does HTML escaping.
Fixes #30357.
Change-Id: I4648f8f3e907d659db977d07253f716df6e07d7b
Reviewed-on: https://go-review.googlesource.com/c/go/+/173417
Run-TryBot: Russ Cox <rsc@golang.org>
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
Diffstat (limited to 'src/encoding/json/encode.go')
| -rw-r--r-- | src/encoding/json/encode.go | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/src/encoding/json/encode.go b/src/encoding/json/encode.go index 197c0cba03..383460e52b 100644 --- a/src/encoding/json/encode.go +++ b/src/encoding/json/encode.go @@ -45,11 +45,12 @@ import ( // // String values encode as JSON strings coerced to valid UTF-8, // replacing invalid bytes with the Unicode replacement rune. -// The angle brackets "<" and ">" are escaped to "\u003c" and "\u003e" -// to keep some browsers from misinterpreting JSON output as HTML. -// Ampersand "&" is also escaped to "\u0026" for the same reason. -// This escaping can be disabled using an Encoder that had SetEscapeHTML(false) -// called on it. +// So that the JSON will be safe to embed inside HTML <script> tags, +// the string is encoded using HTMLEscape, +// which replaces "<", ">", "&", U+2028, and U+2029 are escaped +// to "\u003c","\u003e", "\u0026", "\u2028", and "\u2029". +// This replacement can be disabled when using an Encoder, +// by calling SetEscapeHTML(false). // // Array and slice values encode as JSON arrays, except that // []byte encodes as a base64-encoded string, and a nil slice |
