2
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

ViewStateの改ざん対応

Last updated at Posted at 2017-11-15

ViewStateはhiddenで引き回されるため、比較的容易に改ざんが可能です。

例えば、他のユーザーのViewStateを何らかの手段で入手することで、そのユーザーしか見れないコンテンツが見れてしまう、といった問題が発生しえます。

対応方法

ViewStateにセッションIDを保存し、突き合わせすることで、ViewStateの改ざんを検知します。

修正点

以下のコードをページの生成時に実行することで、Asp.net側でセッションIDのViewStateへの保持と突合せが自動で行われます。

ViewStateUserKey = Session.SessionID;

自セッション外のViewStateに改ざんすると、以下のようなエラーが出力され、システムエラーとなります。


{System.Web.HttpException (0x80004005): viewstate MAC の検証が失敗しました。このアプリケーションが Web Farm またはクラスターによってホストされている場合、<machineKey> 構成が同一の validationKey と検証アルゴリズムを指定していることをご確認ください。AutoGenerate をクラスターで使用することはできません。

詳細については、http://go.microsoft.com/fwlink/?LinkID=314055 をご覧ください。 ---> System.Web.UI.ViewStateException: 無効な viewstate です。

参考

2
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?