是否有一个简单的脚本,只允许来自我选择的网站的访问者访问?PHP脚本只允许来自某个域的流量?
回答
您可以使用$_SERVER['http_referer']
但这可以很容易伪造。
如果您获取了他们的引荐来源信息,您可以根据已接受的网站来源列表对其进行检查,并将其重定向到他们来自的网站(如果您不需要)。
$_SERVER["HTTP_REFERER"]
检查引用是完成这一任务的最可靠的方法,但你应该知道,并不是所有的用户代理(也称为浏览器)发送完整的或正确的引用。
事情是这样的:
$target_site = 'http://www.google.com';
if (isset($_SERVER['HTTP_REFERER']) && preg_match("/$target_site/",$_SERVER['HTTP_REFERER'])) {
// do something with people from google.com
} else {
// do something else with everyone else
}
了解更多关于它:http://www.electrictoolbox.com/php-http-referer-variable/
PHP手册上$_SERVER
超全局:http://php.net/manual/en/reserved.variables.server.php
为了增加您的第一点,我曾因为某些原因将Chrome返回'favicon.ico'作为引用者。 – 2011-04-25 16:10:40
我将如何修改该代码,将好用户重定向到我的网站,并将不允许的用户重定向到错误页面? – don3434 2011-04-25 16:22:47
使用php命令'header'。例如:'header('location:http://www.gotothissite.com');'。请参阅手册:http://php.net/manual/en/function.header.php – 2011-04-25 16:29:17
- 1. 只允许来自特定域
- 2. 只允许来自引荐网址的流量
- 3. php只允许访问某个文件?
- 4. PHP - 只允许从一个域访问
- 5. 只允许来自某个URL的表单提交? (iframe,Laravel)
- 6. 只允许来自某个URL的请求
- 7. PHP - 变量,只允许文本
- 8. 只允许PHP中的某些字符
- 9. 只允许一个python脚本实例?
- 10. 只允许一个脚落
- 11. 只允许链接的文本字段的PHP脚本
- 12. iptables是否只允许某个域名的DNS查询?
- 13. 只允许某个字的验证
- 14. 只允许来自特定电子邮件域的注册
- 15. 只允许某些服务器/网站连接到脚本
- 16. 只允许某些事件
- 17. 只允许某些字符
- 18. 只允许某个域名访问网络api
- 19. 允许来自Azure中的登台槽中的webjob的流量
- 20. socket.io安全性 - 可能只允许来自特定域?
- 21. 只允许某个UIGestureRecognizer一次执行
- 22. 允许跨域脚本和访问两个域
- 23. 只允许脚本访问文件iis7.5
- 24. 允许一个脚本来通过多个版本的Python
- 25. 只允许我的服务器执行PHP脚本
- 26. 只允许在一个领域
- 27. 只允许填写x个表单域
- 28. 只允许某个用户访问Kentico中的某个页面
- 29. 只允许一个python脚本的1个实例
- 30. 只允许1调用PowerShell脚本来运行
@布赖恩但绝对没有错,要求对堆栈溢出这个问题。 (这是一个非常懒惰的问题,说。 – 2011-04-25 15:59:29
@middaparka我同意,但这个问题有相当广泛的网络上的其他来源的覆盖面,所以我没有看到在这里消耗更多的资源的一点。因此,我的建议。 – 2011-04-25 16:01:05
@Brian Driscoll:请停止告诉人们谷歌。这个网站是谷歌最好的搜索结果之一,如果你知道它,只是链接到一个页面,否则这是没有用的。 *(假设“最喜欢的搜索引擎”是谷歌) – 2011-04-25 16:03:43