Ami*_*mir 3 forms sql-server security
我正在通过我的应用程序试图尽可能地保护它,它让我思考.我总是验证我的用户的输入,我总是擦除输入,所以例如,如果我有一个"生日"字段,我确保它是一个有效的日期,然后将其放入数据库.但我的数据库中也有"passwordresettoken"字段,如果用户请求,我的代码会生成此字段.
现在在我的普通用户个人资料页面上,我显然没有名为"passwordresettoken"的字段,所以我不验证或擦除它,因为它不应该存在于将要传递的表单中.事实上,它永远不应该被传递,因为它不是用户会输入的东西.
所以我的问题是,是否可以欺骗输入字段?他们可以编辑我页面上的HTML以包含一个passwordresettoken字段,然后在表单传递时做一些损坏吗?
是的,一点没错.我甚至不用看你的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>
Run Code Online (Sandbox Code Playgroud)
相当于这个卷曲请求
curl --data "birthyear=1905&press=%20OK%20" http://www.example.com/junk.cgi
Run Code Online (Sandbox Code Playgroud)