【问题标题】:Make sure URL originates from same server [duplicate]确保 URL 来自同一服务器 [重复]
【发布时间】:2013-08-19 12:18:05
【问题描述】:

也许我不知道如何正确地表达我的搜索,但这是我需要做的:确保当用户点击我的广告时,它只来自一个特定的网站,否则返回 false 或错误.

FILTER_VALIDATE_URL

这只是确保 URL 有效;我想确保它只来自 www.example.com 或 example.com 等,而不是来自其他地方。

【问题讨论】:

  • 可以使用HTTP Referer Header但不能依赖,应该明白http是无状态协议

标签: php validation


【解决方案1】:

您可以简单地使用 $_SERVER['HTTP_REFERER'] 然后使用 PHP 的 parse_url 函数并为您的 url 使用条件

例如:

$url = $_SERVER['HTTP_REFERER'];

if ( $parts = parse_url($url ) ) {
    $host = $parts[ "host" ];
if($host == 'www.example.com' || $host == 'example.com'){
  //... your action
}

}

参考:Extract Scheme and Host from HTTP_REFERER

【讨论】:

  • 只要你不介意它并不总是正确的。
  • @Dagon 先生是什么意思?
  • 你永远不能依赖 $_SERVER['HTTP_REFERER'],它是浏览器设置的,并且经常被剥离
  • 请原谅我的无知,但如果我希望它来自 www.example.com,或者仅来自 example.com,这应该可行,对吧?裸体与否。
  • 它有时会起作用。超过 50% 但低于 100% 我不想说得更具体。
猜你喜欢
  • 1970-01-01
  • 2014-03-18
  • 2012-05-06
  • 2010-11-13
  • 2019-03-31
  • 1970-01-01
  • 2017-01-19
  • 2014-02-20
  • 1970-01-01
相关资源
最近更新 更多