我只是遇到了一个奇怪的显示问题。
我有一个电子商务网站,允许用户在说明字段中添加自由文字。该值存储在mysql数据库中,然后在描述中读出到屏幕。
在某些测试中,我发现如果用户在表格中选择*,则表示它存储并正确返回,但html将其转换为
<span class="idesc break-word">TESTING TESTING %$#$!OIUOQI#UQO@)( <select *="" from="" table=""></select></span>
反过来显示为空的选择下拉框。
我已经用过?首先将php中的变量绑定到mysql代码:答案 0 :(得分:0)
如果以这种方式创建的字段的值正在进一步向下传递给应用程序,并且可能最终发送到数据库而不是是,那么您将接受SQL注入攻击。
是否有一些代码正在寻找&#34;选择&#34;并决定应该从那里创建一个字段?如果是,那看起来有点危险,可能会有更多区域,这个电子商务应用程序做出了潜在的危险决定。
绑定是防止输入意外数据类型的一个很好的步骤,但更进一步,如限制某些字符,例如;&LT;&GT;也是一个好方法。你的例子让我担心的是你没有期待一个精选领域,而是一个;这意味着一旦破坏,可以进一步利用该机制与您的数据库进行交互。