php 怎么允许某些域名访问和获取访问的域名

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php 怎么允许某些域名访问和获取访问的域名相关的知识,希望对你有一定的参考价值。

有人通过php的file_get_contents函数,大量远程获取我的网页内容。

有什么办法可以设置 只允许某个域名访问?

php中 用file_get_contents 远程过来的 使用$_SERVER['HTTP_REFERER'] 获取不到。只能获取到自身的域名。

参考技术A 可以用$_SERVER[' HTTP_USER_AGENT ']来判断用户是否是用浏览器浏览,

另外可以用cookie来防止抓取,当用户没有发送cookie时重定向本页面,并设置cookie,需要用户带着cookie来才可以访问.
另外这两种方法都不能有效的杜绝页面被抓取,都可以通过模拟HTTP请求来抓取
参考技术B 你看看你的网站是否有木马和后门 参考技术C 看看User Agent是什么,然后封User Agent和恶意抓取人的IP追问

这个方法工作量太大,我需是一个能禁止代理的,只允许我设置的一个域名访问它、

我的页面是1.php

追答

只允许一个域名访问就白名单呗,只让这个域名绑定的IP访问。

PHP获取来路域名

<?php
$url = " http://127.0.0.1/license/rank.php";
$contents = file_get_contents($url);
echo $contents;
?>

rank.php怎么知道是来自哪个域名的文件在读取内容啊

$url = $_SERVER["HTTP_REFERER"]; //获取完整的来路URL

$str = str_replace("http://","",$url); //去掉http://
$strdomain = explode("/",$str); // 以“/”分开成数组
$domain = $strdomain[0]; //取第一个“/”以前的字符

用上面的方法才准确无误,如果你用PHP自带的函数就不对如:
$_SERVER['SERVER_NAME'] 这个函数它获取的是服务器域名
参考技术A $_SERVER['REQUEST_URI'] 访问的URL
$_SERVER['SERVER_NAME'] 服务器域名
参考技术B $_SERVER['REQUEST_URI'];
$_SERVER['PHP_SELF'].'?'.$_SERVER['argv'][0]
$_SERVER['PHP_SELF'].'?'.$_SERVER['QUERY_STRING']
参考技术C $url = $_SERVER["HTTP_REFERER"]; //获取完整的来路URL
请问这个要加一个什么参数同时获取https 和http 完整的URL?

以上是关于php 怎么允许某些域名访问和获取访问的域名的主要内容,如果未能解决你的问题,请参考以下文章

php 获取服务器计算机名和服务器域名

PHP跨域访问

JavaScript获取当前域名

nginx怎么配置IP和域名都能访问

微信域名检测,PHP随机获取微信能正常访问的域名

PHP怎么获取来源域名