PHP-阻止用户访问PHP页面

PHP-阻止用户访问PHP页面,php,mysql,database,Php,Mysql,Database,我创建了一个只允许一个人使用的PHP页面,这没关系,但是当不允许的用户写入地址栏查看源代码:tstwebsite.com/test/page.PHP时,它会向用户显示页面的源代码,我可以阻止用户使用源代码吗?这是我的代码,只允许一个用户使用此页面 $aiwab = mysql_query("SELECT * FROM `table`"); while($aiwa = mysql_fetch_array($aiwab)){ $alo = $aiwa['allowed']; if ($alo ==

我创建了一个只允许一个人使用的PHP页面,这没关系,但是当不允许的用户写入地址栏
查看源代码:tstwebsite.com/test/page.PHP
时,它会向用户显示页面的源代码,我可以阻止用户使用源代码吗?这是我的代码,只允许一个用户使用此页面

$aiwab = mysql_query("SELECT * FROM `table`");
while($aiwa = mysql_fetch_array($aiwab)){
$alo = $aiwa['allowed'];
if ($alo == 2 ){

}else{
echo "<script>javascript:history.go(-1)</script>";
}
}
$aiwab=mysql\u查询(“从“表”中选择*”;
而($aiwa=mysql\u fetch\u数组($aiwab)){
$alo=$aiwa[‘允许’];
如果($alo==2){
}否则{
echo“javascript:history.go(-1)”;
}
}
那么,我如何才能阻止用户查看源代码呢?

坦率地说,使用javascript“阻止”用户是愚蠢的。javascript可以被禁用/忽略/绕过,正如您在视图源代码“hack”中看到的那样。如果您依赖客户进行合作,则永远无法建立“安全性”


使用适当的服务器端身份验证(例如偶数)来保护脚本。

如果您只想快速将此从客户端身份验证更改为服务器端身份验证,则可以进行以下更改:

if ($alo == 2) {

}
else {
    // Redirect them by sending a HTTP Location header
    header("Location: www.yourdomain.com/path/to/another/page");
}
请注意,只有在将任何输出发送到浏览器之前调用了
header()
,上述解决方案才会起作用(必须在消息正文开始之前发送HTTP头)。 这与当前的解决方案非常相似,不同之处在于重定向是由服务器上的代码而不是浏览器中的代码引起的<代码>查看源代码允许用户绕过您的身份验证,因为它允许用户在浏览器中加载页面,而无需运行客户端代码

这只是一个快速修复程序,应该有助于说明客户端和服务器端身份验证之间的区别。如果这不仅仅是为了搞乱和学习一点代码,那么您真的应该学习更多关于安全性的知识。另外请注意,您正在使用的mysql函数目前已被弃用,您应该改用
mysqli
pdo


您还需要阅读客户端代码与服务器端代码的使用情况,以便了解用于哪些任务的内容以及原因。

仅通过在PHP代码中使用会话和引入身份验证机制。使用mysqli或pdo进行查询!换句话说,如果您将数据发送到客户机,然后进行安全检查,那么您的顺序是错误的。