PHP实现限制域名访问的实现代码(本地验证)


Posted in PHP onSeptember 13, 2020

用PHP编写好的源码,如果不想被其它人直接利用怎么办?首先想到的是加密,但现在除了Zend 5加密还比较难破解外,其它的加密方式都不堪一击。即使不破解,不怀好意的人同样可以使用你的源码搭建一个和你一模一样的一个网站。这岂不是使你的劳动成果白白的被别人占为己有。下面介绍一种方法即限制域名的方法来保护你的源代码不被直接拷贝运行。

如何通过程序限制域名从而保护源码呢?比如你所做的网站将来要使用的是3water.com,如果PHP的程序丢失了,即使其它人使用你的PHP源码,如果判断的域名不正确,也无法运行,同时将源码加密起来,这样就万无一失了。

PHP程序限制域名的程序源码如下:

下面就来分享一下实现代码

1、限制域名访问方法一

<?php 
if(!in_array($_SERVER['HTTP_HOST'],array('test.com','www.test.com'))){
	exit('建站请联系:http://www.test.com');
} 
?>

2、限制域名访问方法二

function allow_domain(){
	$is_allow=false;
	$servername=trim($_SERVER['SERVER_NAME']);
	$Array=array("localhost","127.0.0.1","test.com","test1.com");
	foreach($Array as $value){
		$value=trim($value);
		$domain=explode($value,$servername);
		if(count($domain)>1){
			$is_allow=true;
			break;
		}
	}
	if(!$is_allow){
		die("<center>仅限本地使用!需要域名授权请联系3water.com");
	}
}
allow_domain();

然后用zend加密,其他加密容易被破解。

PHP实现域名授权的两种方法

01. 在线校验域名授权的方法:

客户端代码:

<?php
//获取不带端口号的域名前缀
$servername = trim($_SERVER['SERVER_NAME']);
//获取服务端授权文件校验
$verifyurl = file_get_contents('//3water.com/zb_users/upload/copyright.php?domain='.$servername);
if(!empty($verifyurl)){
	echo "已授权!"; //授权成功
}else{
	die("未授权!"); //授权失败
}
?>

服务端代码:

<?php
//获取域名
$domain = $_GET['domain'];
//授权域名列表
$Array = array('127.0.0.1','localhost');
//校验结果
echo in_array($domain, $Array) ? 'yes' : '';
?>

域名授权代码可封装进函数,或者进行加密,对于常用的PHP加密形式,都有其破解的方法,比如ZendGuard、ionCube等,如果授权的域名较多,可以在项目中增加域名字段,将域名写入数据库再进行读取和校验,此方法我们已发布成独立的插件,详见:ZBlogPHP域名授权插件-AllowURL, 通过插件可以将域名等信息添加到数据库中进行校验。

02. 独立校验域名授权的方法:

<?php
function allow_domain(){
	$is_allow=false;
	//获取不带端口号的域名前缀
	$servername=trim($_SERVER['SERVER_NAME']);
	//授权域名列表
	$Array=array("localhost","127.0.0.1");
	//遍历数组
	foreach($Array as $value){
		$value=trim($value);
		$domain=explode($value,$servername);
		if(count($domain)>1){
			$is_allow=true;
			break;
		}
	}
	if(!$is_allow){
		die("域名未授权!"); //授权失败
	}else{
		echo "域名已授权!"; //授权成功
	}
}
allow_domain();
?>

域名授权的目的在于保护知识产权,鼓励开发者能够发布更多优秀的作品,推动整个网络社会的文化发展与科技进步,有着十分重要的意义。

到此这篇关于PHP实现限制域名访问的实现代码(本地验证)的文章就介绍到这了,更多相关PHP限制域名访问内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

PHP 相关文章推荐
PHP读取目录下所有文件的代码
Jan 07 PHP
How do I change MySQL timezone?
Mar 26 PHP
PHP中MD5函数使用实例代码
Jun 07 PHP
PHP 木马攻击防御技巧
Jun 13 PHP
PHP MYSQL乱码问题,使用SET NAMES utf8校正
Nov 30 PHP
PHP set_time_limit(0)长连接的实现分析
Mar 02 PHP
ThinkPHP调用百度翻译类实现在线翻译
Jun 26 PHP
PHP获取ip对应地区和使用网络类型的方法
Mar 11 PHP
php开发工具有哪五款
Nov 09 PHP
100多行PHP代码实现socks5代理服务器[2]
May 05 PHP
理解php依赖注入和控制反转
May 11 PHP
PHP切割整数工具类似微信红包金额分配的思路详解
Sep 18 PHP
PHP $O00OO0=urldecode &amp; eval 解密,记一次商业源码的去后门
Sep 13 #PHP
PHP重载基础知识回顾
Sep 10 #PHP
PHP反射基础知识回顾
Sep 10 #PHP
PHP获取类私有属性的3种方法
Sep 10 #PHP
php实现图片压缩处理
Sep 09 #PHP
如何在PHP中读写文件
Sep 07 #PHP
PHP延迟静态绑定使用方法实例解析
Sep 05 #PHP
You might like
手把手教你使用DedeCms V3的在线采集图文教程
2007/04/03 PHP
功能齐全的PHP发送邮件类代码附详细说明
2008/07/10 PHP
PHP提取数据库内容中的图片地址并循环输出
2010/03/21 PHP
php生成局部唯一识别码LUID的代码
2012/10/06 PHP
php实现微信支付之企业付款
2018/05/30 PHP
jQuery Study Notes学习笔记 (二)
2010/08/04 Javascript
解决js正则匹配换行问题实现代码
2012/12/10 Javascript
用JQuery实现全选与取消的两种简单方法
2014/02/22 Javascript
javascript中Math.random()使用详解
2015/04/15 Javascript
jQuery ajax请求返回list数据动态生成input标签,并把list数据赋值到input标签
2016/03/29 Javascript
javascript事件冒泡简单示例
2016/06/20 Javascript
AngularJS 模型详细介绍及实例代码
2016/07/27 Javascript
Angular实现点击按钮后在上方显示输入内容的方法
2017/12/27 Javascript
vue组件实践之可搜索下拉框功能
2018/11/25 Javascript
微信小程序实现带参数的分享功能(两种方法)
2019/05/17 Javascript
vue中使用WX-JSSDK的两种方法(推荐)
2020/01/18 Javascript
[43:26]完美世界DOTA2联赛PWL S2 Forest vs Rebirth 第二场 11.20
2020/11/23 DOTA
Python入门篇之编程习惯与特点
2014/10/17 Python
Python中基础的socket编程实战攻略
2016/06/01 Python
分析Python读取文件时的路径问题
2018/02/11 Python
pyQt4实现俄罗斯方块游戏
2018/06/26 Python
对python多线程中Lock()与RLock()锁详解
2019/01/11 Python
Pandas之DataFrame对象的列和索引之间的转化
2019/06/25 Python
python3模拟实现xshell远程执行liunx命令的方法
2019/07/12 Python
python判断元素是否存在的实例方法
2020/09/24 Python
Max&Co官网:意大利年轻女性时尚品牌
2017/05/16 全球购物
优衣库台湾官网:UNIQLO台湾
2019/02/01 全球购物
LORAC官网:美国彩妆品牌
2019/08/27 全球购物
领导的自我鉴定
2013/12/28 职场文书
小学中秋节活动方案
2014/02/06 职场文书
学习2014年全国两会心得体会
2014/03/12 职场文书
2014年车间主任工作总结
2014/12/10 职场文书
幼儿园家长反馈意见
2015/06/03 职场文书
关于HTML编码导致的乱码问题
2021/09/04 HTML / CSS
python基础之类属性和实例属性
2021/10/24 Python
Python尝试实现蒙特卡罗模拟期权定价
2022/04/21 Python