Re: [请益] REST 网站 api 安全性

楼主: sean72 (.)   2016-10-01 09:38:55
※ 引述《sean72 (.)》之铭言:
: 假设我架设了一个大联盟球员数据查询网站
: 努力整理分析数据,又花钱租了server
: 架构用rest api
: 前端送api到server,后端传json回去
: 如果某个路人看到我的网站整理的很棒
: 他也想做一个
: 那他岂不是只要自己写个前端
: 然后使用和我一样的api,我的server一样会回应我所整理好漂亮整齐的json
: 这个路人岂不是做起了无本生意吗?
: 请问这个问题有解吗?
谢谢大家推文的回答
我了解"真的要爬挡也挡不住"这点 (我自己也是爬资料回来整理)
我在乎的是
不管是token, 时间hash 等等
对方只要模拟一下我的前端
我的server也同样的会回应token给他
别人可以用同样的api取得我的资料
而且不费工夫马上套用到他的网页中
他的前端不可能一边爬 + 一边parse + 一边秀内容给user才对吧?
这样每个end user都得是超级电脑才行
换个例子
假如我架设了一个交通资讯站
使用者除非要分享至FB或是给予评论,不然都不用登入或是验证
有个餐厅美食网
他有一个规划路线的辅助功能
但是美食网不找我谈合作,也不redirect到我的网页
而是从他的client side送一个 api到我的交通网
我的server要怎么知道这个api是来自美食网的client side,
还是来自我自己交通网的client side?
美食网的client side也有可能跟我要token等等的,我也无从分辨
美食网的用户查询交通的次数也不高,我也无法从throttle下手分辨
作者: robler (章鱼丸)   2016-10-01 09:50:00
只要你的前端是会变动的 不管是token还是时间hash,都很难摸拟阿,因为随时会换 他现在能抓,过一会说不定就不行
作者: maxqq (max)   2016-10-01 09:51:00
破解就跟机车大锁一样,只是时间问题,但你不做,问题更大
作者: robler (章鱼丸)   2016-10-01 09:51:00
至于取得token,可以用验证的方式
作者: maxqq (max)   2016-10-01 09:52:00
你的服务在没有效益前,其实也无须过于紧张
作者: robler (章鱼丸)   2016-10-01 09:52:00
这种东西本来就是时间成本的问题,让他用起来很难用就好
作者: pttworld (批踢踢世界)   2016-10-01 10:28:00
摆脱山寨、仿似、抄袭、拟化的实际行为只能不停止更新。
作者: pooznn (我~~~是来被打脸滴!!!)   2016-10-01 11:27:00
除非资料涉及个资 不然这问题大可等到有人爬你资料时再解不迟顺便吉吉他 再赚一条
作者: luciferii (路西瓜)   2016-10-01 13:13:00
不能直接限制 Server 只让前端连吗?
作者: TSW (翘班帝国)   2016-10-01 14:43:00
这篇的推文都是正解,增加复杂度或改由SERVER发请求(丛集化)不过整体来说没什么意义就是了...
作者: doranako (真爱无限)   2016-10-01 16:31:00
取得token需要帐号密码,这是oauth的安全机制,你可以设定定期换密码
楼主: sean72 (.)   2016-10-01 16:40:00
我希望我的网站不需要登入即可使用
作者: TSW (翘班帝国)   2016-10-01 16:53:00
签一个 token 给美食网的 server 用,他们自己要保管好。当美食网使用者要查询地址的时候,将出发点ajax给美食网,美食网server补上目的地跟token,转发请求给你的server。end用错词了,上面的美食网三个字请替换成 "你的交通网client"简单来说就是把你算路线的服务藏到丛集里。抱歉上面都想错了。如果你今天有一个 "开放给任何人使用的交通网"那你就没办法用程式的层面100%杜绝美食网偷用你的资料但是你可以透过 1.法律手段(eula) 2.反爬虫手段逼美食网掏钱跟你合作这种方式下,把你的 api response 给加密,并且每小时换密码或是给每个使用者签发 1hr 过期的token再把你的code给uglify之后,可以达到一定的反爬虫效果。哦对了,既然对方是个美食"网",那你可以先上个cors等到他们用server发请求之后,ban or throttle server ip
作者: bndan (seed)   2016-10-03 13:55:00
api(post)+别开放cross domain 对方就必须经过你的网站 = =题外话:只是经你网站一样能拿走资料(爬虫)就是了真的要玩大点 就是各种妨碍逼对方解JS EX:将资料转成canvas输出 XD..逼对方解你的JS 在即时中从你的内存拿资料

Links booklink

Contact Us: admin [ a t ] ucptt.com