php 怎么允许某些域名访问和获取访问的域名
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php 怎么允许某些域名访问和获取访问的域名相关的知识,希望对你有一定的参考价值。
有人通过php的file_get_contents函数,大量远程获取我的网页内容。
有什么办法可以设置 只允许某个域名访问?
php中 用file_get_contents 远程过来的 使用$_SERVER['HTTP_REFERER'] 获取不到。只能获取到自身的域名。
另外可以用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怎么知道是来自哪个域名的文件在读取内容啊
$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 怎么允许某些域名访问和获取访问的域名的主要内容,如果未能解决你的问题,请参考以下文章