我看到你在帖子上给你的评论中发现了错误,这很好。
然而,应该指出的是,您的代码既包含SQL注入漏洞,也包含反映的XSS漏洞。
$catId = $_POST[\'key\']; // value from the ajax
...
$result_fromDB = $wpdb->get_results("SELECT * FROM sub_category where categor_id = \'".$catId."\'");
这是一个SQL注入。基本上,您接受用户提供的输入,并将其直接放入SQL语句中,而无需任何形式的清理。
您可以通过正确使用$wpdb->prepare()
在对数据库运行查询之前,或者只需验证您获取的“密钥”的形式是否符合您的预期。
$catId = $_POST[\'key\']; // value from the ajax
...
echo "<option value=\'".$catId."\' >".$catId."</option>";
类似地,此代码将输入直接回显到浏览器。这被称为反射XSS,因为可以简单地将
<script>
代码,并让该脚本在您的网站上下文中运行。这可能会以多种方式针对你,尽管其中大多数都需要某种形式的社会工程,比如诱骗你访问浏览器中的恶意网页。
始终验证输入。始终清理输出。始终正确准备SQL语句。没有例外。