擅长:python、mysql、java
<p>参数化查询,不要注入值,这是一个巨大的安全缺陷</p>
<pre class="lang-py prettyprint-override"><code>cursor.execute("INSERT INTO dbo.sftpserverlist(FileName,FileSize) VALUES (?,?)",files[0],str(sizes[0]))
conn.commit()
cursor.close()
</code></pre>
<p>出现错误的原因是(不安全地)注入的值没有被引用;因此<code>files[0]</code>的值(在本例中具有值<code>"DidosSupply.zip"</code>)被解释为列的名称;它不可能是这样的,因为你在一个没有<code>FROM</code>的<code>VALUES</code>子句中</p>
<p><em>当然,仅在值周围加引号不是解决方案,因为引号可以转义</em></p>