我正在尝试完成的是拥有一个带有预定义选项的选择表单元素
<select name="select1">
<option value="value1">Value 1</option>
<option value="value2">Value 2</option>
<option value="value3">Value 3</option>
</select>我的sql如下所示
$OptionValue = $_POST['select1'];这就是我从表单中获取所选选项的值并将其放入php变量中进行查询的方式吗?
发布于 2013-01-24 00:49:22
您需要确保过滤用户输入以防止sql注入。单凭这一点是非常不安全的。
确保您使用的是PDO或MySQLi。如果不使用预准备语句,则需要对用户输入进行转义。
参见here。
但从本质上讲,你做得很对。
编辑:
在客户端,我可以很容易地将其更改为:
<select name="select1">
<option value="value1">Value 1</option>
<option value="';DROP TABLE users">Value 2</option>
<option value="value3">Value 3</option>
</select>或者类似的..。现在,如果你没有逃避你的输入,你就完蛋了。
发布于 2013-01-24 00:51:29
在执行查询之前使用$optionValue = mysqli_real_escape_string ($connection , $_POST['select1']),以防止大多数SQL注入。
发布于 2013-01-24 22:37:49
第一步是防止使用预准备语句进行SQL注入。示例:Prepared Statements
使用此命令将您选择的选项放入查询:$mySelectedOption = $_POST['select1']; $query = "SELECT column_name FROM table_name WHERE column_name = '{$mySelectedOption}'";
https://stackoverflow.com/questions/14484875
复制相似问题