PHP - 阻止用户的php页面

时间:2013-07-04 19:34:36

标签: php mysql database

我创建了一个只允许一个人使用的PHP页面,这没关系,但是当非允许用户在地址栏view-source: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>";
}
}

那么如何阻止用户查看源代码?

2 个答案:

答案 0 :(得分:5)

坦率地说,使用javascript“阻止”用户是愚蠢的。 javascript可以被禁用/忽略/绕过,就像你在view-source“hack”中看到的那样。如果您依靠 CLIENT 进行合作,则无法建立“安全”。

使用正确的服务器端身份验证,例如甚至HTTP basic authentication,以保护剧本。

答案 1 :(得分:2)

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

if ($alo == 2) {

}
else {
    // Redirect them by sending a HTTP Location header
    header("Location: www.yourdomain.com/path/to/another/page");
}

请注意,上述解决方案仅在{<1}}被调用之前任何输出发送到浏览器时才会起作用(必须在消息正文开始之前发送HTTP标头)。 此功能与您当前的解决方案非常相似,区别在于重定向是由服务器上的代码 而不是浏览器中的引起的header()允许有人绕过您的身份验证,因为它允许他们在浏览器中加载页面,而无需运行客户端代码。

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

您还需要了解客户端与服务器端代码的使用,以便掌握哪些任务及其原因。