2013-12-17 90 views
0

我正在創建一個Web應用程序,允許用戶向各種內容提交URL鏈接。相當標準。該網站隨後跟隨該URL並下載其內容。我很快意識到這是一個潛在的安全問題。用戶可以輕鬆地將我鏈接到一個巨大的圖像,甚至只是垃圾數據。很明顯,我不想把我的所有帶寬都下載到這裏。所以我有一般的網絡編程問題。用戶提交頁面

  1. 我可以信任他們發給我的HTTP標頭多少?據推測,整個事情可能是一個謊言。我可以依靠內容長度屬性,還是可以很容易地捏造?什麼是MIME類型?

  2. 考慮到問題1,這是否意味着最好的做法是將所有內容都視爲流,將其下載成塊,然後在超過某個數據限制後中止流程?如果是這樣,如果我下載單個圖像和普通HTML頁面,那麼這將是一個合適的限制嗎?

  3. 有點偏離主題,但是HTTP狀態代碼通常被認爲是好的(基本上,如果我看到這些代碼,我會給我的應用程序繼續獲取網站的正文)?除了200以外還有其他嗎

任何人都可以推薦一個體面的書(最好是在線),涵蓋這種類型的信息,最好在Python或只是語言不可知的。

謝謝!

回答

2
  1. 是的,整個迴應可能是謊言。 HTTP服務器應該遵守協議,但您永遠無法確定惡意程序不會向您發送損壞的數據。

  2. 對,您應該在實際內容超過聲明內容長度或超過某個閾值後中止。對於極限值,您需要進行試驗。 Here是對此的一些研究。也許每個網頁5MB將是一個好的開始。

  3. 你可能會遵循重定向(301),但除此之外,僅限於200。