是用ajax加载帖子数据并且在源代码中看不到类别ID吗?

时间:2014-11-05 21:14:15

标签: javascript jquery ajax wordpress security

在WordPress中,我试图使用Ajax只需点击一个按钮即可从X类加载一些帖子。

为了知道要加载哪些帖子/类别,我添加了一个" data-cat"属性为按钮,如下:

<a href="http://url-of-category-X" data-cat="123" class="loader">Category X</a>

然后我有一个特殊的file.php设置,它创建一个new WP_Query来加载来自某个类别的帖子(无论什么类别ID都被输入到文件中)。

在Javascript中我有这个:

1- On '.loader' click use Ajax
2- get data-cat value
3- run special-file.php and feed it the data-cat value
4- get posts returned 
5- load post HTML data in the DOM 
6- End 

我开始怀疑这是否真的不安全并且容易被黑客攻击?在我的解决方案中是否有任何大的禁忌?

是什么让我想知道这是一个黑客可以使用firebug或类似物编辑html并将数据cat值更改为潜在恶意的东西的想法,虽然我不知道是否真的可以提供恶意类别ID有害吗?

P.s special-file.php看起来像这样:

$thequery = new WP_Query(  array( 'cat' => $cat_id,  'post_status' => 'publish',  'posts_per_page' => 4,  'ignore_sticky_posts'=> 1 ) );

foreach post in $thequery
echo the post title
echo the featured image
end foreach  
wp_reset_postdata();

因此,您所有的Feed都是类别ID,它会使用基本的WordPress函数返回4个帖子(例如the_title();以获取帖子标题等。)

2 个答案:

答案 0 :(得分:0)

问题不在于data-cat。您需要关注的是清理从用户获得的任何请求数据。这意味着在将data-cat值插入数据库查询之前检查{{1}}值是否安全。

答案 1 :(得分:0)

请确保始终彻底清理发布的值,例如:

$cat = isset( $_POST['cat'] ) && $_POST['cat'] ? intval( $_POST['cat'] ) : 0;