RESTAPI 实际应用的一些疑惑。 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
WIwindson
V2EX    程序员

RESTAPI 实际应用的一些疑惑。

  •  
  •   WIwindson 2016-03-05 13:10:53 +08:00 3869 次点击
    这是一个创建于 3576 天前的主题,其中的信息可能已经有所发展或是发生改变。

    我的 RESTAPI 设计是这样的

    例如获取第一页的 post
    https://example.com/api/posts?page=1
    获取 ID 为 22 的 post
    https://example.com/api/posts/22/
    注册用户
    https://example.com/api/users/

    1.这样别人看到我请求的规则,页数和 id 都可以猜测到,不也很容易抓取里面的数据吗?该怎么破?
    2.注册用户的 API 因为是注册用,所以 POST 方法无权限的要求,如何防止用户一直 POST 请求注册呢?谢谢。

    12 条回复    2016-03-06 23:30:25 +08:00
    abelyao
        1
    abelyao  
       2016-03-05 13:15:43 +08:00
    说实话,这两个问题都不是 RESTful 的问题……
    julor
        2
    julor  
       2016-03-05 13:34:42 +08:00 via Android
    请问你不用 rest 时是怎么解决的?和 rest 有关系?
    orFish
        3
    orFish  
       2016-03-05 13:41:00 +08:00
    api limit 是干嘛的。。。
    第二个问题就算不是 rest 也有这个问题啊
    noli
        4
    noli  
       2016-03-05 13:49:45 +08:00
    应该说,用了 RESTAPI 使得你列出来的这些问题更好解决了。

    1. 如果你的 RESTful 框架支持 filter 或者类似的东西,你可以针对 get 方法来做限制;相反如果你不是用 restful 的话,鬼知道你要针对怎样的 url 和请求来做限制?

    2. 针对恶意大量注册,新加一个验证码 AP ,用来给填对了验证码的注册用户发 token ;然后实现注册逻辑的地方,从数据库里面校验这个 token ,就解决了。 如果不用 restful ,很可能你就要把 注册和反机器人写在一个逻辑了。
    hantsy
        5
    hantsy  
       2016-03-05 19:13:05 +08:00
    这和 REST 一点关系都没,安全设计方面的问题。
    hantsy
        6
    hantsy  
       2016-03-05 19:23:47 +08:00
    你的担心是正常的,我想国内 d 大部分网站也没这方面意识。

    从技术上,实现不难。
    1. csrf , 很多框架都已经内置实现了, Spring Security ,( JSF 2.2 当然这个不属于 REST 范围)等。(检验每次请求的合法性)
    2. API 对使用网站 example.com 授权,用 Oauth 容易实现。(检验 API 客户端的合法性)
    WIwindson
        7
    WIwindson  
    OP
       2016-03-05 19:48:14 +08:00
    @hantsy csrf 应该只是针对 post,put 等请求的吧。
    WIwindson
        8
    WIwindson  
    OP
       2016-03-05 19:49:13 +08:00
    @noli 第二点:这样每次注册都得填验证码,现在主流好像都是注册好几次才需要填的。
    hantsy
        9
    hantsy  
       2016-03-05 20:35:42 +08:00
    @WIwindson 没错。我的 1.2 不针对他问题的一二。

    对保护内容可以用 1. HTTPS 2. 内容 Sign ( JWT 等)

    对于注册嘛。。。验证码不如短信直接。
    noli
        10
    noli  
       2016-03-05 23:10:40 +08:00
    @Wlwindson

    主流是根本不防注册。有多少个 email 地址可以拿来注册?多多益善。
    起码给投资人的数据好看。

    不过看来你也没打算按主流做啊?不然这根本就不是问题
    geekontheway
        11
    geekontheway  
       2016-03-05 23:32:13 +08:00
    1.可以用 UUID
    2.增加限制规则
    akira
        12
    akira  
       2016-03-06 23:30:25 +08:00
    有人抓你说明你的内容还有那么点用,最怕是完全没人有兴趣。。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2711 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 27ms UTC 02:29 PVG 10:29 LAX 18:29 JFK 21:29
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86