【问题标题】:How to block/protect direct access via url? [duplicate]如何阻止/保护通过 url 的直接访问? [复制]
【发布时间】:2015-02-17 13:09:33
【问题描述】:

我一直在寻找有关如何阻止/保护页面不通过 url 直接访问的方法,但没有任何帮助。

这是一个示例:page 受到保护或阻止直接访问。我可以通过主页index.html查看该页面,但如果我复制并粘贴网址直接访问它,我将无法查看。


  • 这就是我想要的:
  • 我想阻止或保护文件夹/html 页面/文件不被直接访问,方法是重定向到主页 index.html 或在通过以下方式直接访问目录/页面/文件时发送 404 状态代码网址。

  • 我更喜欢通过发送 404 状态代码或重定向到我的 notfound.html 404 错误页面(如果不可能,重定向到主页)直接访问文件夹/html 页面/文件。

    李>
  • 我不介意使用php或其他任何东西,但我想留下我所有的页面.html


  • 我想阻止/保护直接访问:

  • http://mywebsite.com/pages 整个文件夹和所有 .html 页面 文件夹中。

  • http://mywebsite.com/images 整个文件夹和文件夹中的所有图像。 (.png、.ico、.jpg)。


我不想简单地重定向页面,因为可以查看源页面。

我真的需要这方面的帮助,请清楚如何...我目前正在学习所有这些东西。

【问题讨论】:

  • 当没有HTTP_REFERERdocument.referrer属性时,请求可能是直接命中。您无法安全地区分直接命中和非直接命中。
  • 这是一个难题。最直接的解决方案通常是登录系统
  • @DanFromGermany 我该怎么做?有什么帮助,我只想阻止直接访问。
  • @Pekka웃 我不需要登录系统,我只想阻止一个包含index.html 中使用的视频的简单页面,但我不希望它被观看通过 url 直接访问。
  • 查看重复链接;也 kb.mediatemple.net/questions/1694/… 用于纯粹基于 .htaccess 的解决方案

标签: .htaccess access-control


【解决方案1】:

当没有$_SERVER['HTTP_REFERER'] (PHP)、document.referrer (JavaScript) 属性时,请求可能是直接命中

无法安全地区分直接命中和非直接命中。例如,HTTP referrer 是一个标头,可以很容易地被客户端(用户)更改。

此外,一些域政策安全浏览器 > 默认情况下会强制删除阻止合法请求!

如果你打算这样做,PHP中最简单的情况是:

<?php
if (empty($_SERVER['HTTP_REFERER'])) {
    header('Location: /');
    exit;
}

您的网络服务器 (Apache .htaccess) 有类似的解决方案:

RewriteCond %{HTTP_REFERER} !=""
RewriteRule - [F]

(未测试!)

【讨论】:

    猜你喜欢
    • 2017-10-31
    • 2014-10-12
    • 2018-04-11
    • 2014-03-02
    • 1970-01-01
    • 2020-06-01
    • 2013-09-05
    • 1970-01-01
    • 2020-09-06
    相关资源
    最近更新 更多