2009-07-29 88 views
1

從紐約時報退房this page違反Web開發規則

http://homedelivery.nytimes.com/HDS/learnMorePopUp.do ?mode=common.learnMorePopUp
&productId=NDS
&prodRate=7.40

我很驚訝地看到,當我手動修改prodRate參數,頁面更新:

  • 介紹訂閱率。
  • 正常訂閱率。

自己動手!現在,我沒有做太多的網頁開發,但我知道這可能不應該發生。所以我想知道:

  • 什麼樣的實施會導致此行爲?
  • 你將如何修改頁面來隱藏最終用戶的敏感參數?
+4

http://thedailywtf.com/Articles/So-You-Hacked-Our-Site!.aspx – Beska 2009-07-29 19:32:59

+0

雖然修改後可以用頁面做什麼?它看起來不像可以在這個頁面上提交這些值。 – Steven 2009-07-29 19:35:21

回答

1

您可能要改一下你的問題,作爲唯一的答案,我能想象是不是太照明:

問:什麼樣的實施將導致此行爲?
答:允許用戶輸入控制內部可信行爲的一種方法。如果你問「爲什麼有人會這樣做」,我通常認爲這是一個誤解。代碼作者通常沒有意識到用戶可以(a)控制價值和/或(b)甚至發現它存在。大多數情況下,我已經看到這實現爲重定向 - 您單擊一個按鈕,服務器確定數量,然後將瀏覽器重定向到一個新頁面,該頁面保留值

問:如何修改頁面以隱藏此類頁面來自最終用戶的敏感參數?
答:不要以最終用戶可編輯的方式存儲值。如果服務器上有可用的存儲空間(如Servlet引擎),則將其存儲在會話上下文中。如果您沒有良好的會話機制,則可以將其存儲在簽名或HMAC Cookie中。

3

他們可能只是讀取查詢字符串中的值以進行顯示。我非常懷疑(或者真的希望)任何實際的訂單處理都不是基於該值,而是來自使用產品Id的查找。

+0

有人需要運行這個實驗! (不是我) – Beska 2009-07-29 19:33:41

1

那麼,你真的試過訂購嗎?它可能驗證後端的輸入。

至於其他選項,他們可能會考慮發佈信息或將信息放在cookie中。這兩個都不是確切的證明。您無法獲得有帖子的新窗口,並且用戶可以關閉Cookie。

+0

還沒有試過...沒有鏈接在這個頁面上。但是,如果他們所有的編程都是這樣的話,我就可以免費獲得一些免費的NYT! – 2009-07-29 19:37:46

1

您無法從該頁面訂購,所以我在這裏沒有看到安全漏洞。是的,這很俗氣,但如果實際的訂單流如此糟糕,我會更加關心。它確實可以很容易地在一個地方更新費率,只需傳遞該值,以便我可以看到它是如何發生的。

我們有一些評分頁面,幾乎完全相同的事情。他們沒有連接到實際的採購流程,所以參數很好。如果客戶希望通過編輯URL來迷惑自己,那麼......實際的訂單流是所有數據庫驅動的,用戶編輯是永遠不可信的。

1

我發現了這樣的各種不良做法。我看到網站在Querystring中傳遞了整個SQL查詢,然後執行執行。我還記得找到一家網上商店,以查詢字符串的方式通過價格。我改變了一個負值,果然,在結帳時價格是零下!儘管我沒有更進一步 - 從技術上講,這是欺詐行爲,不值得冒險。

相關問題