我正在通过我的应用程序试图尽可能地保护它,它让我思考。我总是验证我的用户的输入,我总是擦除输入,所以例如,如果我有一个“生日”字段,我确保它是一个有效的日期,然后将其放入数据库。但我的数据库中也有“passwordresettoken”字段,如果用户请求,我的代码会生成此字段。
现在在我的普通用户个人资料页面上,我显然没有名为“passwordresettoken”的字段,所以我不验证或擦除它,因为它不应该存在于将要传递的表单中。事实上,它永远不应该被传递,因为它不是用户会输入的东西。
所以我的问题是,是否可以欺骗输入字段?他们可以编辑我页面上的HTML以包含passwordresettoken字段,然后在表单传递时造成一些损害吗?
答案 0 :(得分:5)
绝对是的。我甚至不用看你的HTML。我可以直接使用curl提交。
http://curl.haxx.se/docs/httpscripting.html
这个html
<form method="POST" action="junk.cgi">
<input type=text name="birthyear">
<input type=submit name=press value=" OK ">
</form>
等同于此卷曲请求
curl --data "birthyear=1905&press=%20OK%20" http://www.example.com/junk.cgi