我需要为我的网站制作一个完全正常的限制区域,只有注册的登录成员才能访问。受限制的页面将使用PHP从MySQL数据库中提取数据。
我一直在寻找一种方法,找到许多无用的结果。我发现的大部分内容都是不安全的,过时的或只是处理过程的一个非常具体的领域。花费数小时研究这样做的方法是非常令人沮丧的,但却发现他们已经使用了一些不安全的方法并且它完全没用。所以我希望得到经验丰富的stackoverflow社区的意见,让我指出正确的方向。
所以我的问题是: 知道成千上万的网站具有完全相同的“注册,登录,授予对页面A,B和C的访问权限,注销”事件组合,是否有一种普遍接受的方式来设置它(如果没有,为什么不)?这是:http://www.wikihow.com/Create-a-Secure-Login-Script-in-PHP-and-MySQL实现这一目标的“好”方法(假设我弄清楚如何让它发挥作用)?
页面/数据库不会包含任何信用卡号或其他敏感信息,所以我认为我不会有成千上万的黑客不断攻击该网站,但我显然希望保持合理的安全级别。我一直小心翼翼地避免在数据库方面发生SQL注入攻击的可能性。
非常感谢, 保罗
答案 0 :(得分:0)
试试这个。 的的login.php 强>
<form action="check.php" method="post">
<table border="0" cellpadding="0" cellspacing="0" style="margin-left:auto; margin-right:auto;">
<tr><td>Nickname:</td><td><input type="text" id="usernaame" name="usernaame"></td></tr>
<tr><td>Password:</td><td><input type="password" id="passworrd" name="passworrd"></td></tr>
<tr><td colspan="2"><input type="submit" value="Login" class="button"></td></tr></table>
</form>
<br><a href="register.php"><button>Register</button></a></div>
<强> check.php 强>
<?php
session_start();
$user = htmlspecialchars(addslashes($_POST['usernaame']));
//you can also edit password encryption
$password = htmlspecialchars(addslashes(md5(sha1($_POST['passworrd']))));
//put here your query
$query = mysqli_query();
if(mysqli_num_rows($query)=="1"){
$_SESSION['logged'] = $user;
}
else{echo 'Data is incorrect';}
?>
index.php (受保护的内容是)
<?php
session_start();
if(!isset($_SESSION['logged'])){echo 'Please login';}
else{
//your private content here
}
?>