这是防止SQL注入的正确方法吗?

时间:2018-07-08 07:34:15

标签: php mysql sql wordpress sql-injection

对黑客专业人士的疑问。

我与W3SCHOOLS一起检查了许多类似的问题和PHP手册文档,它们都使用了不同的方法,这些方法使我对所有可能的方法都发疯了(不确定使用哪个方法?)

(例如,PHP手册使用bind param函数:

$stmt->bind_param('sssd', $code, $language, $official, $percent);

但是我无法使其正常工作,所以我使用了这个:

$queryString = "SELECT * FROM mytable WHERE dom='%s' AND key='%s' AND user_id='%i";
$stmt = $wpdb->get_results( $wpdb->prepare($queryString, $dom, $key, $user_id) );

(我假设%i是整数,%s是字符串)-此代码有效,但不确定是否防止sql注入。

这是否正确并且足以防止SQL注入? (ps变量通常是在此之前创建的,例如$ dom =“ mydom”;)

非常感谢!

1 个答案:

答案 0 :(得分:1)

在您的示例中,我看到您正在使用Wordpress函数,因此按照这种方法,您应该查阅文档以了解自己的工作,特别是prepare() https://developer.wordpress.org/reference/classes/wpdb/prepare/

指出“正在准备SQL查询以安全执行...”

因此,从本质上讲,是的,尽管您信任Wordpress在内部正确地进行了操作,但却可以保护您的查询。