JavaScriptによるアクセス制限

 JavaScriptによるアクセス制限その1です。
秘密の部屋のファイル名やディレクトリ名をパスワードにして、合っていればそこに飛ばす方法では、バスワードがばれる可能性は非常に低いでしょう。しかしこの方法でより完璧なアクセス制限をするのには、以前ご紹介した『JavaScript によるアクセス制限』のように複雑な仕組みを作ることとなります。やはり一番簡単な方法は、パスワードを作りそれが合っていれば秘密の部屋に行けるものなのですが、何しろ JavaScript はスクリプト自体を隠すことができないので困ります。そこで考えられるのがパスワードの暗号化です。まぁ、スクリプトが見え見えなので、 JavaScript に詳しい人が見ればいずれ分かってしまうのですが、一般の多くの人には効果があるということでご紹介いたします。これは先日ご紹介しました、文章・語句の Entity 変換のスクリプトを利用しています。
※ 下の例の場合、パスワードは abc です。
Passwordをお入れ下さい 
 ※ パスワードが合っていれば、秘密のページへのリンクが出ます。

 ただこれだけでは秘密のページのアドレスも分かってしまうので、秘密のページにも直接呼び出された時に他ページに飛ばされてしまうスクリプトを書き込む必要があります。

ソース
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html lang="ja">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
<title>password</title>
<script type="text/javascript">
<!--
function check(){
p = form1.pwd.value;
pass = "";
n = 0;
for(n=0; n <= p.length - 1; n++){
d = p.charCodeAt(n);
conv = '9'+ d + '8';
pass += conv;}
if(form1.pwd.value == ""){
alert("パスワードが入力されていません");
}
else if(pass != "997899889998"){
alert("パスワードが違います");
}
else{
document.writeln("<html><head><title>クリックしてください</title></head>");
document.writeln("<body topmargin=200>");
document.writeln("<center><b>あなたは認証されました<br>");
document.writeln("Enter をクリックしてお入り下さい。</b><br><br>");
// a href="" の "" の中に、秘密のページのアドレスを入れます。
document.writeln("<a href='http://www.**.ne/jp/**/himitu.html'><b>Enter</b></a>");
document.write("</center></body></html>");
document.close();
}
}
//-->
</script>
</head>

<body>
<form name="form1">
Passwordをお入れ下さい <input type="password" name="pwd" size=12>
<input type="button" value="password check" onclick="check()">
<input type="reset" value="reset">
</form>
</body>
</html>

秘密のページに書き込むスクリプト
<script type="text/javascript">
<!--
// (referrer.indexOf の次に最初のページのアドレスを入れます)
if(document.referrer.indexOf("http://www.**.ne/jp/**/index.html")== -1)
{location.replace("http://www.yahoo.co.jp/");}
//-->
</script>
<noscript>
<meta http-equiv="Refresh" content="0;URL=http://www.yahoo.co.jp/">
</noscript>

ちょっと使ってみようとお思いの方はご利用下さい。下のコピーボタンをクリックしますと、上のソースが一括してクリップボードにコピーされます。