作者carlcarl (carl)
看板PHP
標題Re: [請益] 讓網頁只能讓透過ajax取資料 不能直接連
時間Wed Apr 18 04:53:38 2012
基本上我覺得只要能擋掉一般使用者直接去連網頁的部份就行了
要完全擋掉我覺得有點困難
我認為 雖然有些人可能會刻意的產生特定的request去連這些網頁
不過假如沒有安全性上的問題 那倒是無仿
方法的話我也是想用隨機的token來防止
如果可用session的話
可以在server端產生一個隨機的token 並塞到session裡
接著傳到client網頁中 ajax就利用這個token傳送request
server收到request之後 確認request和session中的token是否吻合
吻合的話就傳回應該要傳的資料以及再產生一組隨機的token 塞session後再傳回去
接著client網頁這端收到request並更新內容和token 以此類推
不過這種方法通常都是拿來防止CSRF比較多就是了
然後 我覺得這樣應該就差不多了
當然 使用者是可以收到token之後 查一下然後自己做個request傳過去
不過就像我前面講的 如果沒有安全性上的問題 他這樣做也沒差
而且每次都要查token其實也滿累的 也沒啥好處XD
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 59.127.141.84
推 kerash:推,這個比較簡單簡化,當key的都不要在前端顯示 04/18 09:02
推 terrybob:感謝教學,受教了! 04/18 10:21
→ chrisQQ:好奇問一下,「ajax就利用這個token傳送request」 04/18 10:30
→ chrisQQ:這邊怎麼用這個 token 傳送 request @@? 04/18 10:30
推 kerash:我覺得只是跟前面的概念一樣,把他加到ajax參數再送出去 04/18 10:48
推 cokellen:可以參考FB_APP的access_token機制 04/18 10:55
→ carlcarl:這方法我是看python的django有這機制才會的XDD 04/18 14:00
推 dio833:好奇這個token可以用cookies放在Client端嗎?因為如果要放在 04/18 14:51
→ dio833:AJAX參數中的話,假設前端的資料是用list方式呈現多筆的話 04/18 14:52
→ dio833:可能撰寫上有點麻煩 04/18 14:52
推 dio833:不過就產生單一個Request的來說的話,這個方式真的很方便 04/18 14:54