php,html mysql&#39; select * from table&#39;解释为<select> </select>选项框

时间:2014-08-11 11:03:52

标签: php html mysql

我只是遇到了一个奇怪的显示问题。

我有一个电子商务网站,允许用户在说明字段中添加自由文字。该值存储在mysql数据库中,然后在描述中读出到屏幕。

在某些测试中,我发现如果用户在表格中选择*,则表示它存储并正确返回,但html将其转换为

<span class="idesc break-word">TESTING TESTING %$#$!OIUOQI#UQO@)( <select *="" from="" table=""></select></span>

enter image description here

反过来显示为空的选择下拉框。

我已经用过?首先将php中的变量绑定到mysql代码:

  1. 我还应该做些什么来防止狡猾的数据输入?
  2. 这是否表示我可以接受其他此类攻击?

1 个答案:

答案 0 :(得分:0)

如果以这种方式创建的字段的值正在进一步向下传递给应用程序,并且可能最终发送到数据库而不是是,那么您将接受SQL注入攻击。

是否有一些代码正在寻找&#34;选择&#34;并决定应该从那里创建一个字段?如果是,那看起来有点危险,可能会有更多区域,这个电子商务应用程序做出了潜在的危险决定。

绑定是防止输入意外数据类型的一个很好的步骤,但更进一步,如限制某些字符,例如;&LT;&GT;也是一个好方法。你的例子让我担心的是你没有期待一个精选领域,而是一个;这意味着一旦破坏,可以进一步利用该机制与您的数据库进行交互。