PHP URL скрывает идентификатор категории - PullRequest
0 голосов
/ 17 февраля 2019

Я сомневаюсь, что мой код "скоро станет веб-сайтом" слабый или его легко взломать.

Я читал о внедрении 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();}

1 Ответ

0 голосов
/ 17 февраля 2019

Я бы меньше беспокоился о том, чтобы идентификаторы были общедоступными (это действительно не редкость ... это норма), и больше о как вы запрашиваете.Вы используете поддержку MySQLi для параметризованных запросов ?В одиночку это лучший способ защитить ваш сайт от уязвимостей SQL-инъекций.Везде, где вы принимаете пользовательский ввод и отправляете его в запросе, убедитесь, что он параметризован.

...