PHP实现限制域名访问的实现代码(本地验证)

用PHP编写好的源码,如果不想被其它人直接利用怎么办?首先想到的是加密,但现在除了Zend 5加密还比较难破解外,其它的加密方式都不堪一击。即使不破解,不怀好意的人同样可以使用你的源码搭建一个和你一模一样的一个网站。这岂不是使你的劳动成果白白的被别人占为己有。下面介绍一种方法即限制域名的方法来保护你的源代码不被直接拷贝运行。

如何通过程序限制域名从而保护源码呢?比如你所做的网站将来要使用的是www.jb51.net,如果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>仅限本地使用!需要域名授权请联系jb51.net");
	}
}
allow_domain();

然后用zend加密,其他加密容易被破解。

PHP实现域名授权的两种方法

01. 在线校验域名授权的方法:

客户端代码:

<?php
//获取不带端口号的域名前缀
$servername = trim($_SERVER['SERVER_NAME']);
//获取服务端授权文件校验
$verifyurl = file_get_contents('//www.jb51.net/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限制域名访问内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

时间: 2020-09-11

asp限制域名访问实现代码

asp 设置只能指定域名可以使用此网站 代码一 我们原创 <% myIp = ",127.0.0.1,localhost,www.jb51.net," myurl= request.ServerVariables("SERVER_NAME") Response.write myurl if InStr(myIp,","&myurl&",")>0 then Response.write "域

JS加ASP二级域名转向的代码

自己做了asp的二级域名转向已经使用当中,但用到另一种方法:前台JS加ASP的转向程序却转不了,程序调试已经通过但不能转向不知道为什么请帮忙指出原因,谢谢!!! <% Dim whkDbq,whkSql,whkRs,whkCount Set whkConn = Server.CreateObject("ADODB.Connection") whkDbq = Server.MapPath("SqlTaoFun.mdb") whkConn.Open"Pr

asp.net获取当前网址url的各种属性(文件名、参数、域名 等)的代码

设当前页完整地址是:http://www.jb51.net/aaa/bbb.aspx?id=5&name=kelli "http://"是协议名 "www.jb51.net"是域名 "aaa"是站点名 "bbb.aspx"是页面名(文件名) "id=5&name=kelli"是参数 [1]获取 完整url (协议名+域名+站点名+文件名+参数) 复制代码 代码如下: string url=R

asp.net中WebResponse 跨域访问实例代码

前两天,一个朋友让我帮他写这样一个程序:在asp.net里面访问asp的页面,把数据提交对方的数据库后,根据返回的值(返回值为:OK或ERROR),如果为OK再把填入本地数据库.当时,想当然,觉得很简单,用js的xmlhttp ,如果根据response 的值是"OK"就执行提交本地数据库.很快写完发过去,让朋友试试,一试发现不行,后来一问,原来是跨域访问,我给忽略了,于是让朋友把asp改成web service,可朋友说程序是合作公司做的,只会asp,不会用web service ,

asp实现禁止搜索引擎蜘蛛访问的代码

这段代码可以控制常用的搜索引擎无法访问asp页面,需要在每个asp页面包含这段代码. <% function isspider() dim i,agent,searray agent="agent:"&LCase(request.servervariables("http_user_agent")) searray=array("googlebot","baiduspider","sogouspider

asp防止刷新功能实现代码

使用说明 1.在要保护的页面顶部加如对AntiRefresh.asp文件的引用如: <!--#include virtual="AntiRefresh.asp" --> 2.接着添加调用代码 复制代码 代码如下: <% Const VarNameDateArr="www_domai_net_App_DataArr" '队列名称 Const VarNameIPArr="www_domai_net_App_IPArr" '队列名称

asp.net实现访问局域网共享目录下文件的解决方法

本文以实例讲述了asp.net实现访问局域网共享目录下文件的解决方法,完整代码如下所示: using System; using System.Collections; using System.Configuration; using System.Data; using System.Linq; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.HtmlControls;

配置 Apache 服务器禁止所有非法域名 访问自己的服务器

1.http2.4.1以前:   第一种 直接拒绝访问 打开 httpd.conf  文件,将一下配置追加到文件最后. <pre name="code" class="html"><pre name="code" class="html"><pre name="code" class="html">#直接拒绝所有非法域名 <VirtualHost

Java设置Access-Control-Allow-Origin允许多域名访问的实现方法

对于前后端分离的项目难免会遇到跨域的问题,在设置跨域的问题中有许多需要注意的事情,如本次将要将的设置Access-Control-Allow-Origin使其允许多域名请求. (1)设置允许多域名访问最简单的方法是使用通配符,但是这种方式允许所有域名都可以访问,并不安全,而且这种方式浏览器不能携带cookie信息(携带cookie信息只能使用真实域名,如下面第二中方式).这种方式只推荐在不带cookie信息的开发中测试使用.代码如下:  rep.setHeader("Access-Control

Tomcat多端口域名访问并配置开启gzip压缩方法

1.除了默认的8080端口以外,我们尝试应用9090端口进行域名访问,打开server.xml 如图: 2.在代码里面进行添加如下9090下面的代码: 如图: 3.用9090端口进行访问 如图: 4.配置gzip,同样在server.xml文件中进行设置,添加代码 如图: 总结 以上所述是小编给大家介绍的Tomcat进行多端口域名访问,并配置开启gzip压缩方法  ,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的.在此也非常感谢大家对我们网站的支持! 如果你觉得本文对你有

对一个tomcat实现多端口、多域名访问的方法

1.找到tomcat的主目录,打开conf文件夹,找到并打开server.xml文件. 编辑server.xml文件,在<Service></Service>标签中添加: <Connector port="9090" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" /> 如图: 2.进行步骤1中的配置,多端口