我在这里读过"永不信任用户输入"的口头禅,这是有道理的.我可以理解,用户键入的任何字段都是可疑的.但是,下拉选择字段呢?它们可以用于任何类型的注射吗?
我已经清理了允许用户输入的所有字段,并且还使用了mysqli预处理语句来插入数据库.
但是,我的表格中有三个下拉菜单,并且想知道我是否需要对它们做任何事情?
在我网站上的一个表格中,我有一个<select>这样的字段:
<select name="doorno" required>
<option></option>
<option>01</option>
<option>02</option>
<option>03</option>
<option>04</option>
<option>05</option>
<option>06</option>
<option>07</option>
<option>08</option>
<option>09</option>
<option>10</option>
<option>11</option>
<option>12</option>
<option>13</option>
<option>14</option>
<option>15</option>
<option>16</option>
<option>17</option>
<option>18</option>
<option>19</option>
<option>20</option>
<option>21</option>
<option>22</option>
<option>23</option>
<option>24</option>
</select></p>
Run Code Online (Sandbox Code Playgroud)
用户应该能够选择01 - 24之间的数字 - 对吗?
但是在存储这些条目的表中,我看到如下条目:
01,05
Run Code Online (Sandbox Code Playgroud)
怎么会发生这种情况?当我尝试输入字段时我无法进行 - 我只能选择列表中的一个选项?
知道用户如何设法输入上面的选项吗?
编辑 基于一些评论,我查看了数据库的后端,发现用户做了多个选择.所以现在问题有另一个相关的问题:
如果我没有在SELECT元素中指定MULTIPLE属性,是否意味着用户可以克服单个选择的默认行为?