gpt4 book ai didi

PHP嵌套菜单安全问题

转载 作者:可可西里 更新时间:2023-11-01 08:21:39 24 4
gpt4 key购买 nike

来自新手:

在寻找显示修改后的嵌套菜单 How to create a nested menu from MySQL with PHP? .我的问题是:采用这种方法是否存在任何安全问题。从我的新手角度来看,这段代码是服务器端的,但在加载页面时触发查询除外。

欢迎所有见解和建议。谢谢。

<?php
include '../data.php'; // connection folder

$query = "SELECT `parent_name`, `parent_id`, `child_name`, child_id
FROM `pages.child` INNER JOIN `pages.parent`
ORDER BY `parent_name`";

$result = mysql_query($query) or die(mysql_error());
echo "<ul id=\"catmenu\">";
$last_parent = '';
while($row = mysql_fetch_array($result)){
if($last_parent != $row['parent_name']){
// Unless this is the first item, close the last category
if($last_parent != ''){
echo "</ul></li>";
}
// Parent menu begins <li> and <ul>
$last_parent = $row['parent_name'];
$tags = $row['parent_name'];
echo "<a href=\"$tags\"><li class=\"menulist\">{$tags}<ul></a>";
}
if($row['parent_id'] === $row['child_id'] ){
$tags = $row['parent_name'];
$tag = $row['child_name'];
echo "<li class=\"menulist\"><a href=\"$tags\\$tag\">$tag</a>";
}
}
if($last_parent != ''){
echo "</ul></li>";
}
echo "</ul>";

?>

最佳答案

如果数据库表中的值之前由用户输入,请确保使用 htmlentities() 对它们进行转义在输出它们之前。例如,替换行:

$tags = $row['parent_name'];

有了这个:

$tags = htmlentities($row['parent_name']);

使用 htmlentities()防止称为 cross-site scripting 的漏洞,这是我在这种情况下可以看到的唯一安全问题。

关于PHP嵌套菜单安全问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6574995/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com