❶ API介面簽名驗證_MD5加密出現不同結果的解決方法
系統在提供介面給第三方系統使用時,通常為了安全性會做介面加密。
設計原則 :使用HTTPS安全協議 或 傳輸內容使用非對稱加密,這里採用後者。
在對參數進行加密,生成sign時,相同的參數兩次加密的結果不一樣。
加密規則:
1.拼接出來的字元串不一致
測試時,在加密前將要加密的字元串列印出來比較,發現兩次字元串一致。
2.編碼問題
加密時,兩次的默認編碼不一致。
在上述加上默認編碼: byte[] btInput = content.getBytes("utf-8"); ,問題解決。
簡單實現:
1.介面調用方和介面提供方約定好統一的參數加密演算法。
2.介面調用方在調用時把加密後的signature放在參數中去請求介面。
3.判斷時間戳有效期。
4.將參數用約定號的加密演算法進行加密,與參數中的signature進行比較,一致則調用介面。
❷ 微信小程序一定啟用api加密嗎
不是。微信小程序並不一定需要啟用API加密。API加密是一種保護API介面數據安全的技術手段,通過對傳輸的數據進行加密處理,可以防止數據在傳輸過程中被竊取或篡改。對於一些非敏感的數據或功能簡單的小程序,開發者可以選擇不啟用API加密。需要根據具體的業務需求和數據安全性要求來決定是否啟用API加密。
❸ php開發api介面,如何做才算是安全的
這個問題很深
安全,不敢當,因為web安全問題很多,不僅僅是PHP編碼而已,有很多安全上的問題需要做處理,像伺服器漏洞、埠開放都會導致被黑,這都是很正常的。
只能說 比如在我做PHP開發過程的一些安全保護和在網路安全公司開發時的工作要求:
1、最基礎的,提供的api介面 要配置https。
2、api返回響應的信息,要盡可能使用消息加密返回,如高位數的 rsa加密內容。
3、接收的回調開放介面,盡可能做到使用回調黑、白名單,如加ip白名單放行,或ip黑名單禁止訪問。
4、不要相信用戶輸入、輸入信息要進行編碼轉換、轉義、過濾、使用框架和插件進行處理,如MySQL查詢的要進行參數綁定、如顯示問題要避免xss攻擊會進行過濾。
5、授權操作,錯誤限制設置閥值、超過閥值限制訪問、如最基礎的登錄功能。
6、常見額弱口令問題導致漏銅,應設置高強度口令,避免程序爆破。
7、文件上傳問題、應嚴格校驗文件類型、後綴、格式、及文件目錄許可權設置,從而避免文件上傳漏洞導致惡意代碼或webshell攻擊。
8、開發環境和生產環境隔開,不要再生產上面開debug、及時更新使用框架漏洞補丁如PHP國內常用 tp系列以前偶爾爆出漏洞(我用的較多就是tp5 ....),還有框架不要用最新要選擇最穩定的。
最後注意不管是驗證還是過濾,在客戶端執行過一次也好,在服務端,都要再次執行驗證和校驗。
和盛之文 我的文章保存網站,歡迎訪問學習或參考
❹ API鎺ュ彛鍏ラ棬錛堜簩錛夛細API鎺ュ彛鐨勭懼悕楠岀懼拰鍔犺В瀵嗗師鐞
鏈鏂囩洰褰曪細
API鎺ュ彛涓轟粈涔堣佺懼悕鍔犲瘑錛
API鎺ュ彛濡備綍鍔犲瘑錛
涓銆丄PI鎺ュ彛涓轟粈涔堣佺懼悕鍔犲瘑錛
鎯寵薄涓涓鍦烘櫙錛氫竴浣嶈鎬箙涓嶈佺殑濂藉厔寮燂紝紿佺劧鍦ㄥ井淇¢噷闈㈣窡浣犺粹滃厔寮燂紝鍊熸垜1涓囧簲鎬ュ憲鈥濓紝浣犱細鎬庝箞鍙嶅簲錛
鎴戞兂澶ч儴鍒嗕漢椹涓婄殑鍙嶅簲灝辨槸錛氭槸涓嶆槸琚鐩楀彿浜嗭紵浠栨槸鏈浜哄悧錛
瀹為檯涓婅繖鏄鎴戜滑鏃ュ父鐢熸椿涓甯歌佺殑閫氳琛屼負錛岀郴緇熼棿璋冪敤API鍜屼紶杈撴暟鎹鐨勮繃紼嬫棤寮備簬浣犲拰鏈嬪弸闂寸殑寰淇℃矡閫氾紝鎵鏈夊勪簬寮鏀劇幆澧冪殑鏁版嵁浼犺緭閮芥槸鍙浠ヨ鎴鍙栵紝鐢氳嚦琚綃℃敼鐨勩傚洜鑰屾暟鎹浼犺緭瀛樺湪鐫鏋佸ぇ鐨勫嵄闄╋紝鎵浠ュ繀欏誨姞瀵嗐
鍔犲瘑鏍稿績瑙e喅涓や釜闂棰橈細
浣犳槸鏈浜哄悧錛燂紙絳懼悕楠岀撅級
浣犱紶榪囨潵鐨勪俊鎮鏄瀵圭殑鍚楋紵錛堝姞瀵嗚В瀵嗭級
浜屻丄PI鎺ュ彛濡備綍絳懼悕楠岀懼拰鍔犲瘑瑙e瘑錛
鍙や唬浜哄啓淇¢氳繃閭宸浼犱俊錛岃礬閫旈仴榪滐紝浠栦滑涓轟簡閬垮厤閲嶈佺殑鍐呭硅鍙戠幇錛屽喅瀹氱敤瀵嗘枃鏉ュ啓淇★紝姣斿傛垜鎯寵〃杈鋸滃叓鐧炬爣鍏典笂鍖楀潯鈥濓紝鎴戝啓鎴800north錛屽苟涓旀敹浠朵漢涔熺煡閬撴庝箞闃呰昏繖浠戒俊鎮錛屽嵆浣胯礬涓婄殑浜烘埅鍙栧伔鐪嬩簡錛屼篃鐪嬩笉鎳備綘浠鍦ㄨ寸殑浠涔堟剰鎬濄傚悓鏃舵垜鍦ㄦ枃鏈絳句笂鎴戠殑瀛楄抗錛屽湪鐩掑瓙閲屾斁涓婃垜鐨勪俊鐗╋紙姣斿備竴鐗囩窘姣涚瓑絳夛級錛岃繖鏍鋒敹浠朵漢涔熷氨鐭ラ亾榪欎喚淇℃槸鎴戝瘎鍑虹殑浜嗐
榪欒縐頒負鈥滃圭О鎬у瘑鐮佲濓紝涔熷氨鏄鍔犲瘑鐨勪漢鐢ˋ鏂瑰紡鍔犲瘑錛岃В瀵嗙殑浜虹敤A鏂瑰紡瑙e瘑錛屾湁浠涔堢己鐐瑰憿錛
濡傛灉浣犵粡甯鎬紶杈擄紝榪欏氨寰堝規槗琚鍙戠幇浜嗗瘑鐮佽勫緥錛屾瘮濡傛垜寰堝揩灝辯煡閬撲綘瀵勪俊閮戒細甯︿笂涓鐗囩窘姣涳紝閭f垜浠ュ悗涔熷彲浠ユ悶涓鐗囩窘姣涙潵鍐掑厖浣犱簡銆傚姞涓婏紝濡傛灉鎴戣佺粰寰堝氫漢瀵勪俊錛屾垜灝辮佽窡姣忎釜浜哄憡璇夋垜鐨勫姞瀵嗘柟寮忥紝璇翠笉鍑嗘湁涓涓鍗у簳灝辨妸浣犵殑鍔犲瘑鏂瑰紡鍑哄崠浜嗐
鍥犱負浜掕仈緗戜紶杈撶殑瀵規帴鏂規暟閲忓拰棰戠巼闈炲父楂橈紝鏄劇劧鎼炰釜瀵圭О鎬у瘑鐮佹槸涓嶅畨鍏ㄧ殑銆備簬鏄錛屽熀浜庡圭О鎬у瘑鐮佸歡浼稿嚭鈥滈潪瀵圭О瀵嗙爜鈥濈殑姒傚康銆
1. 鍏縐侀掗鈥斺旂懼悕楠岀懼強鍔犺В瀵嗗師鐞
閫氫織鐨勮В閲婏細A瑕佺粰B鍙戜俊鎮錛孊鍏堟妸涓涓綆卞瓙緇橝錛孉鏀跺埌涔嬪悗鎶婁俊鏀捐繘綆卞瓙錛岀劧鍚庝笂閿侊紝涓婇攣浜嗕箣鍚嶢鑷宸變篃鎵撲笉寮錛屽彇涓嶅嚭鏉ヤ簡錛屽洜涓洪掗鍖欏湪B鐨勬墜閲岋紝榪欐牱鍗充嬌璺涓婅鎴鍙栦簡錛屽埆浜轟篃鎵撲笉寮綆卞瓙鐪嬮噷闈㈢殑淇℃伅錛屾渶鍚嶣灝辮兘瀹夊叏鍦版敹鍒癆鍙戠殑淇′簡錛屽苟涓斾俊鎮娌℃湁娉勯湶銆
鐜板湪鎴戜滑浠ヤ竴涓鍗曞悜鐨凙鍙戜俊鎮緇橞鐨勫満鏅榪涜屾繁鍏ヤ簡瑙e叕縐侀掗宸ヤ綔鍘熺悊銆
鍙戦佽呭拰鎺ユ敹鑰呴兘鏈2濂楀姞瑙e瘑鐨勬柟娉曪紝鑰屼笖浠栦滑鎶婂叾涓涓濂楀姞瀵嗘柟娉昦鍜岃В瀵嗘柟娉昩閮藉叕寮錛堣櫄綰挎爣榛戱級錛
榪欓噷鎻愬埌鐨勫姞瑙e瘑錛屽洜涓哄瘑鐮佸﹁繃浜庢繁濂ワ紝鏃犳硶瑙i噴銆傚ぇ瀹墮渶榛樿ゅ姞瀵嗘柟娉曟槸涓嶈兘鍙嶆帹鍑鴻В瀵嗘柟娉曠殑錛岃В瀵嗘柟娉曟槸涓嶈兘鍙嶆帹鍑哄姞瀵嗘柟娉曠殑銆俛鍔犲瘑灝卞繀欏籥瑙e瘑錛宐鍔犲瘑灝卞繀欏籦瑙e瘑錛
鐜板湪A闇瑕佸悜B鍙戦佷竴鏉′俊鎮錛屽洜涓轟俊鎮鐨勫唴瀹瑰緢閲嶈侊紝浠栧氨鐢ㄦ帴鏀惰匓鐨勫姞瀵嗘柟娉昪榪涜屽姞瀵嗭紝榪欐牱鍙鏈塀鑷宸辯殑瑙e瘑鏂規硶c鎵嶈兘瑙e紑錛屼換浣曚漢鑾峰彇浜嗛兘瑙e紑涓嶄簡錛屽寘鎷珹鑷宸變篃瑙d笉寮錛
鍦ˋ鍚態鍙戦佷俊鎮鐨勫悓鏃訛紝闇瑕佸甫涓婅嚜宸辯殑絳懼悕錛岃繖涓鏃跺橝鐢ㄨ嚜宸辨墠鐭ラ亾鐨勫姞瀵嗘柟娉昩榪涜屽姞瀵嗭紝鍥犱負浠諱綍浜洪兘鐭ラ亾瑙e瘑鏂規硶b錛屾墍浠ヤ換浣曚漢閮藉彲浠ョ湅鍒癆鐨勭懼瓧錛屼篃灝辨槸浠諱綍浜洪兘鐭ラ亾榪欐潯鏄疉鍙戝嚭鏉ョ殑淇℃伅錛屼絾鍥犱負絳懼悕涓嶆槸涓嶈兘鍏寮鐨勪俊鎮錛屾墍浠ヨ瑙e瘑浜嗕篃娌℃湁鍏崇郴銆
鎬葷粨錛
錛1錛夌懼悕浼氳浠諱綍浜鴻幏鍙栵紝浣嗗洜涓虹懼悕鍐呭逛笉娑夊強鏍稿績鍐呭癸紝琚鑾峰彇鐮磋В鏄疧K鐨勩
錛2錛夐噸瑕佸唴瀹瑰彧鑳芥帴鏀舵柟瑙e瘑錛屼換浣曚漢鑾峰彇浜嗛兘鏃犳硶瑙e瘑銆
錛3錛夋帴鏀惰匓鍙鏈夐獙璇佺懼悕鑰呮槸A鐨勪俊鎮錛屾墠浼氭墽琛屾帴涓嬫潵鐨勭▼搴忋傞樋鐚闃跨嫍鍙戞潵鐨勪俊鎮涓嶄簣鎵ц屻
鎹e矓鑰匔鍙鑳界殑鎯呭喌錛
錛1錛変粬鑾峰彇鍒拌繖鏉′俊鎮鏄疉鍙戝嚭鐨勶紝浣嗙湅涓嶆槑鐧藉姞瀵嗙殑鍐呭廣
錛2錛変粬鍙浠ヤ篃鐢ㄦ帴鍙楄匓鐨勫姞瀵嗘柟娉昪鍚戞帴鏀惰匓鍙戜俊鎮錛屼絾浠栨棤娉曞啋鍏呭彂閫佽匒鐨勭懼悕錛屾墍浠B涓嶄細鎺ュ彈C鐨勮鋒眰銆
錛2錛夊叕縐侀掗鐨勯潪瀵圭О鍔犲瘑+session key瀵圭О鍔犲瘑
2. 鍏縐侀掗鐨勯潪瀵圭О鍔犲瘑+session key瀵圭О鍔犲瘑
涓婁竴灝忚妭瑙i噴鐨勫叕縐侀掗鍔犲瘑鏄鏍囧噯鍜屽畨鍏ㄧ殑錛屼絾鍥犱負榪欑被闈炲圭О鍔犲瘑瀵圭郴緇熻繍綆楃殑闇奼傛瘮杈冨ぇ錛屽湪淇濊瘉瀹夊叏鐨勫墠鎻愪笅錛岃繕鏄灝介噺甯屾湜鎻愬崌紼嬪簭鍝嶅簲鐨勬椂鏁堛傛墍浠ョ洰鍓嶄富嫻佸簲鐢ㄧ殑鍙︿竴縐嶅姞瀵嗘柟寮忔槸鍏縐侀掗鐨勯潪瀵圭О鍔犲瘑+session key瀵圭О鍔犲瘑銆
褰揂鍚態鍙戦佷俊鎮鐨勬椂鍊欙紝涓嶉渶瑕佺敤鍒癇鐨勫叕縐侀掗銆
A鐢ㄨ嚜宸辯殑鍔犲瘑鏂規硶b鍔犲瘑絳懼悕鍜屼竴鏉$┖淇℃伅錛屽洜涓轟俊鎮鏃犲叧閲嶈侊紝琚鐮磋В浜嗕篃娌″叧緋伙紝B鍒╃敤瑙e瘑鏂規硶b楠岃瘉浜嗘槸A鍙戞潵鐨勪俊鎮銆
榪欎釜鏃跺欙紝鎺ユ敹鑰匓鐢ㄥ彂閫佽匒鐨勫姞瀵嗘柟娉昦錛屽姞瀵嗕竴涓鏈夋椂鏁堢殑鍔犲瘑鏂規硶緇橝錛堢浉褰撲簬鍛婅瘔A錛岃繖2涓灝忔椂錛屾垜浠鐢ㄨ繖涓鏆楀彿榪涜屾矡閫氾級錛屽洜涓哄彧鏈堿鏈夎В瀵嗘柟娉曪紝鎵浠ュ埆浜鴻幏鍙栦簡涔熶笉鑳界煡閬搒ession key鏄浠涔堛
A鎺ユ敹鍒皊ession key浜嗕互鍚庯紝A鐢ㄨ繖縐嶆湁鏃舵晥鐨勫姞瀵嗗嚱鏁板彂閫侀噸瑕佷俊鎮錛岀懼悕浠嶇敤鍔犲瘑鏂規硶b鍔犲瘑錛孊鐢ㄥ悓鏍蜂竴涓鍔犲瘑鍑芥暟瑙e瘑錛堝疄闄呬笂鍙樻垚浜嗗圭О鍔犲瘑錛屽ぇ瀹墮兘鐢ㄥ悓鏍風殑鏂瑰紡鍔犺В瀵嗭級
2灝忔椂鍚庯紝鍐嶉噸澶嶇2姝ワ紝鏇存柊鍔犲瘑鏂規硶銆
3. 鎬葷粨
錛1錛夊綋B鍚慉鍙戝嚭涓存椂鏈夋晥鐨勫姞瀵嗘柟娉曚箣鍚庯紝閫氳鐨勮繃紼嬪彉涓轟簡瀵圭О鍔犲瘑錛
錛2錛夎繖綾誨姞瀵嗘柟寮忕殑鏍稿績鏄鏃舵晥鎬э紝蹇呴』鍦ㄧ煭鏃墮棿鍐呮洿鏂幫紝鍚﹀垯鍥哄畾鐨勮勫緥瀹規槗琚鑾峰彇鐮磋В銆
鎹e矓鑰匔鍙鑳界殑鎯呭喌錛
錛1錛変粬鑾峰彇鍒癇鍙戝嚭鐨剆ession key鐨勫姞瀵嗘枃浠訛紝鏃犳硶鐮磋Вsession key鏄浠涔堛傚洜涓鴻В瀵嗘柟娉曞湪A鎵嬩笂錛
錛2錛夐氳繃鍚勭嶆墜孌碉紝C鐮磋В鍑簊ession key鐨勫姞瑙e瘑鏂規硶錛屼絾鍥犱負鏃舵晥宸插埌錛宻ession key鏇存柊錛孋寰掑姵鏃犲姛錛
錛3錛塁鍦ㄦ椂鏁堝唴鐮磋В鍑簊ession key錛屼絾鏃犳硶鍐掑厖A鐨勭懼悕銆
浠ヤ笂鏄2縐嶅父瑙佺殑鍔犺В瀵嗘柟寮忥紝姣忎釜寮鏀懼鉤鍙頒細鍦ㄦ傝堪涓鏈寮濮嬩粙緇岮PI璋冪敤鐨勫畨鍏ㄥ姞瑙e瘑鏂規硶錛岃繖鏄姣忎釜瀵規帴榪囩▼涓蹇呴』鐨勫噯澶囨祦紼嬶紝濡傚井淇′紒涓氬鉤鍙板湪姒傝堪涓灝卞凡浠嬬粛鍒╃敤絎2縐嶆柟娉曪紙浼佷笟寰淇″懡鍚嶄負access_token錛夎繘琛屽姞瑙e瘑浼犺緭銆
涓夈佹渶鍚
浠ヤ笂灝辨槸API絳懼悕楠岀懼拰鍔犺В瀵嗙殑鍩烘湰鍘熺悊錛屾帴涓嬫潵鎴戜細緇х畫鏇存柊API鐨勮鋒眰鏂瑰紡絳夐棶棰橈紝鍚屾椂浠ヤ紒涓氬井淇★紝寰淇″紑鏀懼鉤鍙扮瓑澶у瀷寮鏀懼鉤鍙扮殑涓氬姟瑙i噴鍚勫鉤鍙版敮鎸佺殑鐜版湁鍔熻兘銆
緇間笂錛屾按騫蟲湁闄愶紝濡傛湁綰版紡錛屾暚璇鋒寚鍑恆