tydl
V2EX  ›  PHP

前后端分离如何保证接口不被滥调用?

  •  
  •   tydl · Aug 22, 2020 · 5299 views
    This topic created in 2090 days ago, the information mentioned may be changed or developed.

    前端 html js 后端 php 根据 URL 返回 json

    接口无需登录,就可以调用

    15 replies    2020-08-23 22:13:37 +08:00
    Hieast
        1
    Hieast  
       Aug 22, 2020
    1. 鉴权
    2. 验签
    3. 限流
    hlwjia
        2
    hlwjia  
    PRO
       Aug 22, 2020 via iPhone   ❤️ 2
    没意义

    不鉴权的 API 和公开 html 一个意思

    怎么你不问防止别人滥访问你的首页
    rootzzz
        3
    rootzzz  
       Aug 22, 2020
    限制调用次数,或者做 token 验证,一段时间内的响应次数等等吧,方法挺多的
    shoaly
        4
    shoaly  
       Aug 22, 2020
    不能保证不被滥用, 反而是让爬虫更方便了, 之前还要解析 dom, 现在一个 json 搞定 美滋滋
    opengps
        5
    opengps  
       Aug 22, 2020
    token 啊,公开的数据有公开的 token
    鉴权的数据要有带鉴权的 token
    Ptu2sha
        6
    Ptu2sha  
       Aug 22, 2020
    字体文件解君愁
    拿到 json 没有意义
    musi
        7
    musi  
       Aug 22, 2020
    调用次数多了直接上验证码
    Veneris
        8
    Veneris  
       Aug 22, 2020
    1.短 token 调接口,长 token 获取短 token
    2.token 限时间一定时间内调用次数
    3.签名验证机制,v2ex.com/t/699346
    autoxbc
        9
    autoxbc  
       Aug 22, 2020
    就我长期爬接口的经验,100 个网站也没有 1 个对公开数据做保护的
    fishCatcher
        10
    fishCatcher  
       Aug 23, 2020 via iPhone
    验证码
    supermoonie
        11
    supermoonie  
       Aug 23, 2020 via iPhone
    接入阿里的滑块,滑动通过放行
    fy
        12
    fy  
       Aug 23, 2020
    关注一下 这个确实头大
    dcalsky
        13
    dcalsky  
       Aug 23, 2020 via Android
    要找到区别普通用户与爬虫用户的点。以下是我战斗的经验。

    1. user-agent,refer, host 等等
    2. 自定义一些复杂的逻辑用 js 生成 cookie 然后后端验证(耐克网站)
    3. 限流,限制单个 ip 一分钟可访问次数
    4. 自己开发或使用第三方验证码

    但是你要记住,无论你的验证机制多复杂,你都无法完全屏蔽非正常用户。用户能访问到的,爬虫一样也可以。
    xuanbg
        14
    xuanbg  
       Aug 23, 2020
    需要鉴权的(一般是后台管理接口)统一鉴权,可以验证身份的必须验证 token,没法验证 token 但可以验签的(开放平台接口)必须验签,连验签都不能做的(如商品浏览、注册登录)就只能限流了。
    nathanleeinph
        15
    nathanleeinph  
       Aug 23, 2020
    前端不会乱调用 出现这种情况内部沟通或者从技术管理制度里去要求改正

    如果是防止外人搞破坏 你们接口加入签名措施即可 这样外人无法伪造参数请求
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   5947 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 98ms · UTC 02:53 · PVG 10:53 · LAX 19:53 · JFK 22:53
    ♥ Do have faith in what you're doing.