【问题标题】:Need advice with php to redirect user to 404 if he changes or removes the key or var如果用户更改或删除密钥或 var,需要 php 建议将用户重定向到 404
【发布时间】:2015-12-23 21:01:35
【问题描述】:

我有一个网站:

www.abc.com

一个 php 文件托管在另一个站点 www.xyz.com 中,该 php 文件的链接是:

www.xyz.com/folder/thefile.php

我在thefile.php 中放了一个php 函数。所以要使用该文件,人们必须来到www.abc.com。在这里,我将链接设置为:

www.xyz.com/folder/thefile.php?file=123456
www.xyz.com/folder/thefile.php?file=789654 and so on

每当有人点击这些链接时,变量 'file' 的值就会在thefile.php 的 php 函数中被调用并执行并显示视频或图像。

现在,例如,对于第一种情况,该值为“123456”。如果有人将值“123456”编辑为“1234”或“65431”等,甚至会向他们显示 php 文件。此外,如果用户只是访问www.xyz.com/folder/thefile.php 而没有变量'file',即使这样,php 文件也会显示给他们。

现在我想要做的是,如果一个人编辑 url 或尝试仅访问 www.xyz.com/folder/thefile.php,那么它应该将他带到某个 404 页面或其他页面。 我该怎么做?

【问题讨论】:

  • 您可以使用.htaccess 拒绝访问者,除非他们来自特定的推荐人:stackoverflow.com/questions/15671521/…
  • @Starkeen:您好!这次真是万分感谢。它工作得非常好。但是有一个问题。我的意思是在 thefile.php 中放置了用于显示广告的 adsense 代码。现在,以前跟踪此文件中的点击次数和查看次数,我获得了收入。在我使用这种方法拒绝访问者(除非他们来自特定的推荐人)之后,广告点击和浏览量根本没有被跟踪。这个你能帮我吗!我需要添加什么或做什么才能跟踪广告点击次数和浏览量。谢谢...

标签: php jquery .htaccess redirect http-status-code-404


【解决方案1】:

将没有“文件”参数的用户发送到404页面相对容易。

if (!isset($_GET['file'])){
    header("Location: 404.php");
}

我看不到任何简单的方法来验证用户没有篡改 URL。您可以确保推荐人是您的 abc.com 网站,但这一点也不安全,因为用户可以修改它。

如果我站在你的立场上,由于没有更好的解决方案,我会让 abc.com 保存并发送一个随机散列,其中包含将用户发送到 xyz.com 的链接。然后 xyz.com 可以轮询 abc.com 以验证哈希是否有效。 ABC 可以返回实际的文件 ID。具有无效哈希的用户将获得 a=重定向。基本上,如果您需要证明链接有效,我会寻找一种可以绕过用户的通信媒介。

【讨论】:

  • 您好!我在我的 php 函数中使用了这个方法,它适用于这个:如果用户试图只访问 www.xyz.com/folder/thefile.php ,那么它会将他们带到 404 页面。但是,如果用户编辑文件值,那么它只会留在那里。
【解决方案2】:

在你的 Root/.htaccess 中试试这个

RewriteEngine on
RewriteCond %{QUERY_STRING} ^$
RewriteRule ^folder/thefile\.php$ - [NC,L,R=404]

【讨论】:

  • 您好!我应该在哪里使用这个?我的意思是我应该在 www.xyz.com/folder/.htaccess 中使用吗?或 www.xyz.com/.htaccess ? ....我看到 www.xyz.com/.htaccess 中有代码...所以你能告诉我应该在哪里以及如何添加这个代码吗?
  • 你可以把它放在 example.com/htaccess bellow 或上面其他规则。
猜你喜欢
  • 2020-12-15
  • 2022-09-29
  • 1970-01-01
  • 2020-01-31
  • 1970-01-01
  • 2021-06-15
  • 1970-01-01
  • 2021-01-16
  • 1970-01-01
相关资源
最近更新 更多