ホームページを作るにはどうすればよいのか? ファイル転送・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へ戻る




Copyright (C) starthp.com, All Rights Reserved.