Re: [問題] 判斷HTTP_REFERER的來源形式

看板PHP作者 (釣到一隻猴子@_@)時間12年前 (2013/09/16 04:14), 編輯推噓3(301)
留言4則, 4人參與, 最新討論串2/2 (看更多)
※ 引述《LaPass (LaPass)》之銘言: (恕刪) : 請問有沒有辦法區分這次點我的網站的連結是哪一種形式? 這部分剛剛測試了一下 應該對一般常見的瀏覽器都能拿來判斷 先說一下這方法來自於 http://stackoverflow.com/questions/10505678/ 下面是拿手邊所有能測的設備&瀏覽器測完的結果~~~ (依序是URI => ?img 代表網頁內的img tag 沒有query string的就是連結) (第二行是User Agent 第三行是Accept Header) http://pastebin.com/j7SVysGW 總體來說... IE6-8仍然是特立獨行... 判斷兩者分別的方法主要在於一般瀏覽器對img還有hotlink會有不同的 Accept Header 對img大多瀏覽器都只有*/* 只有GC多了image/webp (Google推廣的格式XD) 所以判斷上只要符合下面條件應該就會是連結 反之就是其他的(img audio video ...) (不過embed不適用...) IE6-8的部分如果要判斷是否為連結大概就下面幾個MIME選一個來用 application/x-ms-application, application/x-ms-xbap, application/vnd.ms-xpsdocument, application/xaml+xml 其他瀏覽器目前看來 text/html 直接檢查這個MIME就行了 上面只針對HTML標準的多媒體tag有用 其中Fx的audio多了幾種音訊格式定義(見下方) 但不影響判斷 不過像是embed這類型的話... 下面這個是針對embed&audio的測試(只簡單測了GC IE Fx) http://pastebin.com/vrt3iNp3 比對一下和前面一份的結果 embed的部分應該是無法判斷了(至少IE以外是無法) GC&Fx直接跟連結一樣了 IE的話則是直接丟給WMP 所以UserAgent不同 但都是*/*的Accept Header -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.115.216.102

09/16 09:03, , 1F
推認真詳細
09/16 09:03, 1F

09/16 12:05, , 2F
其實只是閒閒沒事做的大學生而已www
09/16 12:05, 2F

09/16 12:39, , 3F
非常感謝 m(_ _)m
09/16 12:39, 3F

09/16 20:51, , 4F
推一個
09/16 20:51, 4F
文章代碼(AID): #1IDXL2CH (PHP)
討論串 (同標題文章)
文章代碼(AID): #1IDXL2CH (PHP)