Wordpress:wpdb->插入与 wpdb->prepare(wpdb->query("INSERT

Posted

技术标签:

【中文标题】Wordpress:wpdb->插入与 wpdb->prepare(wpdb->query("INSERT【英文标题】:Wordpress: wpdb->insert VERSUS wpdb->prepare(wpdb->query("INSERT 【发布时间】:2011-01-24 05:57:14 【问题描述】:

我想知道 wordpress 的插入功能是否也会在数据中添加斜线。如果不是这样,那么准备查询方法似乎可以更好地防止 SQL 注入。我尝试在 codex/api 中查找问题;但是,它似乎没有记录。 谢谢!

【问题讨论】:

【参考方案1】:

这个问题有点老了,自从被问到这个问题后,codex 可能已经更新了。 wpdb->insert()wpdb->prepare() 在 SQL 转义输入数据方面提供相同级别的安全性。

codex states 表示提供给插入方法的列值和数据值都应该是原始的,而不是 SQL 转义的。

我还快速查看了来源以确认。 insert 方法的实现使用wpdb->prepare()

【讨论】:

+1。不再做wordpress的东西;但是,这个答案很震撼。我记得我根本不知道 prepare 做了什么,也不知道为什么所有的例子都在使用它。【参考方案2】:

Wordpress 使用ezSQL 来查询数据库。从技术上讲,它不是一个抽象层,但它确实去掉了一些样板代码。 ezSQL 有一个函数escape,所以我假设 Wordpress 在执行查询之前总是会调用转义函数。但要确定,您必须查看源代码。

这是您在 Wordpress 中转义字符串的方式:$safe_string = $wpdb->escape($unsafe_string);

【讨论】:

以上是关于Wordpress:wpdb->插入与 wpdb->prepare(wpdb->query("INSERT的主要内容,如果未能解决你的问题,请参考以下文章