著作權聲明:原創作品,允許轉載,轉載時請務必以超連結形式標明文章原始出版、作者資訊和本聲明。否則將追究法律責任。http://blog.csdn.net/mayongzhan - 馬永占,myz,mayongzhan
周末有點時間,研究了下define實現許可權認證.使用define驗證可以達到最基本的登陸通過認證. lzy同志用過define驗證一個系統是否被允許使用.discuz論壇裡也有關於define的使用. 親自試了一下.通過一個檔案引用另外一個檔案.實現許可權認證.做了個簡單的登陸,登陸成功後define一個值,然後載入需要許可權認證的檔案.成功!!!直接存取另外的那個檔案,失敗!!! 然後測試了下遠端安全性.開啟php.ini中的allow_url_include ,這個是控制是否可以遠程include檔案的.然後include遠端檔案(我把那個檔案放到測試伺服器上),繼續登陸.失敗!!!.結論:遠程破解這種驗證方式是不可行的. 這種方式只適合簡單許可權認證,如果許可權系統比較複雜.這個可能就只能用來封裝同一模組內檔案了. <!-- 這個是login.php檔案,是主要的檔案 --><?php/** * @name login.php * @date Sun Oct 21 18:33:39 CST 2007 * @copyright 馬永占(MyZ) * @author 馬永占(MyZ) * @link http://blog.csdn.net/mayongzhan/ */if (isset($_POST["userName"])) { if ($_POST["userName"]=="MyZ") { define("MyZ","logined"); require("mainPage.php"); }}else { echo <<<HTML<form method="POST" action="login.php" name="loginForm" id="loginForm"><input name="userName" id="userName" type="text" value="" /><input name="submit" id="submit" type="submit" value="提交" /></form>HTML;}?> <!-- 這個是引用的檔案,就是需要許可權認證才能訪問的檔案 --><?php/** * @name mainPage.php * @date Sun Oct 21 18:34:53 CST 2007 * @copyright 馬永占(MyZ) * @author 馬永占(MyZ) * @link http://blog.csdn.net/mayongzhan/ */if (!defined("MyZ")) { die("Access Denied");}echo "In mainPage! <a href='login.php'>back to login</a>";?>