如何防止直接URL访问?

发布于 2024-11-04 23:06:57 字数 188 浏览 0 评论 0原文

请帮助我解决热链接问题,如何防止直接访问此 URL 并将访问者重定向到 index.php:

http://www.example.com/index.php?link=http://www.anysite.com/dir/file&name=on&email=on&submit=on

Please help me to resolve hotlinking, how to prevent direct access to this URL and redirect visitors to index.php:

http://www.example.com/index.php?link=http://www.anysite.com/dir/file&name=on&email=on&submit=on

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

如果没有你 2024-11-11 23:06:57

你在寻找这样的东西吗:

if(!strpos('mysite.com',$_SERVER["HTTP_REFERER"])) header('Location: index.php')

are you searching for something like this:

if(!strpos('mysite.com',$_SERVER["HTTP_REFERER"])) header('Location: index.php')
↙温凉少女 2024-11-11 23:06:57

为了回答这个问题,我假设您不关心同一用户是否访问
多次(前提是第一次访问来自主索引页面)。这也假设用户将接受 cookie。

在主索引页面上时:

  1. 在 index.php 上启动一个会话,
  2. 在会话中放入一些随机值。例如: md5(microtime()) = af1929191...
  3. 还将该随机值作为另一个参数放入每个 url 中,例如:index.php?verify=af19...&link=http://foo.com

加载时url:

  1. 检查是否“验证”
    如果不存在则设置参数,
    将它们重定向回主索引
    页。或者更有帮助的是,既然你正在创造一种奇怪的行为,那就向他们展示
    一条错误消息,指示您正在做什么以及为什么。
  2. 启动
    会话并确保该值
    在他们的会话中匹配该值
    在网址中。

For purposes of answering this, I'm going to assume you don't care if the same user accesses
it multiple times (provided that the first visit came through the main index page). This also assumes the user will accept a cookies.

When on the main index page:

  1. start up a session on index.php
  2. put some random value inside their session. eg: md5(microtime()) = af1929191...
  3. also put that random value inside each url as another parameter eg: index.php?verify=af19...&link=http://foo.com

When loading a url:

  1. check to see if the "verify"
    param is set if it isn't there,
    redirect them back to main index
    page. Or more helpfully, since you are creating a weird behavior, show them
    a error message indicating what you are doing, and why.
  2. Start up the
    session and make sure that the value
    in their session matches the value
    in the url.
且行且努力 2024-11-11 23:06:57

使用 htaccess 文件是解决此问题的常见方法:
来自 http://altlab.com/htaccess_tutorial.html
该代码特别会重定向任何试图热链接图像的人。

RewriteEngine On
RewriteCond %{HTTP_REFERER} !^http://(.+\.)?mysite\.com/ [NC]
RewriteCond %{HTTP_REFERER} !^$
RewriteRule .*\.(jpe?g|gif|bmp|png)$ http://img148.imageshack.us/img148/237/hotlinkp.gif [L]

Using an htaccess file is a common solution to this problem:
from http://altlab.com/htaccess_tutorial.html
This code in particular redirects anyone trying to hotlink an image.

RewriteEngine On
RewriteCond %{HTTP_REFERER} !^http://(.+\.)?mysite\.com/ [NC]
RewriteCond %{HTTP_REFERER} !^$
RewriteRule .*\.(jpe?g|gif|bmp|png)$ http://img148.imageshack.us/img148/237/hotlinkp.gif [L]
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文