你閱讀到付費的資料了嘛?

前言

在前幾個月的時候,因緣際會下得知有一個網路媒體網站的存在,而這個網路媒體為了要讓讀者支持這個媒體網站,因此使用使用者付費的制度,讓使用者可以透過付費訂閱的方式,讓網路媒體可以較為長久的做下去。

這個網路媒體在透過先前實習生的介紹之後,對於這個網站判定使用者與訪客是否為付費的讀者之方式深感興趣,因此研究了一陣子之後,才有這篇文章。

本文章,試著解析此網路媒體網站是如何判定訪客為訂閱付費方案的使用者方式,以及展示是否有繞過判定的方式取得付費方案之讀者權限。

網站

在某天的時候,透過網頁瀏覽器瀏覽到該媒體網站:https://theinitium.com/article/20240921-dataphile-who-are-the-asian-americans-in-election-polling

從上面的網站內容可以看到,在文章的最後面會有像面這樣的圖示:

從上述的截圖可以知道,網站希望要訂閱才可以看到付費的資料,但是如果透過網頁瀏覽器取得該網站的原始碼,可以知道其實可以看到網站完整的內容,操作方式就是在上述的網站內容頁面上按下「ctrl+U」之組合鍵,這樣就可以看到網頁瀏覽器發送請求之後,從後端回應的內容,可以從後端回應的內容發現,在上述網站內容被遮掉後面的內容有顯示出來,相關內容節錄之截圖如下所示:

從上述這樣的情形可以知道:

  • 後端收到來自客戶端(網頁瀏覽器)發送的請求之後,就有該新聞的完整內容。
  • 網頁瀏覽器收到完整的網站內容之後,就進行呈現,在前端部分還有JavaScript程式,因此瀏覽器會執行程式,故出現成為會員的圖示擋住新聞內容則是透過前端程式執行的。
  • 除了使用網頁瀏覽器觀看前端網頁內容之外,也可以透過cURL指令去取得指定網址所回應的內容,這樣也可以取得指定的完整新聞內容。

結論

透過這篇短文,可以知道新聞內容對於會員判斷與呈現會員與非會員的方式是怎麼實踐的,因此要真正在設計上嚴格地把會員與非會員界定成可以看不同的內容,則應該要在判斷會員與非會員這件事情上在後端進行解決,讓後端回應給客戶端(網頁瀏覽器)就已經是會員的新聞內容或是非會員的新聞內容了。

參考資料