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 相关文章推荐
PHP6 先修班 JSON实例代码
Aug 23 PHP
php 变量定义方法
Jun 14 PHP
PHP Class&amp;Object -- 解析PHP实现二叉树
Jun 25 PHP
php 修改、增加xml结点属性的实现代码
Oct 22 PHP
PHP实现搜索相似图片
Sep 22 PHP
php采用session实现防止页面重复刷新
Dec 24 PHP
PHP函数checkdnsrr用法详解(Windows平台用法)
Mar 21 PHP
Yii2中hasOne、hasMany及多对多关联查询的用法详解
Feb 15 PHP
PHP之认识(二)关于Traits的用法详解
Apr 11 PHP
TP5.0框架实现无限极回复功能的方法分析
May 04 PHP
php面向对象程序设计中self与static的区别分析
May 21 PHP
PHP实现获取文件mime类型多种方法解析
May 28 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
常用表单验证类,有了这个,一般的验证就都齐了。
2006/12/06 PHP
php快速查找数据库中恶意代码的方法
2015/04/01 PHP
PHP模板引擎Smarty中的保留变量用法分析
2016/04/11 PHP
PHP引用的调用方法分析
2016/04/25 PHP
删除PHP数组中头部、尾部、任意元素的实现代码
2017/04/10 PHP
php使用crypt()函数进行加密
2017/06/08 PHP
PHP单例模式简单用法示例
2017/06/23 PHP
PHP实现的链式队列结构示例
2017/09/15 PHP
二级域名或跨域共享Cookies的实现方法
2008/08/07 Javascript
Jquery之美中不足小结
2011/02/16 Javascript
javascript unicode与GBK2312(中文)编码转换方法
2013/11/14 Javascript
如何实现移动端浏览器不显示 pc 端的广告
2015/10/15 Javascript
Bootstrap表单布局样式源代码
2016/07/04 Javascript
Javascript字符串常用方法详解
2016/07/21 Javascript
javascript中获取元素标签中间的内容的实现方法
2016/10/08 Javascript
Base64(二进制)图片编码解析及在各种浏览器的兼容性处理
2017/02/09 Javascript
利用策略模式与装饰模式扩展JavaScript表单验证功能
2017/02/14 Javascript
JavaScript创建对象的七种方式(推荐)
2017/06/26 Javascript
详解Vue单元测试Karma+Mocha学习笔记
2018/01/31 Javascript
详解angularjs跨页面传参遇到的一些问题
2018/11/01 Javascript
Vue press 支持图片放大功能的实例代码
2018/11/09 Javascript
bootstrap table.js动态填充单元格数据的多种方法
2019/07/18 Javascript
jquery弹窗时禁止body滚动条滚动的例子
2019/09/21 jQuery
[10:14]2018DOTA2国际邀请赛寻真——paiN Gaming不仅为自己而战
2018/08/14 DOTA
[01:12:08]LGD vs OG 2019国际邀请赛淘汰赛 胜者组 BO3 第一场 8.24
2019/09/10 DOTA
python简单猜数游戏实例
2015/07/09 Python
python+django快速实现文件上传
2016/10/24 Python
Python3.6.x中内置函数总结及讲解
2019/02/22 Python
在PyCharm中遇到pip安装 失败问题及解决方案(pip失效时的解决方案)
2020/03/10 Python
让IE支持CSS3的不完全兼容方案
2014/09/19 HTML / CSS
video下autoplay属性无效的解决方法(添加muted属性)
2020/05/19 HTML / CSS
英国天然有机美容护肤品:Neal’s Yard Remedies
2018/05/05 全球购物
事业单位个人应聘自荐信
2013/09/21 职场文书
2015最新学生自我评价范文
2015/03/03 职场文书
PHP对接阿里云虚拟号的实现(号码隐私保护)
2021/04/06 PHP
解决Pytorch半精度浮点型网络训练的问题
2021/05/24 Python