Commit 8a2dd16c authored by Shenghou Ma's avatar Shenghou Ma

encoding/json: mention escaping of '&'

Fixes #7034.

LGTM=iant
R=golang-codereviews, iant
CC=golang-codereviews
https://golang.org/cl/57140043
parent 57bc80b5
...@@ -44,6 +44,7 @@ import ( ...@@ -44,6 +44,7 @@ import (
// if an invalid UTF-8 sequence is encountered. // if an invalid UTF-8 sequence is encountered.
// The angle brackets "<" and ">" are escaped to "\u003c" and "\u003e" // The angle brackets "<" and ">" are escaped to "\u003c" and "\u003e"
// to keep some browsers from misinterpreting JSON output as HTML. // to keep some browsers from misinterpreting JSON output as HTML.
// Ampersand "&" is also escaped to "\u0026" for the same reason.
// //
// Array and slice values encode as JSON arrays, except that // Array and slice values encode as JSON arrays, except that
// []byte encodes as a base64-encoded string, and a nil slice // []byte encodes as a base64-encoded string, and a nil slice
...@@ -804,7 +805,7 @@ func (e *encodeState) string(s string) (int, error) { ...@@ -804,7 +805,7 @@ func (e *encodeState) string(s string) (int, error) {
e.WriteByte('r') e.WriteByte('r')
default: default:
// This encodes bytes < 0x20 except for \n and \r, // This encodes bytes < 0x20 except for \n and \r,
// as well as < and >. The latter are escaped because they // as well as <, > and &. The latter are escaped because they
// can lead to security holes when user-controlled strings // can lead to security holes when user-controlled strings
// are rendered into JSON and served to some browsers. // are rendered into JSON and served to some browsers.
e.WriteString(`\u00`) e.WriteString(`\u00`)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment