2011-06-30 2 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, и поэтому мы всегда перенаправлять на Google ...

Любые предложения о том, как сделать простая защита паролем с использованием прямых HTML-страниц?

EDIT: быть ясно, он отлично работает в Firefox, и в IE даже не подскажете с всплывающим просьбой «Введите пароль»

+0

Код, кажется, работает отлично для меня на IE9. Я просто запустил его в этом jsfiddle, и он работает: http://jsfiddle.net/jfriend00/KkMRS/. Какую версию IE вы используете? Я предлагаю поставить предупреждение о том, что фактическое значение возвращается из подсказки. – jfriend00

ответ

2

отлично работает для меня в IE. Демонстрация: http://jsfiddle.net/U2n3P/

Одна из возможных причин он не может работать в том, что вы заполнение строки с пустым пространством, с помощью ' ', поэтому, когда вы начинаете набирать там может быть пространство в конце. Измените строку на:

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

FYI, я знаю, что ты сказал, что не нужно, чтобы это было супер безопасно, но вы можете также добавить некоторые безопасности. Получите библиотеку 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

прокомментируйте, почему вы проголосовали за него, пока это единственный ответ, который позволяет вам защитить страницу, не выдавая защищенный пароль или страницу. –

Смежные вопросы