以下情况:我有一个主要是下拉列表的表单,我从数据库填充。还有一个文本输入字段。表单通过POST发送。 我想知道的是,在将它们放入sql查询之前,是否真的有必要清理$ _POST变量(当然除了文本输入字段)? 毕竟,如果它来自我创建的下拉列表,那么它并不是真正的用户输入。使用$ _GET我会理解该建议,因为它可以操纵正在发送的变量。但是AFAIK,用POST是不可能的。
答案 0 :(得分:1)
POST
就像伪造GET
一样简单。所以,是的,需要输入卫生设施。
你可以使用cURL
(http://php.net/manual/en/intro.curl.php)进行伪造,但是编辑一个简单的html页面,复制和放大甚至更加容易。将代码粘贴到其中,用您想要的任何值替换下拉列表的值,但将地址保留在action
标记的form
属性中,然后该表单将把所有垃圾发送到您未受保护的脚本。
答案 1 :(得分:0)
是的,这是可能的,因此您需要清理数据库输入。
对于大多数浏览器来说,这很困难,但您可以使用curl
等工具来模拟POST请求,您可以自由控制变量的内容。