这是我第一次尝试用php和mysql做一些简单的事情。我基本上只是学到了足够的基础知识来修改一些示例代码,并使其适用于我的数据,因为我不是一个专业的程序员。
首先,下面是我正在使用的简单代码:
<?php
$db = mysqli_connect('localhost','root','mypass','test') or die("Error connecting to database: ".mysqli_error());
?>
<?php
$query = $_GET['query'];
$query2 = $_GET['query2'];
$min_length = 3;
if(strlen($query) >= $min_length && (strlen($query2) >= $min_length)){
$query = htmlspecialchars($query);
$query = mysqli_real_escape_string($db, $query);
$raw_results = mysqli_query($db, "SELECT * FROM hope
WHERE (`name` LIKE '%".$query."%') AND (`boop` LIKE '%".$query2."%')") or die(mysqli_error($db));
if(mysqli_num_rows($raw_results) > 0){ // if one or more rows are returned do following
while($results = mysqli_fetch_array($raw_results)){
echo "<p><h3>".$results['name']."</h3>".$results['boop']."</p>";
}
}
else{ // if there is no matching rows do following
echo "No results";
}
}
else{ // if query length is less than minimum
echo "Minimum length is ".$min_length;
}
?>
我试图做到的是,我有一个数据库的用户与他们的名字和唯一的身份证代码作为唯一的个人信息,他们有一个列表中的积分留在他们的帐户。我希望他们能够输入两条唯一(但不敏感)的信息,如他们的身份证号码和姓氏,并能够检索到他们的帐户中可用的点数。目前,代码并不能反映我计划中的所有数据,但有了它,我可以进行查找,其中两条信息必须正确才能显示结果。
我主要担心的是我在安全方面遗漏了一些东西。数据库中可用的信息不是很敏感。姓氏是常用的,唯一的身份证号码即使被其他人知道也没有什么价值。最坏的情况是,如果另一个用户能够将别人的姓氏与他们的身份证号码进行匹配,那么他们就能够查询他们的帐户中还剩下多少个点,而这些点的价值同样很小。
我这样想对吗?或者我应该尝试为这个项目实现一些更安全和复杂的东西?谢谢你的帮助。
1条答案
按热度按时间50few1ms1#
你是正确的,因为用户将能够访问其他用户的信息,所以这取决于你是否将存储任何敏感的用户信息,这些信息稍后将在用户之间访问。如果是这样的话,您只需要实现一些基本的用户注册功能/安全性,如果您是一个初学者,您最终还是会想研究一下。