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 相关文章推荐
一个用mysql_odbc和php写的serach数据库程序
Oct 09 PHP
模板引擎正则表达式调试小技巧
Jul 20 PHP
深入解析PHP中的(伪)多线程与多进程
Jul 01 PHP
php preg_replace替换实例讲解
Nov 04 PHP
PHP操作文件的一些基本函数使用示例
Nov 18 PHP
Yii2中YiiBase自动加载类、引用文件方法分析(autoload)
Jul 25 PHP
PHP重定向与伪静态区别
Feb 19 PHP
yii2.0整合阿里云oss上传单个文件的示例
Sep 19 PHP
PHP用函数嵌入网站访问量计数器
Oct 27 PHP
laravel利用中间件做防非法登录和权限控制示例
Oct 21 PHP
PHP如何解决微信文章图片防盗链
Dec 09 PHP
Git命令之分支详解
Mar 02 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实现用户认证及管理完全源码
2007/03/11 PHP
PHP中MVC模式的模板引擎开发经验分享
2011/03/23 PHP
使用PHP导出Word文档的原理和实例
2013/10/21 PHP
利用Laravel生成Gravatar头像地址的优雅方法
2017/12/30 PHP
PHP封装的验证码工具类定义与用法示例
2018/08/22 PHP
javascript中基本类型和引用类型的区别分析
2015/05/12 Javascript
js实现div模拟模态对话框展现URL内容
2016/05/27 Javascript
js 动态给元素添加、移除事件的实现方法
2016/07/19 Javascript
使用JS中的exec()方法构造正则表达式验证
2016/08/01 Javascript
bootstrapValidator.min.js表单验证插件
2017/02/09 Javascript
React Native中的RefreshContorl下拉刷新使用
2017/10/09 Javascript
JavaScript实现重力下落与弹性效果的方法分析
2017/12/20 Javascript
jQuery实现右侧抽屉式在线客服功能
2017/12/25 jQuery
浅谈 Webpack 如何处理图片(开发、打包、优化)
2019/05/15 Javascript
Vue项目中数据的深度监听或对象属性的监听实例
2020/07/17 Javascript
微信小程序实现点击导航标签滚动定位到对应位置
2020/11/19 Javascript
[05:28]刀塔密之一:团结则存
2014/07/03 DOTA
python的Template使用指南
2014/09/11 Python
Python实现提取文章摘要的方法
2015/04/21 Python
开源软件包和环境管理系统Anaconda的安装使用
2017/09/04 Python
python 3.6 +pyMysql 操作mysql数据库(实例讲解)
2017/12/20 Python
python计算日期之间的放假日期
2018/06/05 Python
Python3几个常见问题的处理方法
2019/02/26 Python
python使用matplotlib画柱状图、散点图
2019/03/18 Python
Python+Selenium+phantomjs实现网页模拟登录和截图功能(windows环境)
2019/12/11 Python
python反扒机制的5种解决方法
2021/02/06 Python
意大利网上购书网站:Libraccio.it
2021/02/03 全球购物
Jar包的作用是什么
2014/03/30 面试题
文秘自荐信
2013/10/20 职场文书
纪念建党演讲稿范文
2014/01/13 职场文书
群众路线批评与自我批评
2014/02/06 职场文书
餐饮投资计划书
2014/04/25 职场文书
关于运动会广播稿50字
2014/10/18 职场文书
2014年高中教师工作总结
2014/12/19 职场文书
小学生六年级作文之关于感恩
2019/08/16 职场文书
解决redis sentinel 频繁主备切换的问题
2021/04/12 Redis