JSONと日本語について

6,356 views
Skip to first unread message

原田 光一

unread,
Jan 11, 2013, 3:27:12 AM1/11/13
to html5-dev...@googlegroups.com
恐れ入ります、お知恵をお貸しください。

JSONデータの文字列に日本語を使用する場合、\uNNNN 形式にエンコードされる場合があります。これは
*そうしなければならない
*そうすべきである
*やらなくてもよい
のいずれになりますでしょう。

- 手元の実装が日本語をエンコードするようになっているのですが、データ量が増えるので、「やらなくてもよい」のならしたくない。
- Webで調べたところ、NO US-ASCII以外は仕様上やらなければならない、の記述を見つけたのですが、RFC4627には現時点でその記述が無いように思います。
- セキュリティ上やるべきであるという記述も見つけたのですが、2009年のものであり、もしかしてJSON.parseが一般的でなかったからかもしれないと考えました。

もちろんやるべきである理由が、データ量の増大 (とか可読性とか) のデメリットを上回るのであれば、エンコードすべきということになると思います。
現時点での情報としてグループの皆様と共有させていただければと思います。よろしくお願いいたします。

原田光一

unread,
Jan 11, 2013, 3:45:01 AM1/11/13
to html5-dev...@googlegroups.com
すみません、
NO US-ASCII以外は仕様上やらなければならない

US-ASCII以外は仕様上やらなければならない
の間違いです。

原田

vvakame

unread,
Jan 11, 2013, 4:10:45 AM1/11/13
to html5-dev...@googlegroups.com
はじめまして。わかめです。

http://json.org/ の記述に従うと、JSONのStringについては"any Unicode character except
" or \ or control character"との記述があります。
また、"A string is a sequence of zero or more Unicode
characters"の記述もあるため、日本語はエスケープしなくてOKだと思います。
ただ、JSONパーサの実装がUnicode以外で文字列を解釈できる間違った実装になっている場合なんか危ないような気もします。

なお、私も仕事がらJSONをやり取りするコードを書く事がありますが基本的に日本語は素通ししています。
今までそれでトラブルになったこともないように思います。

他の識者の方からも何かご意見ありましたらよろしくお願いします。

2013年1月11日 17:45 原田光一 <koi...@endor.jp>:
> --
> このメールは Google グループのグループ「html5j.org」の登録者に送られています。
> このグループに投稿するには、html5-dev...@googlegroups.com にメールを送信してください。
> このグループから退会するには、html5-developer...@googlegroups.com にメールを送信してください。
> 詳細については、http://groups.google.com/group/html5-developers-jp?hl=ja からこのグループにアクセスしてください。
>

HASEGAWA Yosuke

unread,
Jan 11, 2013, 11:25:53 AM1/11/13
to html5-dev...@googlegroups.com
はせがわです、こんにちは。

セキュリティ上の問題点としては、JSON.parse とは関係なく、

- JSON内に含まれる機密情報の漏えい
- JSONを直接開くことによるXSS

が考えられます。
ですので、いろいろ細かいことを考えるのが面倒であれば、日本語および「<>+」あたりをエスケープ
しておくのがよいと思います。

参考:
http://d.hatena.ne.jp/hasegawayosuke/20110706
http://blog.64p.org/entry/20111125/1322185155



2013年1月11日 17:45 原田光一 <koi...@endor.jp>:
すみません、
--
このメールは Google グループのグループ「html5j.org」の登録者に送られています。
このグループに投稿するには、html5-dev...@googlegroups.com にメールを送信してください。
このグループから退会するには、html5-developer...@googlegroups.com にメールを送信してください。
詳細については、http://groups.google.com/group/html5-developers-jp?hl=ja からこのグループにアクセスしてください。




--
HASEGAWA Yosuke
   http://utf-8.jp/
    yosuke....@gmail.com

原田光一

unread,
Jan 14, 2013, 9:54:56 PM1/14/13
to html5-dev...@googlegroups.com
わかめ様、はせがわ様、お返事いただきありがとうございます。

いただきました情報を参考に勉強させていただきます。

セキュリティが絡むとのことですのでよくよく研究する必要がありそうです。ブラウザーバージョンが変わった現在もはせがわ様ご指摘の件が有効であることがわかり、助かりました。

Reply all
Reply to author
Forward
0 new messages