2011-06-30 164 views
2

我需要在任意html文件上加上一些簡單的密碼保護。它確實需要安全,但只是不加區分地使用roff-raff。我試着用下面的JS:密碼保護html頁面

var password; 
    var thePassword="secretpassword"; 
    password=prompt('Enter Password',' '); 
    if (password==thePassword) { alert('Correct Password! Click OK to Enter!'); } 
    else { window.location="http://www.google.com/"; } 

這在Firefox罰款,但似乎提示功能在IE中失敗,所以我們總是重定向到谷歌...

如何做任何建議簡單的密碼保護使用直的HTML頁面?

編輯:要清楚,它工作在Firefox罰款,並在IE中甚至沒有一個彈出對話框,要求在IE中「輸入密碼」

+0

該代碼似乎在IE9上正常工作。我只是在這個jsfiddle中運行它,它的工作原理:http://jsfiddle.net/jfriend00/KkMRS/。你正在運行什麼版本的IE?我建議在提示中提示實際值。 – jfriend00

回答

2

工作正常,我提示。演示:http://jsfiddle.net/U2n3P/

一個可能的原因,它可能無法正常工作是,你用填充的空白空間的提示,通過使用' ',所以當你開始輸入有可能在後面加上一個空格。提示更改爲:

password=prompt('Enter Password', ''); 

僅供參考,我知道你說你沒必要這是超安全的,但你不妨加一些安全。獲取一個MD5庫,並且執行下列操作:

var thePassword = "md5encodedpassword"; 
password=prompt('Enter Password',' '); 
if(md5(password) != thePassword){ 
+0

我的if語句是正確的。我告訴你,它在Firefox中正常工作。我會研究MD5的建議! –

+0

爲什麼這是低票? –

+0

,因爲它忽略了發佈的代碼在IE中不起作用的聲明。 IE忽略JS彈出窗口。如果IE瀏覽器忽略它,我不能正確地使用這樣的彈出窗口來輸入密碼。 –

-1

將安全頁面或目錄命名爲md5哈希密碼。

function isThere(url) { 
    var req= new AJ(); // XMLHttpRequest object 
    try { 
     req.open("HEAD", url, false); 
     req.send(null);  
     return req.status== 200 ? true : false; 
    } 
    catch (er) { 
     return false; 
    } 
} 
password=prompt('Enter Password',' '); 
password=md5(password); 
if (isThere(md5 + "/") { window.location = password + "/"; } 
else { alert("incorrect"); } 
+0

這段代碼沒有經過測試,但我希望你明白。 –

+0

請評論你爲什麼不投票,迄今爲止,這是唯一的答案,讓你保護頁面而不會泄露受保護的密碼或頁面。 –