当前位置: 首页 > 知识库问答 >
问题:

带有已准备语句的SQL注入

袁翔
2023-03-14
$statement = $connection->prepare("SELECT departmentName FROM departments WHERE department_type='academic' AND buildingName=?")

共有1个答案

解明辉
2023-03-14

不,它不会脆弱。使用准备好的语句是防止使用SQLI的建议方法。

如果您确信Department_Type参数不会受到任何用户输入的影响,那么可以安全地将其直接放入查询中。

不过,用户输入对变量的影响有点复杂。这种影响也可能是间接的。例如,如果Department_Type是从数据库中检索的,该数据库保存在另一个受用户影响的页面上,那么它会受到用户输入的间接影响,应该被视为“不受信任”。

 类似资料:
  • 假设上面的代码是我的查询。什么是一个安全的替代方案,将允许自动增加在mySQL数据库。

  • 问题内容: 停止使用不推荐使用的mysql_ *函数后,我切换到mysqli。但是后来,我注意到未准备好的语句对于SQL注入是不安全的。然后,我再次更改了代码。 我所拥有的是以下函数,该函数检查数据库中是否存在变量 $ ID 并打印该行的 title 值: 我将其更改为: 我的问题是:这是执行准备好的语句的正确方法吗?另外,我现在可以安全使用SQL注入吗?非常感谢任何愿意回答这个问题的人:) 问题

  • 问题内容: 我总是发现很难编写MySQLi预备语句,因为许多函数的工作方式与旧方法不同。现在我面临一个问题。 问题答案: 您正在尝试通过以下方式获取结果 事实并非如此。因为execute将仅返回布尔值。 做喜欢的。

  • 在连接池中为使用Prepared语句是否良好。(在我的例子中,我使用Tomcat JDBC连接池) 它是否增加了任何优势(加速),或者会增加维护准备好的语句和连接的开销,并使它们保持活动状态,或者跟踪是否关闭池连接,因为池连接是在内部维护的,并且它们会根据此处指定的不同设置关闭 我正在使用获取连接,数据库是MariaDB 在阅读各种帖子、文档和示例时,大多数都是使用或查询构建的。它是否指出对于

  • 我有一个搜索查询,它必须使用包含搜索搜索表中的一列。列上有CTXSYS.Context类型索引。当使用prepared语句在表中获取数据时,搜索查询不能处理像-、/、_等特殊字符。

  • 我将游标声明放在准备好的语句中,然后执行它,然后返回一个