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 相关文章推荐
构建简单的Webmail系统
Oct 09 PHP
PHP文件读写操作之文件写入代码
Jan 13 PHP
PHP 数组和字符串互相转换实现方法
Mar 26 PHP
解析PHP计算页面执行时间的实现代码
Jun 18 PHP
php判断手机访问还是电脑访问示例分享
Jan 20 PHP
免费手机号码归属地API查询接口和PHP使用实例分享
Apr 10 PHP
PHP判断远程图片是否存在的几种方法
May 04 PHP
Linux下安装PHP MSSQL扩展教程
Oct 24 PHP
Thinkphp自定义代码生成工具及用法说明(附下载地址)
May 27 PHP
PHP laravel中的多对多关系实例详解
Jun 07 PHP
PHP基于SPL实现的迭代器模式示例
Apr 22 PHP
thinkphp5框架实现的自定义扩展类操作示例
May 16 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
如何在PHP中使用Oracle数据库(6)
2006/10/09 PHP
《PHP编程最快明白》第六讲:Mysql数据库操作
2010/11/01 PHP
php快递单号查询接口使用示例
2014/05/05 PHP
php可生成缩略图的文件上传类实例
2014/12/17 PHP
PHP+JS实现的商品秒杀倒计时用法示例
2016/11/15 PHP
CLASS_CONFUSION JS混淆 全源码
2007/12/12 Javascript
JavaScript 三种不同位置代码的写法
2009/10/25 Javascript
JQuery的Validation插件中Remote验证的中文问题
2010/07/26 Javascript
js读写(删除)Cookie实例详解
2013/04/17 Javascript
js 动态修改css文件的方法
2014/08/05 Javascript
javascript制作sql转换为stringBuffer的小工具
2015/04/03 Javascript
AngularJS基础知识笔记之过滤器
2015/05/10 Javascript
使用AngularJS和PHP的Laravel实现单页评论的方法
2015/06/19 Javascript
jquery实现的判断倒计时是否结束代码
2016/02/05 Javascript
谈一谈JS消息机制和事件机制的理解
2016/04/14 Javascript
Jquery元素追加和删除的实现方法
2016/05/24 Javascript
简单封装js的dom查询实例代码
2016/07/08 Javascript
js实现消息滚动效果
2017/01/18 Javascript
微信小程序中子页面向父页面传值实例详解
2017/03/20 Javascript
nodejs6下使用koa2框架实例
2017/05/18 NodeJs
Easyui Datagrid自定义按钮列(最后面的操作列)
2017/07/13 Javascript
vue单页应用的内存泄露定位和修复问题小结
2019/08/02 Javascript
微信小程序官方动态自定义底部tabBar的例子
2019/09/04 Javascript
理解Python中的With语句
2015/02/02 Python
python实现监控某个服务 服务崩溃即发送邮件报告
2018/06/21 Python
python mysql自增字段AUTO_INCREMENT值的修改方式
2020/05/18 Python
CSS3轻松实现圆角效果
2017/11/09 HTML / CSS
美国奢侈品在线团购网站:Gilt City
2017/11/16 全球购物
装潢设计专业推荐信模板
2013/11/26 职场文书
艺术设计专业个人求职信
2014/04/10 职场文书
学雷锋的心得体会
2014/09/04 职场文书
商业门面租房协议书
2014/11/25 职场文书
高中班主任评语
2014/12/30 职场文书
2015年挂职锻炼个人总结
2015/10/22 职场文书
golang import自定义包方式
2021/04/29 Golang
Ruby处理CSV数据方法详解
2022/04/18 Ruby