我知道您绝不应该信任表单中的用户输入,主要是因为有注入SQL的机会。
但是,这是否也适用于唯一输入来自下拉菜单的表单(请参见下文)?
我将其保存$_POST['size']到一个Session中,然后在整个站点中使用它来查询各种数据库(使用mysqliSelect查询),任何SQL注入肯定会损害(可能会删除)它们。
$_POST['size']
mysqli
没有类型输入的用户输入可以查询数据库的区域,只有下拉列表。
<form action="welcome.php" method="post"> <select name="size"> <option value="All">Select Size</option> <option value="Large">Large</option> <option value="Medium">Medium</option> <option value="Small">Small</option> </select> <input type="submit"> </form>
您可以像以下示例一样简单地进行操作,以确保发布的大小符合您的期望。
$possibleOptions = array('All', 'Large', 'Medium', 'Small'); if(in_array($_POST['size'], $possibleOptions)) { // Expected } else { // Not Expected }
如果要使用的PHP> = 5.3.0版本,请使用mysqli_ *来保存结果。如果正确使用,这将有助于sql注入。