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 array_push 数组函数
Dec 26 PHP
PHP 面向对象详解
Sep 13 PHP
php缓冲 output_buffering和ob_start使用介绍
Jan 30 PHP
使用php清除bom示例
Mar 03 PHP
PHP OPP机制和模式简介(抽象类、接口和契约式编程)
Jun 09 PHP
PHP实现下载断点续传的方法
Nov 12 PHP
学习php设计模式 php实现工厂模式(factory)
Dec 07 PHP
php用户密码加密算法分析【Discuz加密算法】
Oct 12 PHP
php 5.4 全新的代码复用Trait详解
Jan 05 PHP
PHP实现UTF8二进制及明文字符串的转化功能示例
Nov 20 PHP
thinkPHP5框架自定义验证器实现方法分析
Jun 11 PHP
PHP如何使用array_unshift()在数组开头插入元素
Sep 01 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 5.4 你必须要知道的
2013/08/07 PHP
PHP实现根据银行卡号判断银行
2015/04/29 PHP
PHP去掉json字符串中的反斜杠\及去掉双引号前的反斜杠
2015/09/30 PHP
WordPress中用于获取文章作者与分类信息的方法整理
2015/12/17 PHP
Zend Framework入门之环境配置及第一个Hello World示例(附demo源码下载)
2016/03/21 PHP
Thinkphp5 微信公众号token验证不成功的原因及解决方法
2017/11/12 PHP
laravel-admin 在列表页添加自定义按钮的例子
2019/09/30 PHP
PHP二维数组分页2种实现方法解析
2020/07/09 PHP
JavaScript prototype属性深入介绍
2012/11/27 Javascript
JSON无限折叠菜单编写实例
2013/12/16 Javascript
JS根据年月获得当月天数的实现代码
2014/07/03 Javascript
基于SpringMVC+Bootstrap+DataTables实现表格服务端分页、模糊查询
2016/10/30 Javascript
jquery二级目录选中当前页的css样式
2016/12/08 Javascript
Angular 4根据组件名称动态创建出组件的方法教程
2017/11/01 Javascript
在vue项目中,使用axios跨域处理
2018/03/07 Javascript
vue实现分页栏效果
2019/06/28 Javascript
vue实现分页加载效果
2019/12/24 Javascript
ckeditor一键排版功能实现方法分析
2020/02/06 Javascript
在vue中实现echarts随窗体变化
2020/07/27 Javascript
Vue select 绑定动态变量的实例讲解
2020/10/22 Javascript
Python实现从脚本里运行scrapy的方法
2015/04/07 Python
在Python中使用mongoengine操作MongoDB教程
2015/04/24 Python
将Python的Django框架与认证系统整合的方法
2015/07/24 Python
python 调用c语言函数的方法
2017/09/29 Python
对python中两种列表元素去重函数性能的比较方法
2018/06/29 Python
Python 利用高德地图api实现经纬度与地址的批量转换
2019/08/14 Python
python 3.74 运行import numpy as np 报错lib\site-packages\numpy\__init__.py
2019/10/06 Python
初三学生个人自我评定
2014/04/06 职场文书
合作经营协议书
2014/04/17 职场文书
班主任对学生的评语
2014/04/26 职场文书
单方离婚协议书范本2014
2014/10/28 职场文书
2015年度保密工作总结
2015/04/24 职场文书
父亲去世追悼词
2015/06/23 职场文书
Python实战之用tkinter库做一个鼠标模拟点击器
2021/04/27 Python
Nginx配置使用详解
2022/07/07 Servers
Windows Server 2012 R2服务器安装与配置的完整步骤
2022/07/15 Servers