首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Coding
V2EX  ›  程序员

后端接口被盗用有什么好办法么?

  •  
  •   jaskle · 140 天前 via Android · 7191 次点击
    这是一个创建于 140 天前的主题,其中的信息可能已经有所发展或是发生改变。
    我们软件是小程序和手机 APP,小程序打开后是匿名就能够看到的资源信息,就像一个新闻页。但是发布不久就被别人抄了,页面做的稀烂功能一样,接口用的我们的。但是由于是匿名可以访问,所以只要反编译小程序就能看到 JS。恶心的一批。想问大家有什么办法不?
    65 回复  |  直到 2019-08-26 16:32:01 +08:00
        1
    xujialiang   140 天前
    小程序里限制 openid 的调用次数频率
        2
    jaskle   140 天前 via Android
    @xujialiang 没啥用,他小程序直接用的我们的接口,他们连后台都没有,0 成本。
        3
    xuanbg   140 天前
    匿名可以访问就没办法了
        4
    wangsongyan   140 天前 via iPhone
    能不能把小程序的 AppId 传到后台,你再加个验证
        5
    whileFalse   140 天前 via iPhone   ♥ 61
    改接口,对于老版本接口随机返回反动言论,然后趁对方没发现举报之
        6
    echotpq   140 天前 via Android
    设置来源,接口 ip 限制等等
        7
    wangsongyan   140 天前 via iPhone
    @whileFalse 这波操作真是 666
        8
    KuroNekoFan   140 天前 via iPhone
    你们接口不需要 token 校验什么的吗,
        9
    z7356995   140 天前 via Android
    我以前是在第一次请求页面发送一个随机且唯一 rss public key. 然后以后每次请求都用这个 key 加密,服务器上再解开。因为不是明文,每个请求的 key 又不一样,可以难道一般菜鸟吧
        10
    flyzero   140 天前 via Android   ♥ 1
    referer 限制就好了,应该每个小程序对应一个的
        11
    TypeNANA   140 天前 via Android
    请求头里面有 appid,可以借这个来确定请求 app 来源
        12
    lasuar   140 天前
    后端接口谁写的,别人随便调?
        13
    lasuar   140 天前   ♥ 1
    sorry 没看清。相当于你的接口被别人破解了,可以 referer+appid
        14
    wangxiaoaer   140 天前 via Android
    @TypeNANA 对方通过服务器反代怎么办?限 IP ? 很多共用公网 IP,限流容易被误伤。
        15
    hhyvs111   140 天前
    鉴权都不做的吗?
        16
    tanszhe   140 天前
    多简单的事情
    加个中间件 通过 jscode 验证一下不就完了
    其他人知道接口也无法调用
        17
    suke971219   140 天前 via Android
    既然是新闻,在正文加个二维码不就行了🤣🤣
        18
    zgl263885   140 天前 via iPhone
    某种角度来讲,反爬只能提高门槛,不能完全杜绝
        19
    xenme   140 天前 via iPhone
    不定时更新下小程序,然后给他的前端返回错误的垃圾内容
        20
    jaskle   140 天前 via Android
    @whileFalse 你这个操作好像挺溜,不过危险系数太高。
    其实麻烦就在于匿名访问,就是不需要注册,研究了一下腾讯之类的,他们是 web 不允许跨域,而且加了 referer,所以别人偷不了。但是小程序只要设置 ip 白名单就行,他也不管这个 ip 是谁的,哎,恶心
        21
    jaskle   140 天前 via Android
    经查证确实有 referer,可以检验 appid,谢谢大家了
        22
    zibber   140 天前
    小程序静默授权, 接口检查一下登录状态
        23
    sammmmm   140 天前
    referer 不是可以修改吗
        24
    pubby   140 天前 via Android
    @sammmmm 小程序本身不能改 referer,所以还是能识别出来的
        25
    jaskle   140 天前 via Android
    @sammmmm 只有搭建服务端能够抓取修改 referer,浏览器小程序之类的无权修改,如果对方用服务器我们就能轻松封掉他的 ip,所以不必担心
        26
    jmk92   140 天前
    @jaskle 你封 referer,他可以加反代,你封 IP,他可以用拨号 vps(全国混播),而且还容易误伤。
    不能简单的让他访问不了,否则他还会想办法,你要让他时不时的不能用,动不动内容还乱了,专门为他写一套流程,得整的他一脸懵逼,访问还是正常的,时不时就出乱七八糟的,让他自己放弃。
        27
    chinvo   140 天前
    静默授权获取 openid,后台用 openid 取一下用户信息,不是你家的小程序,取不到信息
        28
    neko77   139 天前
    数据投毒,访问频率高的随机搞点乱数据, [斜眼笑]
        29
    mamahaha   139 天前
    感觉这都是开学第一天就该解决的问题,你这都毕业好几年了,还没解决。
        30
    mumbler   139 天前
    简单加个密,就能防住大多数人. 加个 time 和 token 参数,time 传时间戳,客户端都根据时间戳加盐做 md5,生成一个 token,服务器拿到 time 用同样算法生成 token 和传上来的 token 对比一下,不一致就返回假数据,如果一致再检查下时间戳是否过期,过期也返回假数据
        31
    licoycn   139 天前
    小程序授权,之后的接口都需要身份验证,就解决了,随便他们调反正获取不到数据
        32
    unclemcz   139 天前 via Android
    @mumbler 加密代码再混淆一下,能降低小程序 wxapkg 反编译的成功率。
        33
    jianshou   139 天前
    推送辣鸡广告,自己人接收后处理一下
        34
    Greatshu   139 天前   ♥ 1
    这是免费广告位啊。改接口,接入广告联盟,反撸一波。
        35
    xnode   139 天前
    ...多简单的事情, 让自己的客户端价格 key 验证,服务器屏蔽错误 key
        36
    qoras   139 天前
    加一套鉴权机制
        37
    wozhizui   139 天前 via Android
    token 认证
        38
    dremy   139 天前 via iPhone
    动态 csrf token 了解一下,跟时间戳相关加密的
        39
    MMMMMMMMMMMMMMMM   139 天前
    token 他能反复拿

    referer 能伪造

    真正狠的就是悄悄地 间歇性 给他返回错误结果

    他程序三天两头出 BUG 还重现不了心态肯定崩
        40
    ruandao   139 天前
    @MMMMMMMMMMMMMMMM 正常用户也被伤了
        41
    ChangQin   139 天前
    恶魔一点的,后台来一套 se 情的,能导致直接被封但是你们得用另一个接口。
    善良一点的,加各种验证
        42
    wangningkai   139 天前
    一般的简单做法就是接口参数验签
        43
    ruizhipeng001   139 天前 via Android
    在 header 上塞点无用数据 然后把校验信息字段插进去
        44
    unclemcz   139 天前 via Android
    @wangningkai 一台 root 后的安卓机,微信小程序能拿到整个包,然后反编译,现在所知的情况是重要代码加密混淆后能暂时增加反编译的难度,以后可能也无法幸免。
        45
    encro   139 天前
    举报就行了,腾讯小程序域名是有限制的。
        46
    Raynard   139 天前
    抓 1024 的某区文章标题。。

    然后随机返回。。。
        47
    mostkia   139 天前
    @whileFalse woc 太狠了,你是魔鬼吗?哈哈
        48
    Koreyoshi   139 天前
    可以考虑把小程序的云开发,当做中间件来使,通过云函数调用你的 API,小程序的权限控制来限制第三方访问。
        49
    moxiaonai   139 天前 via Android
    检验 refer,前端接口加个复杂点的混淆加密 token
        50
    gIrl1990   139 天前
    @neko77 https://www.v2ex.com/t/586612?p=1#r_7678881
    这种行为感觉有点可耻。
        51
    jaskle   139 天前 via Android
    se 数据估计被封的不仅是对方的小程序,估计连我的域名和主机都凉了。其实我感觉验证 openid 比较稳,这样即使造假也能控制住
        52
    laoyuan   139 天前
    免费流量越多越好啊,不要挡住,悄摸得利用起来
        53
    auciou2   139 天前
    方案有很多。可以给接口增加一个验证 ID+超时。验证 ID 可以定期更新,或者随机产生,每次都不一样。
        54
    luozic   139 天前 via iPhone
    小程序有 id 的。 搞个网关在前面 监控和调用授权整上
        55
    miniwade514   139 天前
    @MMMMMMMMMMMMMMMM 不懂求教,token 他能反复拿是指什么? csrf token 不是一次性的吗?
        56
    NewConn   139 天前 via Android
    @wangsongyan 你好骚啊🌸🐔
        57
    AppxLite   139 天前
    请求加上 jscode,服务端看看能不能解密出 openid,如果不能证明是不合法的调用。
        58
    runtu2019   138 天前
    加密接口数据,解密方法用混淆,多跳几个方法!
        59
    locoz   138 天前 via Android   ♥ 2
    这本质上是一个反爬问题。
    你现在首先要解决接口能直接被别人从小程序上调用的问题,应该有办法可以判断是哪个小程序上调用的。
    解决完这个之后再在接口上加个校验参数,每次调用接口的时候都拿其他参数和当前时间之类的可变值生成一次,并且服务端接到后也生成一次对比是否一致。
    然后在这个基础上将代码进行高度混淆,使生成校验参数的逻辑难以被看懂。
    如果做到这个程度之后还有人搞你,你还可以加上单 IP 频率限制、根据隐藏条件返回假数据、返回数据加密后在小程序端解密等各种手段。
    如果还有人搞你的话你就放弃抵抗吧,他的成本已经被你提到比较高的程度了,经过多次调整、在需要服务器+代理 IP+逆向的情况下依然坚持获取你的数据并放到自己的小程序上展示,说明你的数据价值很高,值得他这么做,你能做的只有举报、走法律手段(成本较高)。
        60
    MMMMMMMMMMMMMMMM   138 天前
    @miniwade514 无限的 Debug 往前追,可以追出你发 token 的流程,跑一遍就行了。

    emmmm,就好比 QQ 现在的网页登录,先访问了一个 url 给你个值 https://ssl.ptlogin2.qq.com/check

    然后再给他各种偏移加盐(js 里都可以直接扒出 function 来用),带好 cookie,失效前一起再送过去,server 给你发 token 就能用了,失效再拿就好

    比 10 年前的登录是复杂了很多,增加了些破解难度,但实际上还是没用
        61
    winglight2016   138 天前
    返回的列表里,随机加上几条广告,详情页面的 URL 加上 redirect 刷广告流量,这样不就坏事儿变好事儿了吗?
        62
    nnnToTnnn   138 天前
    e....... 不就是反爬虫么? 这个很简单啊,直接上 google 的点一下就行了
        63
    wongyusing   138 天前
    你单纯的反爬,其实没有什么意义。
    爬虫是没有办法反的。迟早会被有志之士爬取。
    这样问你吧。
    你这个小程序是什么类型??
    小游戏??
    新闻??
    还是说文章??
        64
    1044523901   138 天前
    @Greatshu 哈哈
        65
    Aether   109 天前
    @jianshou 这才是好主意……厉害。
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   2359 人在线   最高记录 5043   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 47ms · UTC 05:15 · PVG 13:15 · LAX 21:15 · JFK 00:15
    ♥ Do have faith in what you're doing.