こんにちは。質問拝見しました。
参照された記事の場合ですと、serializeした後のデータはNULLバイトを含むため、テキストのみを前提としている送受信方式ですとデータをとりこぼす可能性はあります。しかし、記事中の「HTTP経路上でバイト数が変わったりゴミデータを拾ったりすることがある」というのは間違いです。HTTPではバイナリデータの送受信が可能です。問題が起こるのは、データのエンコード方式のところです。
さて、var_exportの結果はNULLバイトは含みませんが改行は含みます。このプログラムの場合だと下記のようになります。
array (
0 => 1,
1 => 2,
2 => 3,
)
これをhiddenパラメータにそのまま置くのは良くないので、base64エンコードしています。
なお、setcookieでクッキーに書く場合は、内部でパーセントエンコードされるのでbase64エンコードは必須ではありません。しかし、保険的にbase64エンコードすることは、わりあいある実装です。
結論としては、var_exportした結果は改行を含むため、ということになります。
2019年10月23日(水) 19:39 notsix <
charis...@gmail.com>:
> --
> このメールは Google グループのグループ「「体系的に学ぶ 安全なWebアプリケーションの作り方」サポートML」に登録しているユーザーに送られています。
> このグループから退会し、グループからのメールの配信を停止するには
wasbook-reade...@googlegroups.com にメールを送信してください。
> このディスカッションをウェブ上で閲覧するには
https://groups.google.com/d/msgid/wasbook-readers/c9a587aa-9a21-4afa-acee-9dc27c07a72b%40googlegroups.com にアクセスしてください。
--
徳丸浩
htok...@gmail.com