python - Why is Flask checking `'\\/' in json.dumps('/')` in its json module? -


the source flask.json module contains following line. '\\/' mean, , why flask checking this?

_slash_escape = '\\/' not in _json.dumps('/') 

flask using test if json library it's using escapes slashes when doesn't have to. if library does, json.dump('/') produce '"\\/"' (equivalent raw string r'"\/"', see here explanation on escape characters).

flask can choose 1 of multiple json libraries, , libraries/versions escape forward slashes while others don't. flask includes comment explaining this.

if library escape slashes, flask undo when dumps json, consistency between libraries.

# figure out if simplejson escapes slashes.  behavior changed # 1 version without reason. _slash_escape = '\\/' not in _json.dumps('/') ... def htmlsafe_dumps(obj, **kwargs):     ...     if not _slash_escape:         rv = rv.replace('\\/', '/')     ... 

flask still escapes unsafe html characters when rendering json in html, potentially unsafe string "</script>" becomes "\\u003c/script\\u003e" safe.


Comments

Popular posts from this blog

yii2 - Yii 2 Running a Cron in the basic template -

asp.net - 'System.Web.HttpContext' does not contain a definition for 'GetOwinContext' Mystery -

mercurial graft feature, can it copy? -