じぶんメモ

プログラミングのメモ、日常のメモとか。

hidden フィールドマニピュレーション

hidden フィールドマニピュレーションとは

ファイルのダウンロード機能や、ECサイトなどで、
重要な情報をhiddenフィールドに保持させておいたために、
リクエスト送信時にhiddenフィールドの値を改ざんされ、
不正に情報を取得されること。
hidden項目だけでなく、重要な情報(ファイルパスや商品の金額など)は、
クライアントから送信されたデータを使用で処理してはいけない。

例)ファイルダウンロード機能。
1.ユーザがダウンロードボタンを押下。
2.サーバ側に、hidden項目で保持されていたファイルパスが、パラメータとして送信される。
3.サーバは、パラメータを受け取り、パラメータに格納されたファイルパスからファイルを取得し、クライアントへ返却する。

この時、2の送信のパラメータを不正に改ざんした場合(たとえばweb.configのパスを指定されたり)、
公開してはいけないファイルが取得されてしまう。

対策

重要な情報はパラメータとして受け取らず、常にサーバ側の処理でDBから取得するようにする。