【问题标题】:PHP URL hiding the id of the categoryPHP URL隐藏类别的ID
【发布时间】:2019-07-10 18:53:01
【问题描述】:

我怀疑我的“即将成为网站”的代码很弱或很容易被破解。

我阅读了有关 SQL 注入和其他安全问题的信息,我知道 URL 不应该是这样的:“index.php?catid=id” 它必须被隐藏、重定向或路由。

这是我试图避免的,但是,我已经尝试过 session_start();但结果一团糟。

我也可能错了,使用锚点将用户从一个页面发送到另一个页面时可能根本没有危险点击这里

请检查下面的代码。

header.php

<div class="header">
<div class="logo">
    <a href="index.php"><img src="images/logo.jpg" alt="logo" /></a>
</div><!--logo ends-->
<div class="navigation">
    <?php

        $cat_sql = "SELECT * FROM category";
        $cat_query = $conn->query($cat_sql);
        while ($cat_results = $cat_query->fetch_array()){
        $category_page = "category.php?categoryID=" .$cat_results['categoryID'];
            //session_start();
            //echo session_id();
            echo "<a href='$category_page'>". $cat_results['name'] ." </a>";
        }
    CloseCon($conn)
    ?>
        <a href="admin.php">Admin</a>
</div><!--navigation ends-->
</div><!-- Header ends here-->

dbconnect.php

$servername = "localhost";
$username = "root";
$password = "123456789";
$database = "accessories";

$conn = new mysqli($servername, $username, $password, $database);

if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
echo "Connected successfully";a

function CloseCon($conn)
{$conn -> close();}

【问题讨论】:

  • 等等...为什么 session_start()session_id()while 内??
  • 仅用于测试目的,只是将它们注释掉..
  • 您是否担心有人可能会简单地“知道”一个 ID 为 x 的类别名称为 y?当您转到 category.php 页面时究竟会发生什么?
  • 不,我不担心,我担心的是如果 URL 中显示了一个ID,它可能会在网站中打开一个安全漏洞?类别页面将显示这些项目、价格、图片等。没有什么真正重要的..
  • 如果除了显示信息之外什么都没发生,那么你就很安全了。但是,如果您根据发送的内容来操作数据/文件等,那么您将敞开心扉。

标签: php mysqli sql-injection


【解决方案1】:

我不太担心 ID 是公开的(这确实并不少见……这是常态),而更多地担心如何您正在查询。你在使用MySQLi's support for parameterized queries吗?它们是保护您的网站免受 SQL 注入漏洞影响的最佳方式。在您接受用户输入并将其发送到查询中的任何地方,确保它已参数化。

【讨论】:

  • 所以在将用户从一个页面发送到另一个页面时我是安全的,是吗?
  • 再次,我鼓励您在查询中需要用户输入的任何时候使用参数化查询。这包括使用通过 $_GET 设置的 ID。永远不要相信用户输入。
猜你喜欢
  • 1970-01-01
  • 2019-01-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-11-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多