<?php/** * 判斷用戶名密碼的函數(shù) 此函數(shù)不允許返回東西 調(diào)用的時候直接調(diào)用 用戶正常自然沒反應(yīng) 用戶不正常,這個函數(shù)直接結(jié)束程序運行 。*/function checkUserNamePassWord(){$keyStr = "這里是加密字符串,這個串只有你自己知道是什么 。";$key = POST("key"); //這個key是客戶端把用戶名密碼時間加密字符串運算后的結(jié)果//用當前日期當?shù)诙荑€,這個作用是每天的密鑰都不一樣 。//即便被攔截了,也算不出規(guī)律來,當然源碼泄露了就不行了 。//不能太精確,因為客戶端與服務(wù)器端的時間不可能完全一樣 。$keyStr_Today = date('Ymd',time());//訪問數(shù)據(jù)庫,一定要用PDO的這個參數(shù)方式 。//這個方式在代入數(shù)據(jù)與直接寫在SQL語句里不一樣 。//sql注入在這種使用方式下完全不會生效 。$sqlPar['username'] = POST("userName"); //這個沒加密的必要,這個在輸入框里就能看到,而且也會在很多地方顯示 。if($sqlPar['username'] === false || $key === false){//非法調(diào)用}//不要在sql里直接比對用戶名密碼//而且傳過來的數(shù)據(jù)也沒有密碼//要取出該用戶的記錄,然后計算后與傳過來的加密身份信息對比$sql = "select * from tb_users where userName=:username"; //你可以在這limit 1$rec = db_query($sql, $sqlPar);if($rec['count'] > 0){$keyInDB = md5(md5($keyStr).md5($rec['rows'][0]['userName']).md5($keyStr_Today).md5($rec['rows'][0]['passWord']));//上面這句是加密方式,把加密字符串、用戶名、當前日期、密碼的MD5連接起來并再計算一次MD5//當然你還可以再加點別的東西,比如字符串反轉(zhuǎn),以及其它變量之類的 。//上面這句計算出來的和$key中的一樣時,說明密碼是對的 。if($key == $keyInDB){//用戶名密碼對//此時我們啥也不做//或者你想設(shè)置某些變量也行}else{//否則die(); //結(jié)束程序運行,}}}代碼里都有注釋,應(yīng)該能看清楚 。而且還有其它的自定義函數(shù)我就不放代碼了 。
這樣我們在擴充API時只需要在對應(yīng)路徑下寫PHP代碼文件就行,而且很多函數(shù)可以直接使用,不用include任何文件 。
而且這個系統(tǒng)內(nèi)所有的文件在單獨訪問時都會出錯(可以設(shè)置PHP不顯示錯誤信息),而接口文件在參數(shù)不正確的情況下也不會有什么具體運行結(jié)果 。
也沒有默認的首頁文檔可以訪問 。
文件路徑和文件名都沒規(guī)律,在網(wǎng)上都查不到參考 。
那么想黑掉這套API只有兩個辦法:
0、黑掉服務(wù)器操作系統(tǒng),再從文件系統(tǒng)入手 。
1、破解客戶端代碼或者攔截訪問數(shù)據(jù),找到訪問規(guī)律 。
這兩點暫時無能為力解決 。
**邊寫文檔邊寫代碼,頭有點亂,可能有遺漏的東西,不知道大家能不能看懂 。
**此API系統(tǒng)還有很多地方可以進一步加密處理,但我個人感覺沒必要了 。已經(jīng)夠可以了 。
**此代碼沒有使用太先進的語法,比如類啊命名空間啊啥的,新版本PHP添了好多特性,但我比較傾向于不去使用它們,我要盡量的讓代碼對環(huán)境沒有要求,在盡可能多的版本環(huán)境下都能運行 。
畢竟我們要的是安全,而不是讓所有人能讀懂我們的代碼 。
有啥忘了的以后再補充吧 。
以上關(guān)于本文的內(nèi)容,僅作參考!溫馨提示:如遇健康、疾病相關(guān)的問題,請您及時就醫(yī)或請專業(yè)人士給予相關(guān)指導!
「愛刨根生活網(wǎng)」www.malaban59.cn小編還為您精選了以下內(nèi)容,希望對您有所幫助:- 戶外健身必備 十件裝備
- c語言取子串函數(shù)講解 php字符串拼接函數(shù)
- 一個完整的網(wǎng)上商城的源碼 php商城系統(tǒng)技術(shù)難點
- 為啥國內(nèi)男子去了朝鮮后 朝鮮為什么不感激中國
- 青悅坊是科創(chuàng)匯(廣州健康管理有限公司旗下品牌,也是在國內(nèi)第一家的健康管理中心
- 九月適合去哪里旅游 國內(nèi)
- 有什么推薦的向當?shù)厝寺糜巫稍兊钠脚_啊,要國內(nèi)的那種
- apple tv+國內(nèi)使用教程 ipad tv怎么連接電視
- 信封印刷標準 信封尺寸
- php編程試題及答案 php手冊菜鳥教程
