如何拒绝任何人从URL访问?

时间:2011-08-12 15:05:03

标签: php .htaccess

它可能很容易......但是在.htaccess文件中写什么来阻止任何人从URL访问特定页面

喜欢

http://example.com?id=12

用户可能会更改网址中的ID值以访问其他网页,因此我想阻止该...

8 个答案:

答案 0 :(得分:1)

我认为你不能使用.htaccess文件。最好使用会话和/或cookie来控制对受限制内容的访问。

答案 1 :(得分:1)

我会编写一些代码PHP来处理这个问题,而不是.htaccess规则。

这样的事情会起作用:

if(array_key_exists('id', $_GET) {
  if($_GET['id'] === 12)
    die("Cannot view this page");
}

答案 2 :(得分:1)

对PHP中的身份验证和访问控制进行一些研究。有人能够在这里给你一个代码片段或简短的答案,这有点复杂。

如果您的代码遇到特定问题,无法实施所学知识,那么这就是寻求帮助的地方。

答案 3 :(得分:0)

你不能因为用户可以看到id并向其他选项卡输入相同的内容并访问,有一种方法可以防止编辑,但是就不访问而言,创建一个php文件并阻止每个id = 12个请求,或者您要阻止的任何请求。

答案 4 :(得分:0)

同意如果允许用户访问特定页面,这更像是服务器端问题。使用.htaccess规则会变得非常复杂。

为什么不尝试这样的事情:

<?php
  $allow = array(12, 13); // values that you want to allow access to
  if ( in_array($_GET['id'], $allow) !== true ) {
    die("Access denied.");
  }
?>

答案 5 :(得分:0)

这可能会成功

RewriteEngine on
RewriteRule ^/?id=12$ /denied [L]

如果存在查询参数,它至少会阻止调用脚本,这比允许命中实际到达脚本稍微安全一些。

答案 6 :(得分:0)

您可以通过PHP执行此操作:

<?php
$denied = array(12);
if (isset($_GET['id']) && in_array($_GET['id'], $denied)) {
    header('HTTP/1.1 403 Forbidden');
    exit;
}
?>

答案 7 :(得分:-1)

您可以使用post方法,因此用户不知道文件之间传递了什么变量。