| ホームページを作るにはどうすればよいのか? ファイル転送・SSL・メール送信の仕組み・CGIなどをやさしく解説します |
![]() |
| トップページ | インフォメーション | プロフィール | 更新履歴 | メルマガ | お問い合わせ |
JavaScriptの危険性
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ■JavaScriptの危険性 | ||||
| 入力チェックをJavaScriptを使って行っているサイトはたくさんあります。 | ||||
| ユーザー側で処理をするため、サーバーに負荷がかからない利点があります。 | ||||
| ところが、ソース表示ができるために改ざんされる危険性に付きまとわれます。 | ||||
| 入力チェックの部分を削除されてしまうと、予期しない値が送られてくることになります。 | ||||
| 事例で確認してみましょう。 | ||||
| 1.何も入力しないまま「次へ」ボタンを押す | ||||
| 入力せずにボタンを押します。 | ||||
![]() |
||||
| 2.チェックがはたらく | ||||
| 入力をうながすメッセージが表示されます。 | ||||
![]() |
||||
| 3.数字のかわりに文字を入れてみる | ||||
| 個数というと数字になります。ここでは文字を入れて、処理が働くか見てみます。 | ||||
![]() |
||||
| 4.チェックがはたらく | ||||
| 入力をうながすメッセージが表示されます。 | ||||
![]() |
||||
| 5.数字を入れてみる | ||||
| 個数の入力画面なので、きちんと数字を入力してみます。 | ||||
![]() |
||||
| 6.次のページへ送られる個数を表示 | ||||
| メッセージボックスを使って、入力された個数を表示しています。 | ||||
![]() |
||||
| 実際に次のページを表示しているわけではありませんが、かわりに受け渡される数を表示しています。 | ||||
| このページには、個数を入力するためのテキストがあり、空白のままボタンを押したり、文字を入力したりすると、 | ||||
| メッセージボックスで警告を表示するようになっています。 | ||||
| それでは文字を入力しても、警告を表示されないようにしてみましょう。 | ||||
| ここまで読んでこられた方なら、もう予想がつくと思いますが、その方法はソースを表示してチェックの部分を | ||||
| 削除してしまえばよいのです(あるいは、チェック関数へ飛ばしている箇所を削除する)。 | ||||
| これでチェック機能が無効になります。 | ||||
| JavaScriptをホームページの装飾として使うなら危険はないでしょうが、入力チェックとして使うと悪意のある | ||||
| ユーザによって無効にされてしまいます。 | ||||
| なぜ無効化されるのか? それはユーザー側で処理を行っているから(ソースが見えるから)です。 | ||||
| 無効にされないためには、入力チェックの実装をサーバー側で行う必要があります。 | ||||
| チェック用のCGI やプログラムを作成し、サーバー側に置くことで無効化されることはなくなります。 | ||||
| もちろん、パーミッションの設定には気を配らねばなりません。 | ||||
| 言語としてはライセンスフリーのPHPをおすすめします。 | ||||
| TOPページへ | ||||
|
|
||||
| 参考までに事例で使ったソースを載せておきます。 | ||||
| <html> <head> <title>JavaScriptでチェック</title> </head> <body> <SCRIPT Language = "JavaScript"> <!-- function inputCheck(kosuu) { if (kosuu == "") { window.alert("個数を入力してください"); }else{ flag=isNaN(kosuu) if (flag == true){ window.alert("数字を入力してください"); }else{ window.alert("次のページへ送られる数は"+document.in_kosuu.kosuu.value); } } } //--> </SCRIPT> 個数入力 <form name = "in_kosuu"> <INPUT TYPE="text" name = "kosuu"> <INPUT TYPE="button" VALUE="次へ" onclick = inputCheck(document.in_kosuu.kosuu.value)> </form> </body> </html> |
||||
| TOPへ戻る | ||||