PHP實(shí)現(xiàn)限制域名訪問的實(shí)現(xiàn)代碼(本地驗證)
用PHP編寫好的源碼,如果不想被其它人直接利用怎么辦?首先想到的是加密,但現(xiàn)在除了Zend 5加密還比較難破解外,其它的加密方式都不堪一擊。即使不破解,不懷好意的人同樣可以使用你的源碼搭建一個和你一模一樣的一個網(wǎng)站。這豈不是使你的勞動成果白白的被別人占為己有。下面介紹一種方法即限制域名的方法來保護(hù)你的源代碼不被直接拷貝運(yùn)行。
如何通過程序限制域名從而保護(hù)源碼呢?比如你所做的網(wǎng)站將來要使用的是www.dbjr.com.cn,如果PHP的程序丟失了,即使其它人使用你的PHP源碼,如果判斷的域名不正確,也無法運(yùn)行,同時將源碼加密起來,這樣就萬無一失了。
PHP程序限制域名的程序源碼如下:
下面就來分享一下實(shí)現(xiàn)代碼
1、限制域名訪問方法一
<?php if(!in_array($_SERVER['HTTP_HOST'],array('test.com','www.test.com'))){ exit('建站請聯(lián)系: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>僅限本地使用!需要域名授權(quán)請聯(lián)系jb51.net"); } } allow_domain();
然后用zend加密,其他加密容易被破解。
PHP實(shí)現(xiàn)域名授權(quán)的兩種方法
01. 在線校驗域名授權(quán)的方法:
客戶端代碼:
<?php //獲取不帶端口號的域名前綴 $servername = trim($_SERVER['SERVER_NAME']); //獲取服務(wù)端授權(quán)文件校驗 $verifyurl = file_get_contents('//www.dbjr.com.cn/zb_users/upload/copyright.php?domain='.$servername); if(!empty($verifyurl)){ echo "已授權(quán)!"; //授權(quán)成功 }else{ die("未授權(quán)!"); //授權(quán)失敗 } ?>
服務(wù)端代碼:
<?php //獲取域名 $domain = $_GET['domain']; //授權(quán)域名列表 $Array = array('127.0.0.1','localhost'); //校驗結(jié)果 echo in_array($domain, $Array) ? 'yes' : ''; ?>
域名授權(quán)代碼可封裝進(jìn)函數(shù),或者進(jìn)行加密,對于常用的PHP加密形式,都有其破解的方法,比如ZendGuard、ionCube等,如果授權(quán)的域名較多,可以在項目中增加域名字段,將域名寫入數(shù)據(jù)庫再進(jìn)行讀取和校驗,此方法我們已發(fā)布成獨(dú)立的插件,詳見:ZBlogPHP域名授權(quán)插件-AllowURL, 通過插件可以將域名等信息添加到數(shù)據(jù)庫中進(jìn)行校驗。
02. 獨(dú)立校驗域名授權(quán)的方法:
<?php function allow_domain(){ $is_allow=false; //獲取不帶端口號的域名前綴 $servername=trim($_SERVER['SERVER_NAME']); //授權(quán)域名列表 $Array=array("localhost","127.0.0.1"); //遍歷數(shù)組 foreach($Array as $value){ $value=trim($value); $domain=explode($value,$servername); if(count($domain)>1){ $is_allow=true; break; } } if(!$is_allow){ die("域名未授權(quán)!"); //授權(quán)失敗 }else{ echo "域名已授權(quán)!"; //授權(quán)成功 } } allow_domain(); ?>
域名授權(quán)的目的在于保護(hù)知識產(chǎn)權(quán),鼓勵開發(fā)者能夠發(fā)布更多優(yōu)秀的作品,推動整個網(wǎng)絡(luò)社會的文化發(fā)展與科技進(jìn)步,有著十分重要的意義。
到此這篇關(guān)于PHP實(shí)現(xiàn)限制域名訪問的實(shí)現(xiàn)代碼(本地驗證)的文章就介紹到這了,更多相關(guān)PHP限制域名訪問內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
php實(shí)現(xiàn)的一段簡單概率相關(guān)代碼
這篇文章主要介紹了php實(shí)現(xiàn)的一段簡單概率相關(guān)代碼,通過數(shù)字的運(yùn)算分析概率統(tǒng)計的原理與使用技巧,需要的朋友可以參考下2016-05-05Yii 使用intervention/image拓展實(shí)現(xiàn)圖像處理功能
這篇文章主要介紹了Yii 使用intervention/image拓展實(shí)現(xiàn)圖像處理功能,需要的朋友可以參考下2019-06-06PHP IDE PHPStorm配置支持友好Laravel代碼提示方法
這篇文章主要介紹了PHP IDE PHPStorm配置支持友好Laravel代碼提示方法,重點(diǎn)配置已經(jīng)加紅提示,需要的朋友可以參考下2015-05-05php使用post數(shù)組的鍵值創(chuàng)建同名變量并賦值的方法
這篇文章主要介紹了php使用post數(shù)組的鍵值創(chuàng)建同名變量并賦值的方法,涉及php操作數(shù)組的技巧,非常具有實(shí)用價值,需要的朋友可以參考下2015-04-04