wordpress数据库选择安全性

时间:2014-01-06 10:49:04

标签: wordpress

我从自定义表中返回一些数据,但我不确定代码是否足够安全。你能救我吗?

$page_title = get_the_title();    
$id = $wpdb->get_row('select id from table where name="'.htmlspecialchars($page_title).'"');

1 个答案:

答案 0 :(得分:0)

不确定为什么要匹配标题,通常在搜索时最好使用id。

但是当标题与var匹配时,这就是自定义查询看起来像获取帖子ID的样子。准备做适当的逃避。请参见第一名准备工作http://codex.wordpress.org/Class_Reference/wpdb

global $wpdb;
$page_title = get_the_title();
$id = $wpdb->get_row($wpdb->prepare('SELECT id FROM ' . $wpdb->posts . ' WHERE post_title = %s', $post_title));

或者您可以在var上使用WordPress的esc_sql()函数。 http://codex.wordpress.org/Function_Reference/esc_sql

但就像我说的那样,这个查询似乎倒退了。如果你有get_the_title(),你也应该有_ID()或get_the_ID(),所以不需要查询。所以这取决于你想要做什么。