如何防止app介面被別人調用

來源:互聯網
上載者:User

標籤:

app開發的時候,如何保護app的介面呢?

用https是我想到的辦法,但是不知道怎麼實現,所以就考慮用token,雖然不是絕對有效,但是能防止一般的使用者來攻擊,高手非要攻擊,只能警示了吧。

 

token=“$(參數md5|按一定規則修改的字串|時間戳記|使用者Id)$”=fasdfasdfasdfasdfadfadfasd

伺服器端構建一個token

伺服器端的token還是很重要的,最重要的是裡面有一個時間戳記,當用戶端將serKoken提交過來的時候,可以用時間限制,serToken的有效時間,如果不在時間限制內,或與上次的ip不同,或與上次的裝置資訊不同,那麼就認為,url非法。

 token可靠的前提是:

1)app端不被反編譯,攻擊者不知道你的構造clientToken的方法;

2)伺服器端serToken產生複雜,演算法不被猜出,驗證足以嚴格,限制攻擊者不能偽造出伺服器端token,特別短時間失效原則,限制一般攻擊者沒時間猜出token

 

 

用戶端構建一個token:

string serToken=GetServerToken(string ip ,string userName,string deviceInfo,string tag);--dedc080af089bccd7fbdf708e3c06898    //擷取一個伺服器端token

string clientParmMd5=Md5("name=test&Value=123");  --a95bc463f71a08ba40e64e52d23b9284  //對參數md5

string clientIp="103.16.127.226"; //用戶端ip

string deviceInfo="xxxxxxxxxx";

string userName="curAppUserName"; //當前app使用者

string startStr="as11as(";

string endstr=")end";

string clientStr=startStr+clientParmMd5+"|"+serToken+"|"+clientIp+"|"+deviceInfo+userName+endStr;   //待加密的client字串

 

string clientToken=GetClientToken(clientStr);

//發起請求

string url=xxxx.com?name=test&Value=123&token=clientToken

 

伺服器端解析驗證token

//解密用戶端提交過來的token

分解為:"as11as(a95bc463f71a08ba40e64e52d23b9284|dedc080af089bccd7fbdf708e3c06898|103.16.127.226|xxxxxx|userName+endStr"

//解密伺服器token

string serToken="dedc080af089bccd7fbdf708e3c06898";

string [] serTokenArr=DecrySerToken(serToken)

這裡有一個驗證伺服器端token的策略,用來驗證提供的伺服器端token,是否還有效,如果無效直接停止後續判斷操作。

//serToken驗證通過,然後判斷url中的參數是否被篡改,

string nowParMd5=Md5(Request.QueryString["name"]+Request.QueryString["Value"]);

string oleParMd5=clientParmMd5;

//判斷如果被篡改,那麼就返回提示資訊,

 

注意收集用戶端的資訊,如果有惡意攻擊,那麼證據將會被保留。

如果你的app被反編譯了,而且被攻擊者知道了你構建token的方法,那麼就只能被攻擊了,警示解決吧。

 

 

 

 

 

伺服器安裝認證使用https或者ssl,再結合auth認證可以解決,app被別人調用的問題。

這個方案是有效嗎?

 

如何防止app介面被別人調用

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.