質問: C# ASP.NETでJsonをシリアライズ、または逆シリアライズするときのデフォルト値が1024000であることを最近知りました。 もちろん、このサイズをより大きい値に変更することで大きいjsonを扱うことができるのもわかりました。 しかし、なぜ1024000なのかを知りたいです。 セキュリティ的な観点での理由なのでしょうか。 いろいろと調べたのですが、どこにも書いていなかったので、この場でご教授いただけたらと思います。 よろしくお願いします。
回答: まず、ASP.NETにおけるJSONの最大長は`1024000`ではなく`2097152`.aspx) (=`2M`)文字です。 なぜ`2M`文字というと、ASP.NETの標準設定ではリクエストのサイズを4MBに制限しているからです。.NETの内部文字コードはUTF-16ですので、4MBは`2M`文字に相当します。 4MB制限自体は異常なデータを送信された場合、いわゆるDoS攻撃の対策として設定されているものです。