gpt4 book ai didi

php - 跨页面传递从 mysql 数据库中选择的数据 id 并使用它在 php 中获取和显示更多数据是否安全?

转载 作者:行者123 更新时间:2023-11-29 18:20:32 26 4
gpt4 key购买 nike

我有一个网页,在连接到数据库并从数据库中选择类(class)后,会显示类(class)并带有用于查看每个类(class)的链接,如下所示:

<div class="col-md-4">

//query db action and assign the query to $result
$result = $dbcon->query($query);

if($result -> num_rows > 0){

//If courses are available(rows > 0), fetch and display them

while($row = $result->fetch_object()){

echo '<h2>'.$row->course_title.'</h2';

echo '<p>'.$row->course_description.'</p>';

echo '<a href="view.php?action=view&t='. $row->course_id.'">View Course</a>';
}
}

</div>

这是 view.php 页面的代码:

if(isset($_GET['action']) && $_GET['action'] == "view"){

//Assign var $id to the id from the _GET array
$id = $_GET['t'];

//Use the $id to fetch course details from the database
$query = ("SELECT * FROM courses WHERE course_id = '$id'");

//Query the db action
$result = $db_connect->query($query);

$rows = mysqli_num_rows($result);

if($result && $rows > 0){

while($row = $result->fetch_object()){

echo '<div class="col-md-10">';

echo '<h1>'.$row->course_title.'</h1>';

echo '<p>'.$row->course_description.'</p>';

echo '<div class="col-md-6"><span class="inline-elm">'.$row->course_subject.'</div>';

echo '<div class="col-md-6"><span>'.$row->course_level.'</p></div>'</div>';
}
}
}

我的问题是,我不确定这是否正确,当然是否安全,或者是否有更安全/正确的方法。非常感谢您的回答。谢谢

最佳答案

在 url 中传递 ids 很好,但它们应该像任何其他数据一样处理,即正确清理、验证和转义。准备好的声明是做到这一点的好方法。至少,在这里,因为您期望一个 int,所以您可以这样做:

$id = intval($_GET['t']);

请注意,准备好的语句不能防止 XSS 漏洞,如果执行“echo $id”而不将其包装在 htmlspecialchars 中,则会出现 XSS 漏洞。输入清理总是很好,如果它是一个 int,请在上面贴一个 intval !你永远不知道...

关于php - 跨页面传递从 mysql 数据库中选择的数据 id 并使用它在 php 中获取和显示更多数据是否安全?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46622829/

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