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 相关文章推荐
WindowsXP中快速配置Apache+PHP5+Mysql
Jun 05 PHP
PHP 一个页面执行时间类代码
Mar 05 PHP
Linux环境下搭建php开发环境的操作步骤
Jun 17 PHP
ThinkPHP查询中的魔术方法简述
Jun 25 PHP
php+memcache实现的网站在线人数统计代码
Jul 04 PHP
php比较相似字符串的方法
Jun 05 PHP
PHP实现对png图像进行缩放的方法(支持透明背景)
Jul 15 PHP
PHP生成图片缩略图类示例
Jan 12 PHP
PHP实现求两个字符串最长公共子串的方法示例
Nov 17 PHP
PHP共享内存使用与信号控制实例分析
May 09 PHP
实例讲解php将字符串输出到HTML
Jan 27 PHP
PHP封装的简单连接MongoDB类示例
Feb 13 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/06 日漫
判断php数组是否为索引数组的实现方法
2013/06/13 PHP
PHP网站自动化配置的实现方法(必看)
2017/05/27 PHP
Add a Table to a Word Document
2007/06/15 Javascript
js实现div闪烁原理及实现代码
2014/06/24 Javascript
从JQuery源码分析JavaScript函数的apply方法与call方法
2014/09/25 Javascript
一个JavaScript获取元素当前高度的实例
2014/10/29 Javascript
node.js中的fs.readSync方法使用说明
2014/12/17 Javascript
javascript实现网页屏蔽Backspace事件,输入框不屏蔽
2015/07/21 Javascript
javascript中window.open在原来的窗口中打开新的窗口(不同名)
2015/11/15 Javascript
基于jquery实现最简单的选项卡切换效果
2016/05/08 Javascript
jQuery中$.grep() 过滤函数 数组过滤
2016/11/22 Javascript
nodejs进阶(6)—连接MySQL数据库示例
2017/01/07 NodeJs
在javaScript中检测数据类型的几种方式小结
2017/03/04 Javascript
Node+Express+MongoDB实现登录注册功能实例
2017/04/23 Javascript
vue实现在线预览pdf文件和下载(pdf.js)
2019/11/26 Javascript
在Python中使用Mako模版库的简单教程
2015/04/08 Python
python 禁止函数修改列表的实现方法
2017/08/03 Python
python实现远程通过网络邮件控制计算机重启或关机
2018/02/22 Python
python多进程实现文件下载传输功能
2018/07/28 Python
Python将文字转成语音并读出来的实例详解
2019/07/15 Python
keras读取h5文件load_weights、load代码操作
2020/06/12 Python
MAC平台基于Python Appium环境搭建过程图解
2020/08/13 Python
用python发送微信消息
2020/12/21 Python
Html5 Canvas实现图片标记、缩放、移动和保存历史状态功能 (附转换公式)
2020/03/18 HTML / CSS
什么是事务?为什么需要事务?
2012/01/09 面试题
法学毕业生自荐信
2013/11/13 职场文书
2014广电局实施党的群众路线教育实践活动方案思想汇报
2014/09/22 职场文书
二手车转让协议书
2015/01/29 职场文书
小学记事作文之200字
2019/08/06 职场文书
PyTorch 如何设置随机数种子使结果可复现
2021/05/12 Python
Mysql实现简易版搜索引擎的示例代码
2021/08/30 MySQL
Python MNIST手写体识别详解与试练
2021/11/07 Python
Python学习之迭代器详解
2022/04/01 Python
nginx配置之并发频次限制
2022/04/18 Servers
Vue OpenLayer测距功能的实现
2022/04/20 Vue.js