Php 带INSERT语句的SQL注入

Php 带INSERT语句的SQL注入,php,mysql,sql,Php,Mysql,Sql,我在插入数据库时使用了一个准备好的语句。如何使用PHP和MySQL测试it是否阻止SQL注入 代码如下: $addQuery = "INSERT INTO Test(firstName, lastName) VALUES(?,?)"; $addStatement = $this->dbc->prepare($addQuery); $addStatement->bind_param('ss', 'Test', 'Test'); $addStatement->execute(

我在插入数据库时使用了一个准备好的语句。如何使用PHP和MySQL测试it是否阻止SQL注入

代码如下:

$addQuery = "INSERT INTO Test(firstName, lastName) VALUES(?,?)";
$addStatement = $this->dbc->prepare($addQuery);
$addStatement->bind_param('ss', 'Test', 'Test');
$addStatement->execute()
(以下内容太大,无法发表评论)

如何测试[prepared statement]是否阻止使用PHP和MySQL进行SQL注入

我觉得人们会记下这个问题,因为大多数人会认为准备好的陈述是最好的方式。我认为这对提问者来说是不公平的,不要仅仅因为这是多数人的判断就认为某事是安全的,这总是好的

虽然事先准备好的陈述是迄今为止最好的方式,但查询和获得自己的证据总是很好的,否则你只是依赖别人的二手信息

因此,供参考:


最后一个链接很有趣,因为它强调了准备好的语句不能保证100%不被注射(但它们非常接近)

向我们提供您是如何做到这一点的,我们可以说是或不是。如果您做得对,那么它就可以安全地运行,直到黑客找到一种新的方法来通过当前的“安全”措施。当使用准备好的语句而不是通过字符串连接从用户输入构建语句时,SQL注入是不可能的。只需显示您的代码,就可以看到您确实使用了准备好的语句。它是安全的,您不使用用户输入:/i我不建议使用该工具,只需编写两个示例,一个没有准备好的查询,另一个有,您只需在参数中添加一个引号即可测试其是否易受攻击。可能重复