Javascript 使用ajax加载post数据并在源代码中显示类别ID是否不安全?

Javascript 使用ajax加载post数据并在源代码中显示类别ID是否不安全?,javascript,jquery,ajax,wordpress,security,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> 我开始怀疑这是否真的不安全并且容易被黑客攻击?在我的解决方案中有什么大问题吗 让我感到奇怪的是,黑客可以使用firebug或类似工具编辑html,并将数据c

在WordPress中,我尝试使用Ajax通过单击按钮从类别X加载一些帖子

为了了解要加载的帖子/类别,我在按钮中添加了一个data cat属性,如下所示:

<a href="http://url-of-category-X" data-cat="123" class="loader">Category X</a>
我开始怀疑这是否真的不安全并且容易被黑客攻击?在我的解决方案中有什么大问题吗

让我感到奇怪的是,黑客可以使用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();

所以你只需要输入分类ID,它就可以使用基本的WordPress功能返回4篇文章,比如标题;要获取文章标题等,问题不在于公开数据。您需要关心的是清理从用户那里获得的任何请求数据。这意味着在将数据cat值插入数据库查询之前,先检查其是否安全。

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

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

这完全取决于special-file.php如何处理数据cat值。但这并不像special-file.php中的服务器端代码那样依赖于源代码。例如,如果special-file.php中存在易受通过数据cat值进行SQL注入攻击的代码,则可能存在安全问题。但我们需要看看代码。任何黑客都可以在special-file.php的参数中输入他们想要的任何内容,而不管您需要的页面源是什么,以确保您能够正确处理。如果您使用的是WP_查询,WordPress会进行必要的清理。这是一个很好的观点,我在原始问题中添加了一个关于special-file.php的快速概述。
$cat = isset( $_POST['cat'] ) && $_POST['cat'] ? intval( $_POST['cat'] ) : 0;