2008-10-30 3 views
-4

У меня есть гипер ссылка, как это:защищенного пароль гипер связи с целевым = _blank

<A Href=My_Java_Servlet?User_Action=Admin_Download_Records&User_Id=Admin onClick=\"Check_Password();\" target=_blank>Download Records</A> 

Когда пользователь нажимает на нее, окно пароля откроется, пользователь может попробовать 3 раза для правильного пароля.

Javascript выглядит следующим образом:

<Script Language="JavaScript"> 
    function Check_Password() 
    { 
    var testV=1; 
    var pass1=prompt('Password',''); 
    while (testV<3) 
    { 
     if (!pass1) history.go(-1); 
     if (pass1=="password") { return true; } 
     testV+=1; 
     var pass1=prompt('Access Denied - Password Incorrect.',''); 
    } 
    return "false"; 
    } 
</Script> 

Если пользователь вводит неправильный пароль 3 раза, он должен ничего не делать, но он по-прежнему открывает новое окно и отображает защищенную информацию, как исправить javascript или гиперссылку html html, так что только правильный пароль откроет новое целевое окно, неправильный пароль заставит его ничего не делать?

ответ

0

Почему вы возвращаете "false" вместо false?

1

Вы могли бы попробовать возвращение false, а не "false"

Однако, вы могли бы быть лучше делать такого рода вещи на сервере, так как я бы все изображения, но начинающие пользователи будут знать, как «адрес ссылки копирования "и вставьте это в свою адресную строку.

11

Клиенциальный JavaScript, возможно, самый худший способ обеспечить «безопасность». Пользователи могут просто просмотреть источник, чтобы просмотреть все ваши пароли, или просто отключить JavaScript в целом. Не делайте этого.

7

Других люди ответили на ваш вопрос с истинным/ложным возвращаемым значением, но вот некоторые из проблем, связанные с самой идеей проверки пароля в JavaScript на клиенте:

  1. Вашего Javascript источник свободно читаемый кем-либо, загружающим страницу, - таким образом, показывая им пароль, необходимый для просмотра страницы.

  2. Если у вас нет доступа к javascript, они просто перейдут прямо на страницу без получения подсказки javascript.

  3. Они всегда могли просто скопировать ссылку и вставить ее в свою адресную строку, чтобы обойти защиту паролем. Они могли бы также просто средней кнопкой мыши по ссылке (который должен открыть его в новой вкладке/окне в зависимости от браузера).

Даже на частном/интранет-только приложения это будет смехотворная метод безопасности. :) Пожалуйста, подумайте о том, чтобы пересмотреть его, чтобы пароль был проверен на стороне сервера (например, когда кто-то пытается получить доступ к сервлету, он отобразит окно с паролем, а затем отправит этот пароль обратно на сервер, а затем разрешит/запретит доступ .)

+1

Серьезно, люди, пытающиеся помочь исправить сценарий, похожи на родителя, показывающего ребенка точно, как вставить нож в электрическую розетку ... – swilliams 2008-10-30 17:13:16

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