看板 Soft_Job 關於我們 聯絡資訊
※ 引述《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下手分辨 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 204.96.168.3 ※ 文章網址: https://www.ptt.cc/bbs/Soft_Job/M.1475285937.A.88B.html
robler: 只要你的前端是會變動的 不管是token還是時間hash,都很 10/01 09:50
robler: 難摸擬阿,因為隨時會換 他現在能抓,過一會說不定就不行 10/01 09:50
maxqq: 破解就跟機車大鎖一樣,只是時間問題,但你不做,問題更大 10/01 09:51
robler: 至於取得token,可以用驗證的方式 10/01 09:51
maxqq: 你的服務在沒有效益前,其實也無須過於緊張 10/01 09:52
robler: 這種東西本來就是時間成本的問題,讓他用起來很難用就好 10/01 09:52
maxqq: 就像寶可夢的 app,你看官方開發團隊有緊張嗎? 10/01 09:52
maxqq: 你要是真的很緊張,就架設一個 叢集環境 db/api/fe/be 10/01 09:54
maxqq: api 只對內,不對外,反正也都是給 be/fe/db 的接口 10/01 09:56
pttworld: 擺脫山寨、仿似、抄襲、擬化的實際行為只能不停止更新。 10/01 10:28
pooznn: 除非資料涉及個資 不然這問題大可等到有人爬你資料時再解 10/01 11:27
pooznn: 不遲 10/01 11:27
pooznn: 順便吉吉他 再賺一條 10/01 11:28
luciferii: 不能直接限制 Server 只讓前端連嗎? 10/01 13:13
TSW: 這篇的推文都是正解,增加複雜度或改由SERVER發請求(叢集化) 10/01 14:43
TSW: 不過整體來說沒什麼意義就是了... 10/01 14:48
※ 編輯: sean72 (172.89.32.145), 10/01/2016 16:28:22 ※ 編輯: sean72 (172.89.32.145), 10/01/2016 16:29:30
doranako: 取得token需要帳號密碼,這是oauth的安全機制,你可以設 10/01 16:31
doranako: 定定期換密碼 10/01 16:31
sean72: 我希望我的網站不需要登入即可使用 10/01 16:40
TSW: 簽一個 token 給美食網的 server 用,他們自己要保管好。 10/01 16:53
TSW: 當美食網使用者要查詢地址的時候,將出發點ajax給美食網, 10/01 16:54
TSW: 美食網server補上目的地跟token,轉發請求給你的server。end 10/01 16:55
TSW: 用錯詞了,上面的美食網三個字請替換成 "你的交通網client" 10/01 16:59
TSW: 簡單來說就是把你算路線的服務藏到叢集裡。 10/01 16:59
TSW: 抱歉上面都想錯了。 10/01 17:05
TSW: 如果你今天有一個 "開放給任何人使用的交通網" 10/01 17:06
TSW: 那你就沒辦法用程式的層面100%杜絕美食網偷用你的資料 10/01 17:07
TSW: 但是你可以透過 1.法律手段(eula) 2.反爬蟲手段 10/01 17:10
TSW: 逼美食網掏錢跟你合作 10/01 17:11
TSW: 這種方式下,把你的 api response 給加密,並且每小時換密碼 10/01 17:24
TSW: 或是給每個使用者簽發 1hr 過期的token 10/01 17:25
TSW: 再把你的code給uglify之後,可以達到一定的反爬蟲效果。 10/01 17:27
TSW: 哦對了,既然對方是個美食"網",那你可以先上個cors 10/01 17:37
TSW: 等到他們用server發請求之後,ban or throttle server ip 10/01 18:01
bndan: api(post)+別開放cross domain 對方就必須經過你的網站 = = 10/03 13:55
bndan: 題外話:只是經你網站一樣能拿走資料(爬蟲)就是了 10/03 13:56
bndan: 真的要玩大點 就是各種妨礙逼對方解JS EX:將資料轉成canvas 10/03 13:57
bndan: 輸出 XD..逼對方解你的JS 在即時中從你的記憶體拿資料 10/03 13:58