アプリ版:「スタンプのみでお礼する」機能のリリースについて

blogではperl/cgiが使えない関係で、javascriptでパスワードを掛けることを考えています。
*.htmlに(方法1)の関数を書くとソースで丸見えになります。関数を*.jsで分離しても、*.jsの所在が判るのでダウンロードされたら終わりです。(frameを使ってソースを見え難くする事はできますが.....)

(方法2)のファイル名をパスワードにする(方法2)は、(方法1)よりましですが不恰好です。(直接アクセスは防げませんがファイル名が無限設定できるのでPWDを知られるのと同じsecurity level)

もっと他にsecurity levvelの高いパスワード保護法は無いでしょう?
よろしくお願いします。

(方法1)
function GetP(s) {
if (s=="hoge") { location.href = "http://***/XXX.html" }
else { alert("入力された暗証番号"+s+"は間違いです!!") }
}

(方法2)
function getPassword(subdir, ext) {
pw = prompt("パスワードを入力してください:","")
if(pw) {
location =subdir + pw + "." + ext
} else {
alert("パスワードが入力されていません")
}
}

A 回答 (10件)

http://www.imymode.com/exp/js03.html
のような考え方でも出来ないことはないと思います。
暗号化/復号化には、
http://www.hcn.zaq.ne.jp/___/JavaScrypt/
(原文:http://www.fourmilab.ch/javascrypt/ )
が利用できるかもしれない。(ただ、動作が重いのでちょっと...)

参考URL:http://www.imymode.com/exp/js03.html,http://www.hcn.zaq.ne.jp/___/JavaScrypt/
    • good
    • 0
この回答へのお礼

サイトの紹介ありがとうございました。
大変興味深く、参考・勉強になりました。

お礼日時:2006/03/26 15:58

結局独自の暗号化スクリプトを作るか、DQ9さんの出されているURLのライブラリを使って、URLとパスワードを暗号化するくらいだと思います。



とはいえ、URLは復号できるものじゃないと、location.hrefに入れられないので、
パスワードはわからなくても、復号部分をとりだすことでURLを見つけられるんですけどね。(´・ω・`)
つまり、解析を恐れながらlocation.hrefを使う時点で、パスワード=ファイル名の一択になるんじゃないでしょうか?

パスワード=ファイル名というのは、
総当たりされるとサーバーへのアクセスが無駄に増えたりするので、あまり勧められたものではないんですけどね。

HTMLごと暗号化して、解析のやる気をなくさせるというのがベターだと思いますが、
あまりにやりすぎると、アクセスできないー>アクセスできないなら来る必要がない、つまり訪問者減少につながりかねませんので、ご参考まで。
    • good
    • 0
この回答へのお礼

ありがとうございます。
>結局独自の暗号化スクリプトを作るか、DQ9さんの出されているURLの
>ライブラリを使って、URLとパスワードを暗号化するくらいだと思い
>ます。
原理的には、自前であろうと既成であろうと、encode/decodeのスクリ
プトを完全に隠蔽しない限り、プロのハッカーには五十歩百歩と思いま
すが...

>パスワード=ファイル名というのは、総当たりされるとサーバーへの
>アクセスが無駄に増えたりするので、あまり勧められたものではない
>んですけどね
総当りまで考えると原理的に全てのファイルが閲覧可能になります
が、そんなヒマなことをする物好きがどれほど居るかだと思います。

お礼日時:2006/03/26 15:53

すみません。

余計に誤解を招きそうなので私の先ほどの回答 (No. 7) の前半部分は撤回します。
    • good
    • 0

一つ誤解がないようにいっておきますけど、No. 4 の DQ9 さんが紹介されたスクリプトはソースコードの難読化によくある「JavaScriptのメソッドや配列を使って複雑にしているにすぎない」ものではありません。



で、パスワードをファイル名にする方法は古典的ですが確実なので私もこの方法を薦めます。
「長いファイル名だと不便なこと、同じパスワードで別のリンクを参照するときにはディレクトリを別にする必要がある」などの欠点 (?) はスクリプトを使えばある程度緩和できます。

参考URL:http://www.geocities.jp/hiro00312/source/sample/ …
    • good
    • 0

パスワードで保護したい部分を暗号化して、利用者にパスワードを入力させたパスワードを用いて復号化するスクリプトを入れておけば多少はどうにかなります。


また、ファイル名をパスワードにするなら、パスワードとファイル名を連結させた文字列のハッシュを実際のファイル名にするといいかもしれません。管理が多少は自動化できそうです。
ハッシュを求めるのは#4の参考リンクで。
    • good
    • 0

#4のURLのjsファイルを見ての感想:


JavaScriptでパスワードを掛ける問題とHTMLのソースを見られない
ようにする問題は、ひと頃のNGや掲示板で盛んに論じられた問題で、
古典的な結論の出ている問題といっても過言ではない。
どんなに隠蔽してもソースがそこにあるかぎり、絶対に解読されないと
いうことはない。たかだか、JavaScriptのメソッドや配列を使って複雑
にしているにすぎない。パスワードを隠蔽する最も安全なコードは、
既に回答したことだが、何らかの文字列(エスケープ関数を経た文字
列でも)と照合するのではなく、リンク先をパスワードにするのが最も
隠蔽性が高いと思う。パスワードの更新も楽だ。

この回答への補足

ありがとうございます。一つの正解ですね。私もそう思います。ただあまり長いファイル名だと不便なこと、同じパスワードで別のリンクを参照するときにはディレクトリを別にする必要があるなどの特徴(欠点?)もあります。

補足日時:2006/03/25 06:08
    • good
    • 0

これはどうですか。


絶対解けないと思います。

参考URL:http://www.onicos.com/staff/iz/amuse/javascript/ …
    • good
    • 0

じゃぁ、HTMLのソースをJavaScriptで暗号化してみてはどうでしょう?少しは分かりにくくなります。


やり方がわかればソースを複合化することは簡単ですが、分からない人には有効です。

参考URL:http://www.vector.co.jp/soft/win95/net/se342771. …
    • good
    • 0
この回答へのお礼

ありがとうございます。
こんなソフトがあると知りませんでした。色々応用できそうですね。
早速試してみたいと思います。

お礼日時:2006/03/24 17:48

サーバーサイドの仕組みがなければ何をやっても


バレバレでしょう。
せめて.htaccessでもつかえれば別ですが。
    • good
    • 0
この回答へのお礼

正論正解です。.htaccessが使える本格的なサーバは別として、無料のblogで済まそうとしているのでこんな質問をしております。
せめて素人さんに簡単にはバレない方法があればよいのですが....

お礼日時:2006/03/24 17:42

単純にテキストフィールドに入力させてから、


その値を拾って飛ばせばいいのでは?
(パスワードはファイル名で)
document.getElementById('inputId').value
    • good
    • 0
この回答へのお礼

ありがとうございます。
私のscriptより格好よくなりますね。

お礼日時:2006/03/24 17:43

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!