浏览器在哪里获取这些HTML表单字段?

时间:2015-09-20 03:10:54

标签: jquery html forms field

网站提供的登录表单只包含“用户名”和“密码”。按Enter键或单击“登录”按钮即可登录。

HTML表单(来自页面源代码)如下所示:

<form name="login" action="https://www.mywebsite.com/index.php?main_page=login&amp;action=process" method="post" id="loginForm"><fieldset>
<legend>Please Log In</legend>

<label class="inputLabel" for="email-address">Email Address:</label>
<input type="text" name="email_address" size = "41" maxlength= "96" id="email-address" /><br class="clearBoth" />

<label class="inputLabel" for="login-password">Password:</label>
<input type="password" name="password" size = "41" maxlength = "40" id="login-password" /><br class="clearBoth" />
<input type="hidden" name="securityToken" value="0330682553ea36639f62317144927f3f" /><div class="buttonRow forward"><input type="image" src="includes/templates/lite_grey/buttons/english/login.gif" alt="Sign In" title=" Sign In " /></div>
<div class="buttonRow back important"><a href="https://www.mywebsite.com/index.php?main_page=password_forgotten">Forgot password</a> | <a href="index.php?main_page=activation_email&resend=1">Re-send activation email</a></div>
</fieldset>
</form>

表单包含两个可见字段(email_address和密码)和一个隐藏字段(securityToken)。

当我填写表单并在浏览器中按Enter键时,浏览器会生成一个如下所示的POST请求:

POSTDATA=email_address=my@emailaddress.org&密码= mypass123&安培; securityToken = 0330682553ea36639f62317144927f3f&安培; X = 37安培; Y = 15

(我通过使用Firefox的“Tamper data”插件看到了这个后期数据。还通过wireshark确认)

请注意浏览器发送的字段:email_address,password,securityToken - 以及HTML代码中不存在的其他两个字段:x = 37和y = 15。我对这些价值来自何处感到茫然。

此外,每次登录网站时,这些值x和y都会发生变化。

所有浏览器似乎都能够正常处理此登录表单(不仅仅是Firefox)。 HTML页面似乎没有混淆或任何东西..

这些价​​值来自哪些想法或我如何找到?

由于

2 个答案:

答案 0 :(得分:3)

当您的表单提交为type="image"时,始终会发送这些值(x和y坐标):

<input type="image" src="includes/templates/lite_grey/buttons/english/login.gif" alt="Sign In" title=" Sign In " />

请参阅此答案:https://stackoverflow.com/a/801722/870729

答案 1 :(得分:1)

编辑:虽然在某些情况下我的回答可能技术上,但cale_b的答案可能性大约为100,000,000倍。谢谢cale_b。

必须有一个javascript框架,用于将onSubmit处理程序附加到表单,并在发送之前注入自己的字段。

在chrome中打开开发者工具,并在源代码中搜索“onSubmit”,“post”等。您可能会找到罪魁祸首。

如果你找不到那种方式,请搜索“.preventDefault()”,但这可能会产生很多东西。