在从开发服务器转移到生产服务器的过程中,我注意到一个潜在的浏览器安全问题。
在一个 PHP 文件中,我有一个简单的登录表单,POST
它自己。基本的 HTML 如下所示:
<form action="http://mysite.com/includes/login/login.php" method="post">
<table>
<tr>
<td>
Username:
</td>
<td>
<input type="text" name="username" size="15" maxlength="64" tabindex=1 />
</td>
</tr>
<tr>
<td>
Password:
</td>
<td>
<input type="password" name="pword" size="15" maxlength="40" tabindex=2 />
</td>
</tr>
</table>
<p><input type="submit" name="submit" value="Login" tabindex=3 /></p>
<input type="hidden" name="submitted" value="TRUE" />
</form>
我注意到,当我(意外地)从表单操作(例如,<form action="http://mysite.com/includes/login/login.php method="post">
)中删除结尾引号时,表单被重定向到“找不到页面”,因为它应该。但它也将数据附加$_POST
为$_GET
数据。所以浏览器将登录信息显示为:
http://mysite.com/includes/login/login.php%20method=?username=theperson&pword=happyday&submit=Login&submitted=TRUE
我在 IE 和 Chrome 中得到相同的响应。这是一个很大的安全漏洞吗?我知道我可以在开发人员工具中查看类似的信息,但我想知道黑客是否可以使用它以及我是否应该采取任何措施来保护它。另外,谁能解释为什么将$_POST
数据转换为$_GET
数据?