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简单命令代码集锦
Sep 24 PHP
php获得当前的脚本网址
Dec 10 PHP
PHP关于IE下的iframe跨域导致session丢失问题解决方法
Oct 10 PHP
Codeigniter框架的更新事务(transaction)BUG及解决方法
Jul 25 PHP
老版本PHP转义Json里的特殊字符的函数
Jun 08 PHP
PHP正则表达式之捕获组与非捕获组
Nov 06 PHP
PHP使用redis实现统计缓存mysql压力的方法
Nov 14 PHP
验证坐标在某坐标区域内php代码
Oct 08 PHP
详谈PHP中的密码安全性Password Hashing
Feb 04 PHP
PHP实现权限管理功能示例
Sep 22 PHP
PHP文件系统管理(实例讲解)
Sep 19 PHP
PHP多进程之pcntl_fork的实例详解
Oct 15 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
星际流派综述
2020/03/04 星际争霸
Zend的MVC机制使用分析(二)
2013/05/02 PHP
thinkphp文件处理类Dir.class.php的用法分析
2014/12/08 PHP
源码分析 Laravel 重复执行同一个队列任务的原因
2017/12/25 PHP
php输出反斜杠的实例方法
2019/09/19 PHP
laravel框架使用阿里云短信发送消息操作示例
2020/02/15 PHP
判断是否输入完毕再激活提交按钮
2006/06/26 Javascript
javascript:以前写的xmlhttp池,代码
2008/05/18 Javascript
基于jquery的下拉框改变动态添加和删除表格实现代码
2020/09/12 Javascript
子页向父页传值示例
2013/11/27 Javascript
jquery弹出层类代码分享
2013/12/27 Javascript
JavaScript中的prototype.bind()方法介绍
2014/04/04 Javascript
简单方法判断JavaScript对象为null或者属性为空
2014/09/26 Javascript
PHP和NodeJs开发的应用如何共用Session
2015/04/16 NodeJs
jQuery轻松实现表格的隔行变色和点击行变色的实例代码
2016/05/09 Javascript
jquery实现刷新随机变化样式特效(tag标签样式)
2017/02/03 Javascript
js实现文字无缝向上滚动
2017/02/16 Javascript
基于Vue实现拖拽效果
2018/04/27 Javascript
vue.js使用watch监听路由变化的方法
2018/07/08 Javascript
[52:02]DOTA2-DPC中国联赛 正赛 Phoenix vs Dragon BO3 第二场 2月26日
2021/03/11 DOTA
Python中请使用isinstance()判断变量类型
2014/08/25 Python
Python中规范定义命名空间的一些建议
2016/06/04 Python
asyncio 的 coroutine对象 与 Future对象使用指南
2016/09/11 Python
python爬虫实战之爬取京东商城实例教程
2017/04/24 Python
Python sqlite3事务处理方法实例分析
2017/06/19 Python
Python基于生成器迭代实现的八皇后问题示例
2018/05/23 Python
意大利值得信赖的在线超级药房:PillolaStore
2020/02/05 全球购物
一套Java笔试题
2016/08/20 面试题
应届生财务会计求职信
2013/11/05 职场文书
创业计划书的主要内容有哪些
2014/01/29 职场文书
后备干部考察材料
2014/02/12 职场文书
历史专业大学生职业生涯规划书
2014/03/13 职场文书
工作收入证明模板
2014/10/10 职场文书
单位介绍信格式
2015/01/31 职场文书
2016年小学“感恩教师”主题队日活动总结
2016/04/01 职场文书
Python基本的内置数据类型及使用方法
2022/04/13 Python