84669 人學習
152542 人學習
20005 人學習
5487 人學習
7821 人學習
359900 人學習
3350 人學習
180660 人學習
48569 人學習
18603 人學習
40936 人學習
1549 人學習
1183 人學習
32909 人學習
只能在app內進行調用,不能在web端調用。
我好像聽說有這個東西。我用的是spring mvc框架,不知道怎麼實現這樣的功能。 。
只能說做到部分禁止。
在app裡呼叫之前設定一個特殊的User Agent,例如“My own app”,在程式開始檢查瀏覽器發送過來的User Agent,如果不是“My own app”,則直接報錯。
但如果遇到高手,他們可以任意偽造User Agent,他們只要一攔截你的App和你的伺服器之間的通訊,就能知道你使用了什麼樣的User Agent,然後在瀏覽器裡偽造一個跟你要求的一模一樣的字串就行了。
取得目前時間然後加鹽加密,透過url或ua送到伺服器解析,解析出來與伺服器時間對比,超過1分鐘的都丟掉。這樣別人就算偽造了ua,也只能用1分鐘,然後再去偽造新的ua。
https客戶端認證
如果使用http介面的話,不妨加一層認證邏輯;或使用非http介面,這樣web端就無法呼叫了
終級方案就是@markov 說得開啟服務端https的雙向認證。 簡單點,也可以app產生校驗碼做為http header傳給伺服器,服務端拿到校驗碼解密後校驗。
只能說做到部分禁止。
在app裡呼叫之前設定一個特殊的User Agent,例如“My own app”,在程式開始檢查瀏覽器發送過來的User Agent,如果不是“My own app”,則直接報錯。
但如果遇到高手,他們可以任意偽造User Agent,他們只要一攔截你的App和你的伺服器之間的通訊,就能知道你使用了什麼樣的User Agent,然後在瀏覽器裡偽造一個跟你要求的一模一樣的字串就行了。
取得目前時間然後加鹽加密,透過url或ua送到伺服器解析,解析出來與伺服器時間對比,超過1分鐘的都丟掉。這樣別人就算偽造了ua,也只能用1分鐘,然後再去偽造新的ua。
https客戶端認證
如果使用http介面的話,不妨加一層認證邏輯;
或使用非http介面,這樣web端就無法呼叫了
終級方案就是@markov 說得開啟服務端https的雙向認證。
簡單點,也可以app產生校驗碼做為http header傳給伺服器,服務端拿到校驗碼解密後校驗。