❶ php源碼 綁定域名授權 原理
這個就是樓上所說的判斷了。至於如何判斷,各個程序有各個程序的寫法,有些程序是通過鏈接購買資料庫來判斷的,有些是你直接購買夠給你一個key(這種不可靠,更容易破解。)PS:我是新人。不要問我要代碼。
當然還有一些是需要連接到他們的伺服器的。如果不能連接到他們的伺服器,然後驗證的話,那麼你就是未授權。這些都需要你在程序上寫一個授權進程。一般來說賣的程序都會經過加密的。所以你懂的。如果你懂加密可以去破解某些商業程序,然後去看看他們的驗證是怎麼寫的。
❷ php判斷是否為域名或者ip
你這個方法是通過判斷域名或者ip被「.」分隔成數組後的最後一個元素是否是數字實現的?
應該是有問題的吧,比如aaa.111這個應該不是合法的ip,你這個就通過了。
我覺得還是使用正則比較好。
❸ PHP會話驗證問題,怎麼解決
會話控制的思想就是指能夠在網站中根據一個會話跟蹤用戶。這里整理了詳細的代碼,有需要的小夥伴可以參考下。
概述
http 協議是無狀態的,對於每個請求,服務端無法區分用戶。PHP 會話控制就是給了用戶一把鑰匙(一個加密session字元串),同時這也是用戶身份的一個證明,服務端存放了這把鑰匙能打開的箱子(資料庫,內存資料庫或者使用文件做的),箱子裡面裝的就是用戶的各個變數信息。
傳統的php session 使用
<?php
//page1.php 啟動一個會話並注冊一個變數
session_start();
$_SESSION['user_var'] = "hello,codekissyoung!";
//這里的可以將$_SESSION理解為用戶的箱子,實際的實現是php在伺服器端生成的小文件
?>
<?php
//page2.php
session_start();
echo $_SESSION['user_var'];//通過鑰匙訪問自己的箱子內的變數
$_SESSION['user_var'] = "bey,codekissyoung!";
?>
<?php
//page3.php 銷毀鑰匙,一般在用戶注銷時,訪問page3.php文件
session_start();
session_destroy();
?>
提一個問題,鑰匙呢?沒看見給用戶鑰匙的操作啊?
這個操作是php背後幫我們做了的,自從你訪問page1.php 程序運行,session_start();這句時,php 會根據此刻的一些條件(用戶ip,瀏覽器號,時間等)生成一個PHPSESSID變數,http response 回客戶端後,這個PHPSESSID就已經存在你的瀏覽器cookie里了,每次你再次訪問這個域名時,該PHPSESSID都會發送到服務端。這個PHPSESSID 就是我這里說的用戶鑰匙了。
再一個問題,這個PHPSESSID的安全性,它是否容易被竊取,是否容易被偽造,是否容易被篡改?
使用 Https 可以防止被篡改。不使用PHPSESSID,而是自己生成一把秘鑰給用戶可以防止被偽造。至於是否容易被竊取,還真沒怎麼研究過。比如如果你電腦連著網,黑客入侵你電腦。
將生成的秘鑰存入瀏覽器cookie中
設置cookie
setCookie('key','value',time()+3600);
刪除cookie
setCookie('key','',time()-1);
實現單點登錄:session共享
單點登錄:多個子系統之間共用一套用戶驗證體系,在其中一處登錄,就可以訪問所有子系統。
試想這么一種情景:假設伺服器A與B的php環境一致。用戶在 伺服器A 上拿到了自己的鑰匙,然後他拿著這把鑰匙去訪問伺服器B,請問伺服器B認識么?
很顯然不能,伺服器A生成的鑰匙,伺服器並不認識。
解決辦法:用戶無論訪問A或B,生成的鑰匙我都存儲在C(同一個資料庫,或緩存系統)中,用戶再次訪問A或B時,A和B都去問下C:這個用戶的鑰匙對么?對的話,用戶就可以使用自己存在A或者B那裡的箱子了。
- <?php
- session_regenerate_id();//重置session 字元
- $session_info=array('uid'=>$uid,'session'=>session_encrypt(session_id().time()));
- //下一步將,$session_info 存到C 中
- ?>
下面是php通過會話控制實現身份驗證實例
身份驗證應用程序主體:authmain.PHP
- <?php
- //開啟一個會話
- session_start();
- if((!isset($userid))||(!isset($password))) {
- $userid=$_POST['userid'];
- $password=$_POST['password'];
- //連接資料庫
- $db_conn=new mysqli("localhost", "root", "","auth");
- if(mysqli_connect_errno()){
- echo '連接資料庫失敗:'.mysqli_connect_error();
- exit();
- }
- //執行SQL查詢語句
- $query="SELECT * FROM authorized_users WHERE name='".$userid."' and password=sha1('".$password."')";
- $result=$db_conn->query($query);
- if($result->num_rows>0){
- //注冊一個會話變數
- $_SESSION['valid_user']=$userid;
- }
- //斷開資料庫連接
- $db_conn->close();
- }
- ?>
- <!DOCTYPE html>
- <html>
- <head>
- <meta charset="UTF-8">
- <title>身份驗證</title>
- </head>
- <body>
- <h1>主頁</h1>
- <?php
- //判斷用戶是否已經登錄
- if(isset($_SESSION['valid_user'])){
- echo $_SESSION['valid_user'].',您好,你已經登錄';
- echo '<a href="logout.php">退出登錄</a><br/>';
- }else{
- if(isset($userid)){
- echo '您沒有登錄成功';
- }else{
- echo '您還沒有登錄<br/>';
- }
- ?>
- <form method="post" action="authmain.php">
- <p>用戶名:<input type="text" name="userid"></p>
- <p>密碼:<input type="password" name="password"></p>
- <p><input type="submit" name="submit" value="登錄"></p>
- </form>
- <?php
- }
- ?>
- <br/>
- <a href="members_only.php">登錄進入</a>
- </body>
- </html>
網站的有效用戶檢查:members_only.php
- <!DOCTYPE html>
- <html>
- <head>
- <meta charset="UTF-8">
- <title>身份驗證</title>
- </head>
- <body>
- <?php
- //啟用會話
- session_start();
- echo '<h1>會員有效</h1>';
- if(isset($_SESSION['valid_user'])){
- echo "<p>".$_SESSION['valid_user'].",您好,您已經登錄成功</p>";
- echo '<p>會員可享受折扣優惠</p>';
- }else{
- echo '<p>您還沒有登錄成功</p>';
- echo '<p>只有登錄成功才能查看此頁</p>';
- }
- echo '<a href="authmain.php">返回主頁</a>';
- ?>
- </body>
- </html>
注銷會話變數並銷毀會話:logout.php
- <?php
- //啟用會話
- session_start();
- $olser=$_SESSION['valid_user'];
- //注銷會話變數
- unset($_SESSION['valid_user']);
- //銷毀會話
- session_destroy();
- ?>
- <!DOCTYPE html>
- <html>
- <head>
- <meta charset="UTF-8">
- <title>退出登錄</title>
- </head>
- <body>
- <h1>您退出登錄了!</h1>
- <?php
- if(!empty($olser)){
- echo '退出登錄了<br/>';
- }else{
- echo '您沒有登錄過,所以當然也不存在退出登錄<br/>';
- }
- ?>
- <a href="authmain.php">返回主頁</a>
- </body>
- </html>
❹ php 正則校驗是否是域名
1.檢測域名格式正確性的函數
//檢測域名格式
functionCheckUrl($C_url){
$str="/^http(s?)://(?:[A-za-z0-9-]+.)+[A-za-z]{2,4}(?:[/?#][/=?%-&~`@[]':+!.#w]*)?$/";
if(!preg_match($str,$C_url)){
returnfalse;
}else{
returntrue;
}
}
2.使用方法
$url="http://www..com/";//填寫你要檢測的域名
if(!CheckUrl($url)){
echo"域名格式不正確";
}else{
echo"域名格式正確";
}
❺ 關於域名驗證的問題
驗證bbs的
然後確保ucenter開啟了
無法打開某個文件,可能是論壇程序出於安全目錄,在.htaccess文件中限制了 請檢查
❻ asp.net 如何和域名綁定急!!!!!!!!!!!
你需要下載一個
《網站域名授權綜合管理系統》
系統採用ASP+ACCESS開發,輕松穩定,防攻擊和防下載處理。無需安裝,只要上傳到支持ASP的空間中即可使用。
系統亮點:
只需一段JS代碼,就可以遠程對網站域名進行授權管理。
跨平台使用,可在ASP,PHP,NET等各種程序系統上使用
真正的遠程管控,平台在線,授權無憂。
靈活多變的授權驗證方式,滿足不同的授權需求
功能說明:
網站系統開發者僅需將該授權管理系統安裝在自己的伺服器或空間上,即可對網站實現遠端授權管理,靈活的授權驗證方式,滿足不同的授權管理:
1、域名+時間雙重驗證
2、僅域名驗證(可同時授權二個域名使用,時間驗證失效)
3、僅時間驗證(域名驗證失效,可選擇到期後是直接關閉,還是僅提示)
一、新增授權,每個用戶一個唯一的授權ID ,精準每個用戶的授權管理
二、即將到期授權管理,方便提前通知用戶
三、已到期授權管理
四、產品管理
五、調用說明
六、系統參數設置
更多功能,我們將不斷更新中
默認後台管理帳號和密碼分別為:admin admin888
網站系統授權綜合管理系統 更新日誌:
V5新增功能:
1、增加簡訊介面功能,可向授權用戶下發授權信息簡訊,當用戶快到期時,向用戶發送到期提醒。
2、一個授權ID由原先二個域名改為可增加無限域名(適用於一個ID授權多人使用)
3、界面重新布局,修改驗證碼為中文,更安全。
❼ php 判斷是否域名
curl_getinfo($ch, CURLINFO_HTTP_CODE);
其中$ch是你要判斷的字元串
❽ 想用php來遠程式控制制iis來實現目錄綁定域名,怎麼實現php擁有足夠許可權可以修改iis的配置文件。
將網站和配置文件放在同一目錄下,保證php網站可以訪問的到,然後試試php的文件操作函數來讀寫刪操作
❾ PHP正則表達式如何檢測現有的正確郵箱域名後綴
這個是IT群里的朋友!我不去群里了,在這里幫你把問題解決了吧!
其實嚴格說來,正則表達式只是一個模型匹配,所以直接使用模型匹配時我們有一個高通原理,也就是說匹配出來的內容是要大於你所需要的內容。就比此題來說,後邊可以匹配任何一個合規則的內容,而不可能精確地直接是你想要的內容——這就是高通,如果非要匹配到你想要的內容,使用正則運算有時是非常不合適的!所以這里不建議你使用這方式,或者是部分使用這種方式的形式。
高通就是通過你不全是你想要的,但你想要的一定全在里邊。
那麼,為什麼不考慮使用ajax的方式呢?後台自己設計一會資料庫,@前半段使用正則表這式,扣後半段直接使用數據存儲的內容,這樣可以精確到任何一個你想要的。
因為這里你想要的與不想要的其實也很模糊,你也不知道ckk這個域名在以後是不會被啟用!那麼你可以使用資料庫方式,由管理員自由添加!不用去修改那將來的表達式的!
但事實上很少人用這種方式——他們都在使用注冊時郵箱認證的方式,也就是說,發到你郵箱里一封信,輔助你完成注冊,這種情況雖然是高通,其他實他只是方便用戶能輸入正確,而不是要的確信數據,任何設計都要記著這句話——任何客戶端的信息都是不可信的!就算用JS完成了正則,那麼如果對方有意屏掉您的JS這十分容易的!所以你的正則根本不是用來驗證,而是方便用戶。
正是這種原因,高通的理由也是其存在的一個原因!就算使用了我說的資料庫,利用ajax來檢查,那麼別人照樣可以讓你的ajax不工作,而且,不是伺服器通過了,郵箱就一定有人注冊的!所以從這方面上來講,資料庫的實現意義也不大!
根據js的特點,客戶端的驗證沒有必要太這於麻煩,就算是服務端的驗證,建議你的也只採用這種方式即可。沒有使用資料庫的必要的——這個代價與達到的效果是不成比例的!
說完了,其實等於我也不解決!
❿ 求高手寫php驗證域名的正則表達式
<?php
$str = "http://www.12aa_china521.com";
$strlen = strlen($str);
if($strlen<2 || $strlen>46)
{
echo "域名長度為2-46";
exit;
}
$arr = explode(".",$str);
if(strtolower(end($arr))=="cn")
{
if(strpos($str,"china") || strpos($str,"chinese"))
{
echo "cn後綴的域名不允許含有china或者chinese";
exit;
}
}
$preg = "/^(?:http:\/\/)?www.[0-9a-zA-Z]+_?[0-9a-zA-Z]+.(?:com(?:.cn)?|net|org|info|mobi)$/";
if(preg_match($preg,$str))
{
echo "域名正確";
}else{
echo "域名不正確";
}
?>