【问题标题】:Get top-frame (address bar in browser) URL in PHP?在 PHP 中获取顶部框架(浏览器中的地址栏)URL?
【发布时间】:2012-05-02 18:21:45
【问题描述】:

对不起,我的英语不太好... 我需要一个简单的 PHP 程序的帮助:如果页面的 URL 包含特定的单词,则会显示内容。如果没有,则整个页面重定向。我会用它来防止我使用其他网站管理员制作的框架来“窃取”我的网站内容。 因为这没关系.. 但是我的一个朋友需要制作一个特定单词的黑名单,而不是白名单。因此,如果 URL 包含一个单词,则整个页面都会重定向。我尝试使用 *$_SERVER['HTTP_REFERER']* 但如果“小偷”将框架放在不在黑名单中的外部网站上,并且在他制作框架的框架后,会显示内容并且页面不会不要重定向.. 所以我认为是这样的: *$_SERVER['HTTP_REFERER']* 只能读取第一级框架而不是主页(顶部框架)。 我真的需要帮助,我不能用 Javascript 来做,因为我们想让代码不可见。

如果不可能,有没有一种方法可以将 JS 变量值传递给我的情况下的 PHP 变量?

提前谢谢你!

【问题讨论】:

  • ...将 JS 变量值传递给 PHP 变量...像 ajax 一样?
  • 如果你谷歌“php get url”,你会得到大量的结果告诉你如何做到这一点。

标签: php javascript url frame


【解决方案1】:

只有当且仅当顶级域与您的域相同时,javascript 才有可能。如果是这种情况,您可以对服务器进行 ajax 调用,传递 url,然后服务器可以确定是否重定向。

我更倾向于说服您反对这种方法,而不是展示代码的外观。如果您有不想让别人窃取的内容,您应该将您的网站设为非公开(即用户必须登录)。如果这不可能,那么您担心的内容听起来不应该出现在互联网上。

【讨论】:

  • 我准备了 AJAX,但我不知道如何使用 Javascript 来识别主框架 URL.. top.location.href,如果页面在框架中,则给我“未定义”值.. 有什么建议么? top.location.href 知道窗口网址是否正确?
  • @rickrack 仅当 iframe 和顶部窗口具有相同域时才正确。例如,iframe 有 src="example.com/something" 并且顶层窗口也在 example.com。
  • 感谢您的回复。所以用 PHP 或 Javascript 获取主 URL 是不可能的??
  • 听起来你知道你不会被 iframe 到同一个域中。所以不,您无法从客户端或服务器端获取顶级 url。 HTTP_REFERER 可以由调用者更改,因此不可信。出于安全原因,Javascript 不允许您以跨域方式进行通信。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-02-09
  • 2013-07-04
  • 1970-01-01
  • 2011-05-05
  • 2014-01-28
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多