PHP实现限制域名访问的实现代码(本地验证)
时间:2022-07-27
本文章向大家介绍PHP实现限制域名访问的实现代码(本地验证),主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
用PHP编写好的源码,如果不想被其它人直接利用怎么办?首先想到的是加密,但现在除了Zend 5加密还比较难破解外,其它的加密方式都不堪一击。即使不破解,不怀好意的人同样可以使用你的源码搭建一个和你一模一样的一个网站。这岂不是使你的劳动成果白白的被别人占为己有。下面介绍一种方法即限制域名的方法来保护你的源代码不被直接拷贝运行。
如何通过程序限制域名从而保护源码呢?比如你所做的网站将来要使用的是zalou.cn,如果PHP的程序丢失了,即使其它人使用你的PHP源码,如果判断的域名不正确,也无法运行,同时将源码加密起来,这样就万无一失了。
PHP程序限制域名的程序源码如下:
下面就来分享一下实现代码
1、限制域名访问方法一
<?php
if(!in_array($_SERVER['HTTP_HOST'],array('zalou.cn','www.zalou.cn'))){
exit('建站请联系:http://www.zalou.cn');
}
?>
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>仅限本地使用!需要域名授权请联系zalou.cn");
}
}
allow_domain();
然后用zend加密,其他加密容易被破解。
PHP实现域名授权的两种方法
01. 在线校验域名授权的方法:
客户端代码:
<?php
//获取不带端口号的域名前缀
$servername = trim($_SERVER['SERVER_NAME']);
//获取服务端授权文件校验
$verifyurl = file_get_contents('//www.zalou.cn/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书写格式
- php变量
- php常量
- PHP注释
- php数组
- php字符串 string
- PHP整型 integer
- PHP浮点型 float
- php布尔型
- php数据类型之数组
- php数据类型之对象
- php数据类型之null
- php数据类型之间的转换
- php运算符
- php表达式
- PHP循环控制
- PHP流程控制
- php函数
- php全局变量
- PHP魔术变量
- php命名空间
- php 日期
- PHP包含文件
- php文件
- PHP 文件上传
- php Cookies
- php Sessions
- php email
- php安全email
- php错误处理
- PHP异常处理
- php过滤器
- PHP 高级过滤器
- php json
- php 表单
- PHP MySQL 简介
- PHP 连接 MySQL
- php创建数据库
- php 创建表
- php mysq 插入数据
- PHP MySQL 插入多条数据
- PHP MySQL 预处理语句
- php mysql 读取数据
- php mysql where
- PHP MySQL Order By
- PHP MySQL Update
- PHP MySQL Delete
- php ODBC
- opencv 图像腐蚀和图像膨胀的实现
- PHP实现微信退款的方法示例
- 基于Python和C++实现删除链表的节点
- python让函数不返回结果的方法
- PHP微商城开源代码实例
- PHP小程序支付功能完整版【基于thinkPHP】
- CodeIgniter框架实现的整合Smarty引擎DEMO示例
- PHP微信支付功能示例
- PHP中ltrim()函数的用法与实例讲解
- Laravel 中创建 Zip 压缩文件并提供下载的实现方法
- pytorch随机采样操作SubsetRandomSampler()
- Pytorch上下采样函数–interpolate用法
- scrapy框架携带cookie访问淘宝购物车功能的实现代码
- 浅析Python __name__ 是什么
- PHP判断访客是否手机端(移动端浏览器)访问的方法总结【4种方法】