我想阻止用户在Javascript中直接看到PHP URL。 示例:
{
$.ajax(
{
type: "POST",
url: "search.php",
data: dataString,
cache: false,
success: function(html)
{
$("#display").html(html).show();
}
});
}return false;
当他/她查看我的页面来源时,是否有可能或以任何方式阻止用户看到php URL?有时用户可能会尝试直接打开php url。
感谢您的帮助。
答案 0 :(得分:3)
我(或任何客户端)仍然可以使用任意数量的工具来解决它(包括在99%的浏览器中构建的内置调试器) - 不值得对它进行模糊处理。
如果您担心直接访问,请在脚本中检查an AJAX request。 (仍然是黑客,但这是一个开始)。正如previous answer:
中所提供的那样<?php
$isAjax = isset($_SERVER['HTTP_X_REQUESTED_WITH'])
&& strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) === 'xmlhttprequest';
if (!$isAjax) die('Unauthorized access');
/* rest of search.php */
答案 1 :(得分:0)
好的事情要清楚......
如果您遇到问题,您可以做的是检查$ _POST和$ _GET参数是否在到达您的PHP代码时有效,从而使每个POST和GET请求有效且安全。它有点像这样
<?php
if(isset($_POST['username']) && isset($_POST['password'])){
//everything seems fine
echo 'ok';
}
else{
//someone is doing a direct acess
header('index.php');
}
?>
或检查会话以仅为登录用户保护您的网页
<?php
if(isset($_SESSION['userid'])){
//everything seems fine
echo 'ok';
}
else{
//someone is doing a direct acess
header('index.php');
}
?>
答案 2 :(得分:0)
如评论中所述,
我们如何阻止用户直接打开PHP网址?
你应该在php中创建一个非常长的随机字符串(令牌)的会话,并将其传递给js ajax函数,以便它将令牌与ajax请求一起发送。在服务器端,您可以检查是否生成了相同的令牌。您可能希望尽快使令牌过期。
我不知道,如果它是标准的方式,但可以为你提供一个开始。