2011-06-30 170 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

请评论你为什么不投票,迄今为止,这是唯一的答案,让你保护页面而不会泄露受保护的密码或页面。 –