模仿登录表单...

时间:2013-09-11 14:58:42

标签: javascript forms validation autologin

我们有一个内部应用程序,需要全面的用户名/密码。

但是,如果登录失败次数过多,则会锁定该帐户的帐户。

我们无法更改锁定,因为这也会影响面向公众的网站。

我被要求提出一种基本方法,点击按钮并自动登录。

最初的研究让我看到了这个剧本...... Credit

<!doctype html>
    <!-- saved from url=(0014)about:internet -->

    <html>
    <title>Auto Login</title>
    </head>
    <body>
    <form id="loginForm" name="loginForm" method="post"    action="http://mail.google.com">
    <select name="uni_url" id="logServer" class="validate[required]">
    <option  class=""  value="" fbUrl=""  cookieName=""  >
            Test_en
    </option>
    </select>
    <input id="loginName" name="name" type="text" value="Username" class="" />
    <input id="loginPassword" name="password" type="password" value="ExamplePassword" class="" />
    <input type="hidden" id="loginKid" name="kid" value=""/>
                        </form>
  <script>document.loginForm.submit();</script>       
  </body></html>

...但我似乎无法让它为我工作。

所以,我找到了另一个选项,我可以使用提交按钮创建一个小的html文件(表单),这样做 - onload="form1.submit();",这基本上可以让我登录到这个网站,而无需键入任何登录信息。

不知道从哪里开始模仿这样的登录表单,需要一个好的方向来开始。

思考?

1 个答案:

答案 0 :(得分:0)

我们假设您现有的登录表单如下所示:

<form action="/login.php" method="post" id="loginform">
    <input type="text"     name="username" />
    <input type="password" name="password" />
    <input type="submit" />
</form>

在您的“自动登录”(实际上是自动提交)页面上,您希望模仿与之前相同的结构,但是:

  • 添加要提交的值(静态用户名和密码?)
  • 可选择删除提交按钮(如果您知道您的用户已启用JS,那么您可以摆脱它。)
  • 添加一些自动为您提交表单的JS。

这可能会给我们这样的事情:

<form action="/login.php" method="post" id="loginform">
    <input type="text"     name="username" value="gvee" />
    <input type="password" name="password" value="hunter2" />
</form>
<script type="text/javascript">document.forms[0].submit()</script>

javascript基本上会在页面上查找第一个表单(forms[0])并提交。


更新

进一步检查后,您现有的登录表格有点像一个有趣的洋葱。它不是直接提交表单,而是调用一个名为doLogin()的函数来设置某些隐藏的属性。

因此,我们应该模仿相同的行为(即调用doLogin()而不是.submit()),而不是提交表单。

这里的一个关键是你只想在声明它之后调用它。最简单的解决方案是将我们添加的脚本放在HTML的最底层。

<script type="text/javascript">doSubmit();</script>