inputタグにhiddenで隠された__VIEWSTATEとは(通信の盗聴、値の改ざん、回線の圧迫)

ASP.NETで作成されたサイト(拡張子が.aspxのページ)のフォームには『__VIEWSTATE』がhiddenで隠されていることがあります。
これはビューステート(ViewState)という機能で、ページ間で値(状態)を保持するためのものです。

<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="/wEPDwUKMj9L………O+5ncp7trJO5f+rSV" />

valueにはbase64エンコードされた値が格納されています。
base64エンコードでは英文字と記号で構成される値となり、狭義には暗号化されているわけではなく単に符号化されているだけなので簡単に元の値に戻すことができます。
(base64エンコードはメールで添付ファイルを送信する場合などに使用されています。)
このためこの値は通信の盗聴があった場合には容易に内容を知ることができます。

セッション(Session)ではサーバ側が値を保持しますが、ビューステートではクライアント側が値を保持します。
つまり値の改ざんが容易にできてしまいます。

格納されるデータがサーバからブラウザに送信され、次のページへ遷移する際にはブラウザからサーバに送信されるため格納されるデータ量が多くなれば多くなるほど回線を圧迫しサーバ負荷がかかります。

おおざっぱにまとめるとクッキー(Cookie)より簡単に複雑な値を扱えて、セッションよりセキュリティーは高くない機能です。

スポンサーリンク

関連記事

スポンサーリンク

スクリプトでiframeを参照すると履歴が余分に追加される

ホームページ製作・web系アプリ系の製作案件募集中です。

上に戻る