Home > イヌでもわかるJavaScript講座 お品書き
イヌでもわかるJavaScript講座 お品書き へ戻ります
イヌでもわかるJavaScript講座


Step.79 - 絶対にバレない パスワードリンク


Step.15 や Step.16 で、パスワードを入力してリンクしましたが、ソースを見るとパスワードがバレバレでした。絶対にバレない方法とは・・・!


Step テーマ
● 今回なし

実行例


ここは家族専用です→

※ ちなみにパスワードは 「secret」 です。


リスト

<script type="text/javascript"><!--
function myEnter(){
myPassWord = prompt( "Tatsuya家へのパスワードを入力してください", "" );
if ( myPassWord != "" && myPassWord != null ){// 未入力でも キャンセルでも なければ
location.href = myPassWord + ".htm";
}
}
// --></script>
<form>
ここは家族専用です→
<input type="button" value="Tatsuya家へ入る" onclick="myEnter()">
</form>


サンプルだけの HTMLは こちらへ

説明


[Q] Step.15 や Step.16 で、パスワードを入力してリンクするサンプルですが、JavaScript では、絶対にバレないようにできないのですか?
[A] できます。(^^;

Step.15 や Step.16 で、なぜ パスワードや、そのリンク先が解読できるかというと、ソースにそのパスワードやリンク先を記述しているからです。
暗号化というのも 結局は、形を変えてソースにパスワードを記述しているので 解読されるわけです。

ならば、記述しなければ 良いのです。(^^;

Step.15 や Step.16 で、なぜ パスワードを記述してしまったかというと、入力したパスワードが本当に正しいかを判断するのに、どうしても正しいパスワードがないと比較できなかったのです。

つまり、入力したパスワード自体が、リンク先のファイル名であれば、ソース内には、パスワードもリンク先も記述する必要がないため、絶対にバレないのです。
myPassWord = prompt( "Tatsuya家へのパスワードを入力してください", "" );
if ( myPassWord != "" && myPassWord != null ){
location.href = myPassWord + ".htm";
}
秘密のページのHTMLファイル名が、「secret.htm」だとすると、
prompt で入力する正解のパスワードは「secret」となる。 ※ prompt は Step.15 を参照。
URLを作成 "secret" + ".htm" = "secret.htm" ※ 文字列の結合は Step.3 を参照。
location.href で URL移動。 ※ location.href は Step.7 を参照。

よって、エラーチェックは できなくなったので、パスワードを間違えると、間違えたリンク先へリンクして、「ファイル無しエラー」ページが出現します。がはは〜

Q&A


[Q] ボタンではなく、自分の持っている画像を使って出来ないでしょうか・・・
[A] <form>〜</form>を 下記の <a>〜</a> に置き換えてください。

<a href="javascript:myEnter()"><img src="pinin42003.gif" alt="秘密のページへ" border="0"></a>
秘密のページへ

Q&A


[Q] ページへリンクできません。
[A] 拡張子を確認してください。このサンプルは拡張子を htm としています。html じゃないか確認してください。
[A] ファイル名の大文字小文字を確認してください。ファイル名の大文字と小文字は区別されます。
[A] リンク先は同じフォルダであるか確認してください。同フォルダでなければファイル名だけではリンクできません。

Q&A


[Q] リンクした場合にフレームを外したいのですが
[A] location.href を top.location.href へ変更してください。

Q&A


[Q] 右フレームにパスワードフォームを設置して、左フレームにページをリンクしたいのですが
[A] Step.55を参照してください。


 
イヌでもわかるJavaScript講座 お品書き へ戻ります