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 相关文章推荐
PHP4实际应用经验篇(8)
Oct 09 PHP
php microtime获取浮点的时间戳
Feb 21 PHP
php的array_multisort()使用方法介绍
May 16 PHP
PHP中feof()函数实例测试
Aug 23 PHP
php模拟登陆的实现方法分析
Jan 09 PHP
PHP中调用C/C++制作的动态链接库的教程
Mar 10 PHP
验证token、回复图文\文本、推送消息的实用微信类php代码
Jun 28 PHP
Laravel最佳分割路由文件(routes.php)的方式
Aug 04 PHP
Laravel学习教程之View模块详解
Sep 18 PHP
PHP使用PDO创建MySQL数据库、表及插入多条数据操作示例
May 30 PHP
laravel model模型定义实现开启自动管理时间created_at,updated_at
Oct 17 PHP
phpstudy隐藏index.php的方法
Sep 21 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+Tidy-完美的XHTML纠错+过滤
2007/04/10 PHP
PHP中创建空文件的代码[file_put_contents vs touch]
2012/01/20 PHP
php json与xml序列化/反序列化
2013/10/28 PHP
在Win2003(64位)中配置IIS6+PHP5.2.17+MySQL5.5的运行环境
2016/04/04 PHP
PHP单例模式详解及实例代码
2016/12/21 PHP
浅谈laravel aliases别名的原理
2019/10/24 PHP
JavaScript 继承机制的实现(待续)
2010/05/18 Javascript
基于jquery 的一个progressbar widge
2010/10/29 Javascript
JavaScript验证18位身份证号码最后一位正确性的实现代码
2014/08/07 Javascript
在JavaScript中操作时间之getUTCDate()方法的使用
2015/06/10 Javascript
node.js连接mongoDB数据库 快速搭建自己的web服务
2016/04/17 Javascript
Angular.JS实现无限级的联动菜单(使用demo)
2017/02/08 Javascript
基于JavaScript实现本地图片预览
2017/02/08 Javascript
js实现随机点名小功能
2017/08/17 Javascript
详解webpack多页面配置记录
2018/01/22 Javascript
浅谈layui分页控件field参数接收对象的问题
2019/09/20 Javascript
解决vue-router 二级导航默认选中某一选项的问题
2019/11/01 Javascript
Vue.js 无限滚动列表性能优化方案
2019/12/02 Javascript
Python字符串特性及常用字符串方法的简单笔记
2016/01/04 Python
Python中字符串的常见操作技巧总结
2016/07/28 Python
Python中函数eval和ast.literal_eval的区别详解
2017/08/10 Python
python 函数传参之传值还是传引用的分析
2017/09/07 Python
在双python下设置python3为默认的方法
2018/10/31 Python
对PyQt5中树结构的实现方法详解
2019/06/17 Python
在Python中通过threshold创建mask方式
2020/02/19 Python
python爬虫使用正则爬取网站的实现
2020/08/03 Python
python学习笔记之多进程
2020/08/06 Python
浅谈CSS3特性查询(Feature Query: @supports)功能简介
2017/07/31 HTML / CSS
HTML5如何为形状图上颜色怎么绘制具有颜色和透明度的矩形
2014/06/23 HTML / CSS
英国复古和经典球衣网站:Vintage Football Shirts
2018/10/05 全球购物
澳大利亚有机化妆品网上商店:The Well Store
2020/02/20 全球购物
总经理岗位职责范本
2014/02/02 职场文书
铣床操作工岗位职责
2014/06/13 职场文书
2014党员自我评议表范文
2014/09/20 职场文书
画展邀请函
2015/01/31 职场文书
《穷人》教学反思
2016/02/19 职场文书