对于每一个表单,现在可以增加两个hidden元素:
拿用户登录做个例子:
<form action="login" method="post">
<input type="hidden" name="p1" value="1234564"/><br/>
<input type="hidden" name="p2" value="a2bd345684a21456ae7a4fa6af"/><br/>
username:<input type="text" name="username"/><br/>
password:<input type="password" name="password"><br/>
<input type="submit" value="Login"/>
</form>
其中p1是根据系统时间的毫秒数:
p2是自己写的一个函数对p1加密后的字符串。
而且后台还规定p1距离当前时间超过60s则认为表单已经过期。
这样,如果我改了p1的值, 因为不知道产生p2的具体算法,后台就会知道p1和p2不匹配,对于这样的表单就不用处理了。