0

这是代码:

<script language="javascript">
<!--//
    function pasuser(form) {
        if (form.user.value=="JavaScript") { 
            if (form.pass.value=="Kit") {              
                location="page2.html" 
            } else {
                alert("Invalid Password")
            }
        } else {  
            alert("Invalid UserID")
       }
    }
//-->
</script>

我一直尝试只使用用户 ID 而不是密码,但是当我删除 form.pass 时没有任何效果。我在表单部分做错了吗?

<input type="text" name="user" id="query" size="5" value=""> 
<input type="button" value="Search" onClick="pasuser(this.form)">

看起来它会很干。如果我只想输入用户 ID,只需删除 form.pass 但这不起作用。我之前使用过这个脚本和用户 ID 和通行证,它工作正常。

提前致谢。

4

3 回答 3

1

听起来您只想删除密码检查。如果是这样,您可以这样做:

<script language="javascript">
    function pasuser(form) {
        if (form.user.value=="JavaScript") { 
            location="page2.html"; 
        } else {  
            alert("Invalid UserID");
       }
    }
</script>

我建议也将分号放在您的陈述的末尾。

于 2012-04-25T19:38:54.327 回答
0

我怀疑“它不起作用”意味着location=page2.html无法更改 URL。你应该使用window.location=page2.html. 您也可能正在使用<input type=submit>- 尝试使用按钮。我测试的对我来说可以正常工作的代码位于底部,但首先,您还有其他几个问题需要处理。

问题 1:客户端安全性 您的第一个问题是您拥有客户端安全性。您的代码是 JavaScript,这意味着它会在浏览器中执行(除非您在另一种情况下处于 JavaScript 解释器的极不寻常的情况下)。这意味着源代码将交付给最终用户,用户可以使用浏览器内置的“查看源代码”来显示用户名和密码。顺便说一句,像禁用视图源这样的技巧不起作用 - 浏览器可以禁用 JavaScript(从而禁用该技巧)、使用 wget、使用代理服务器(如 webscarab)或浏览器插件。用户始终可以访问您页面的来源。

问题 2:未受保护的“安全”page2.html 第二个页面,您在验证后进入的页面,可能不受保护 - 毕竟,您所做的只是要求输入用户名和密码,然后重定向到“安全”页面。是什么阻止用户直接浏览“安全”页面?

问题 3:硬编码凭据 您有一个硬编码的凭据列表。这意味着使用您的软件的任何人都将拥有相同的凭据 - 不同的用户将能够登录到彼此的安装,即使他们没有被授权这样做。这通常被认为是实际产品中的关键风险。

建议 您考虑安全性并尝试实施身份验证方案是件好事。如果这是你感兴趣的东西,那里有很多研究——从维基百科开始。您还应该查看 owasp.org 以获取有关安全性如何变坏的大量重要信息,并且您应该使用 OWASP 的 web goat 工具 - 它会给您提供学习各种变坏元素的实践经验。

代码

<HTML>
    <头></头>
    <正文>

<脚本语言="javascript">
<!--//
    功能passuser(形式){
        if (form.user.value=="JavaScript") {
            if (form.pass.value=="Kit") {              
            警报(“成功”);
               window.location = "http://www.google.com/";
            } 别的 {
                alert("密码无效")
            }
        } 别的 {  
            alert("无效的用户 ID")
       }
    }
//-->
</脚本>

<表格名称=f>
    <输入名称=用户值="JavaScript">
    <输入名称=传递值=“套件”>

    <input type=button onclick='pasuser(document.forms.f)'>
</正文>
于 2012-04-25T19:45:33.147 回答
0

好吧,如果我错了,请纠正我,但是在删除 pass 输入字段时,您是否没有将onclick="pasuser(this.form)"位添加到用户 ID 输入字段?在这里设置一个 jsfiddle 会有所帮助。

无论如何,据我所知,将pasuser函数更改为 jfriend00 的解决方案,并将该onclick位添加到 userid 字段以使其正常工作

于 2012-04-25T19:42:20.770 回答