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 相关文章推荐
BBS(php &amp; mysql)完整版(三)
Oct 09 PHP
PHP页面间传递参数实例代码
Jun 05 PHP
一些PHP Coding Tips(php小技巧)[2011/04/02最后更新]
May 02 PHP
探讨php define()函数及defined()函数使用详解
Jun 09 PHP
解析PHP中$_FILES的使用以及注意事项
Jul 05 PHP
PHP对XML内容进行修改和删除实例代码
Oct 26 PHP
ThinkPHP中create()方法自动验证表单信息
Apr 28 PHP
php正确输出json数据的实例讲解
Aug 21 PHP
PHP实现微信对账单处理
Oct 01 PHP
PHP htmlentities()函数用法讲解
Feb 25 PHP
php使用pthreads v3多线程实现抓取新浪新闻信息操作示例
Feb 21 PHP
imagettftext() 失效,不起作用
Mar 09 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
用Apache反向代理设置对外的WWW和文件服务器
2006/10/09 PHP
php简单封装了一些常用JS操作
2007/02/25 PHP
解析php中var_dump,var_export,print_r三个函数的区别
2013/06/21 PHP
PHP-Fcgi下PHP的执行时间设置方法
2013/08/02 PHP
Smarty缓存机制实例详解【三种缓存方式】
2019/07/20 PHP
Alliance vs AM BO3 第二场2.13
2021/03/10 DOTA
Iframe 自适应高度并实时监控高度变化的js代码
2009/10/30 Javascript
浅谈tudou土豆网首页图片延迟加载的效果
2010/06/23 Javascript
Prototype源码浅析 String部分(三)之HTML字符串处理
2012/01/15 Javascript
js 定位到某个锚点的方法
2016/11/19 Javascript
jQuery插件zTree实现获取当前选中节点在同级节点中序号的方法
2017/03/08 Javascript
js利用for in循环获取 一个对象的所有属性以及值的实例
2017/03/30 Javascript
JavaScript使用atan2来绘制箭头和曲线的实例
2017/09/14 Javascript
基于node搭建服务器,写接口,调接口,跨域的实例
2018/05/13 Javascript
css配合JavaScript实现tab标签切换效果
2018/10/11 Javascript
ES6 Symbol数据类型的应用实例分析
2019/06/26 Javascript
JavaScript面向对象中接口实现方法详解
2019/07/24 Javascript
微信小程序 子级页面返回父级并把子级参数带回父级实现方法
2019/08/22 Javascript
vue.js iview打包上线后字体图标不显示解决办法
2020/01/20 Javascript
在vue中使用el-tab-pane v-show/v-if无效的解决
2020/08/03 Javascript
axios封装与传参示例详解
2020/10/18 Javascript
小程序自定义圆形进度条
2020/11/17 Javascript
2018年Python值得关注的开源库、工具和开发者(总结篇)
2018/01/04 Python
Python实现中一次读取多个值的方法
2018/04/22 Python
python和mysql交互操作实例详解【基于pymysql库】
2019/06/04 Python
Python替换月份为英文缩写的实现方法
2019/07/15 Python
Pytorch高阶OP操作where,gather原理
2020/04/30 Python
TensorFlow keras卷积神经网络 添加L2正则化方式
2020/05/22 Python
澳大利亚免息网上购物:Shop Zero
2016/09/17 全球购物
药学专业个人自我评价
2013/11/11 职场文书
高级方案规划工程师岗位职责
2013/11/29 职场文书
《掌声》教学反思
2014/02/23 职场文书
法人单位适用的授权委托书
2014/09/19 职场文书
2014年个人总结范文
2015/03/09 职场文书
信仰观后感
2015/06/03 职场文书
基于PostgreSQL/openGauss 的分布式数据库解决方案
2021/12/06 PostgreSQL