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的历史和优缺点
Oct 09 PHP
php使用Smarty的相关注意事项及访问变量的几种方式
Dec 08 PHP
php中可能用来加密字符串的函数[base64_encode、urlencode、sha1]
Jan 16 PHP
PHP面向对象学习笔记之一 基础概念
Oct 06 PHP
php过滤所有恶意字符(批量过滤post,get敏感数据)
Mar 18 PHP
php从数组中随机选择若干不重复元素的方法
Mar 14 PHP
PHP使用内置dir类实现目录遍历删除
Mar 31 PHP
Yii2验证器(Validator)用法分析
Jul 23 PHP
php+ajax+json 详解及实例代码
Dec 12 PHP
PHP DB 数据库连接类定义与用法示例
Mar 11 PHP
Yii2框架中一些折磨人的坑
Dec 15 PHP
PHP 实现缩略图
Mar 09 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
解决控件遮挡问题:关于有窗口元素和无窗口元素
2007/01/28 PHP
laravel框架模型、视图与控制器简单操作示例
2019/10/10 PHP
JQUERY对单选框(radio)操作的小例子
2013/04/25 Javascript
jquery插件推荐 jquery.cookie
2014/11/09 Javascript
node.js中的http.request.end方法使用说明
2014/12/10 Javascript
JS实现跟随鼠标闪烁转动色块的方法
2015/02/26 Javascript
jQuery实现自定义右键菜单的树状菜单效果
2015/09/02 Javascript
浅析JavaScript中命名空间namespace模式
2016/06/22 Javascript
原生js仿jquery实现对Ajax的封装
2016/10/04 Javascript
bootstrap配合Masonry插件实现瀑布式布局
2017/01/18 Javascript
vue+axios实现登录拦截的实例代码
2017/05/22 Javascript
JS+HTML5实现图片在线预览功能
2017/07/22 Javascript
vue实现留言板todolist功能
2017/08/16 Javascript
js实现橱窗展示效果
2020/01/11 Javascript
原生js实现照片墙效果
2020/10/13 Javascript
[02:27]《DAC最前线》之附加赛征程
2015/01/29 DOTA
python启动办公软件进程(word、excel、ppt、以及wps的et、wps、wpp)
2009/04/09 Python
Python实现的数据结构与算法之双端队列详解
2015/04/22 Python
python使用PIL给图片添加文字生成海报示例
2018/08/17 Python
对python借助百度云API对评论进行观点抽取的方法详解
2019/02/21 Python
Python3.6中Twisted模块安装的问题与解决
2019/04/15 Python
Python matplotlib绘制饼状图功能示例
2019/09/10 Python
python 经典数字滤波实例
2019/12/16 Python
在python3中使用shuffle函数要注意的地方
2020/02/28 Python
Django模型中字段属性choice使用说明
2020/03/30 Python
Ooni英国官网:披萨烤箱
2020/05/31 全球购物
村庄绿化方案
2014/05/07 职场文书
行政监察建议书
2014/05/19 职场文书
安全生产宣传标语
2014/06/06 职场文书
2014年监理工作总结范文
2014/11/17 职场文书
关于颐和园的导游词
2015/01/30 职场文书
酒店员工手册范本
2015/05/14 职场文书
早安问候语大全
2015/11/10 职场文书
入党心得体会
2019/06/20 职场文书
golang日志包logger的用法详解
2021/05/05 Golang
css之clearfix的用法深入理解(必看篇)
2023/05/21 HTML / CSS