我怀疑自己“即将成为网站”的代码是弱代码还是容易被黑客入侵。
我已经阅读了有关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();}
答案 0 :(得分:4)
我不必担心ID是公开的(这确实很常见,这是正常现象),而不必担心查询的方式。您在使用MySQLi's support for parameterized queries吗?单凭它们是保护您的网站免受SQL Injection漏洞攻击的最佳方法。在您接受用户输入并将其发送到查询中的任何地方,请确保已将其参数化。