密码保护超链接与target = _blank

Fra*_*ank -4 html javascript

我有这样的超链接:

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

当用户点击它时,将打开密码窗口,用户可以尝试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>
Run Code Online (Sandbox Code Playgroud)

如果用户输入错误的密码3次,它应该什么都不做,但它仍会打开一个新窗口并显示受保护的信息,如何修复javascript或我的html超链接,所以只有正确的密码才会打开一个新的目标窗口,错误的密码会让它什么都不做?

swi*_*ams 11

客户端JavaScript可能是提供"安全性"的最糟糕方式.用户只需查看源代码即可查看所有密码,或者只是完全禁用JavaScript.不要这样做.


Lan*_*ney 7

其他人用真/假的返回值回答了你的问题,但是这里有一些问题与在客户端javascript中检查密码的整个想法:

  1. 任何下载页面的人都可以自由阅读您的javascript源代码 - 从而向他们显示查看页面所需的密码.

  2. 如果他们没有启用javascript,那么他们将直接进入该页面而不会得到javascript提示.

  3. 他们总是可以复制链接并将其粘贴到地址栏中以绕过密码保护.他们也可以只是中间点击链接(应该在新的选项卡/窗口中打开它,具体取决于他们的浏览器.)

即使在私有/内联网应用程序上,这也是一种可笑的安全方法.:)请考虑重新设计它以便在服务器端部分检查密码(就像有人试图访问servlet时它会呈现密码框然后将该密码发回服务器然后允许/拒绝访问.)