ASP.NETのJSONのサイズがデフォルトで1024000である理由。


C# ASP.NETでJsonをシリアライズ、または逆シリアライズするときのデフォルト値が1024000であることを最近知りました。

もちろん、このサイズをより大きい値に変更することで大きいjsonを扱うことができるのもわかりました。

しかし、なぜ1024000なのかを知りたいです。  
セキュリティ的な観点での理由なのでしょうか。

いろいろと調べたのですが、どこにも書いていなかったので、この場でご教授いただけたらと思います。  
よろしくお願いします。




まず、ASP.NETにおけるJSONの最大長は`1024000`ではなく[`2097152`](https://msdn.microsoft.com/ja-
jp/library/system.web.script.serialization.javascriptserializer.maxjsonlength\(v=vs.100\).aspx)
(=`2M`)文字です。

なぜ`2M`文字というと、ASP.NETの標準設定ではリクエストのサイズを4MBに制限しているからです。.NETの内部文字コードはUTF-16ですので、4MBは`2M`文字に相当します。

4MB制限自体は異常なデータを送信された場合、いわゆるDoS攻撃の対策として設定されているものです。




まず、ASP.NETにおけるJSONの最大長は`1024000`ではなく[`2097152`](https://msdn.microsoft.com/ja-
jp/library/system.web.script.serialization.javascriptserializer.maxjsonlength\(v=vs.100\).aspx)
(=`2M`)文字です。

なぜ`2M`文字というと、ASP.NETの標準設定ではリクエストのサイズを4MBに制限しているからです。.NETの内部文字コードはUTF-16ですので、4MBは`2M`文字に相当します。

4MB制限自体は異常なデータを送信された場合、いわゆるDoS攻撃の対策として設定されているものです。

