zoukankan      html  css  js  c++  java
  • 如何防止app接口被别人调用

    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被别人调用的问题。

    这个方案是有效的吗?

  • 相关阅读:
    Oc中UIKit框架的继承结构
    iOS中的事件传递和响应者链
    音频视频,音乐,录音参考资料
    对象序列化(对对象的归档NSKeyedArchiver、接档NSKeyedUnarchiver)的理解
    iOS--UI篇——UIToolbar的简单使用
    iOS--内购的使用方法
    协调-分布式锁
    协调-协调架构原理
    协调-分布式配置
    队列-生产者消费者模式
  • 原文地址:https://www.cnblogs.com/Tpf386/p/5768552.html
Copyright © 2011-2022 走看看