只能在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傳給伺服器,服務端拿到校驗碼解密後校驗。