Webセキュリティの小部屋

Twitter のフォローはこちらから Facebook ページはこちら Google+ページはこちら RSSフィードのご登録はこちらから
公開日:2013年2月26日

重要情報はブラウザに持たない

ブラウザから Web サーバーに送信されるデータは、簡単に改ざんすることが可能です。hidden 項目は表示されない項目ですが、ユーザーに見えないからといって改ざんされない訳ではありません。Cookie も改ざん可能です。

ですので、改ざんされて問題のある情報、例えば商品の価格などはブラウザで情報を持ってはいけません。改ざんされて問題がある情報は、Webサーバー上に持つようにしましょう。

ブラウザで持つデータと Web サーバーで持つデータの違いは以下の記事を参照してください。

ここで、ブラウザの情報が改ざん可能といっても、今ひとつ実感がわかないと思いますので、Fiddler を使用してブラウザから送信される情報を実際に改ざんしてみましょう。Fiddler の基本は以下の記事を参照してください。

非常に単純な hidden 項目を送信する画面(send.php)と、送信された情報を表示する画面(receive.php)の2つを PHP で作成します。

・send.php

<html>
<body>
  <form action="receive.php" method="post">
    <input type="hidden" name="name" value="yamada">
    <input type="submit" value="送信する">
  </form>
</body>
</html>

・receive.php

<?php
  $name = $_POST['name'];
?>
<html>
<body>
  <h1>こんにちは、<?php echo $name ?>さん</h1>
</body>
</html>

これを実行すると、以下のようになります。

・送信前(send.php)
pic01

・送信後(receive.php)
pic02

ここで Fiddler を起動して、Rules >> Automatic Breakpoints >> Before Requests を選択します。

pic03

この状態で、もう一度 send.php から送信すると、Fiddler で通信がストップします。また、リクエストボディの POST のパラメータが name=yamada となっていることも分かります。

pic04

この name=yamada となっている部分を、name=sato と書き換えて、Resume ボタンをクリックします。

pic05

すると、hidden 項目で値が yamada だったものが、sato に書き換わっています。

pic06

このようにブラウザの情報は簡単に改ざんすることができることが分かります。

  • ブラウザの情報は簡単に改ざん可能
  • 重要情報はブラウザに持たない

スポンサーリンク




カテゴリー:Webアプリケーションセキュリティ

Twitter でも、いろんな情報を発信しています。



コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA