2011-05-22 68 views
2

我有一個webforms應用程序,允許用戶將圖像的URL提交到網站。 這些圖像會在管理控制檯中自行放映,然後在網站上提供給大家看。他們不必提交圖像,它可以是包含圖像的頁面的鏈接。消毒提交的URL

默認情況下,Webforms可以防止惡意輸入,但只有在將javascript注入輸入框時才能防止惡意輸入。所以它會立即拿起像<script type="text/javascript">alert('nasty code');</script>但不是http://www.nastysite.com/nastyScript.js,因爲這只是一個url,'可以'是一個有效的圖像。

在管理控制檯中,我列出了所有在datalist控件中的提交,並使用asp:Image控件顯示圖像進行檢查。

如果用戶提交惡意腳本,那麼在管理控制檯頁面呈現時,是否可以在我的瀏覽器中執行此操作?我自己通過編寫一個腳本掛鉤到加載的文檔中來顯示警報,並且沒有任何反應。

我想我應該顯示提交的URL以及呈現它,這樣我可以檢查任何奇怪的提交。

還有一件我關心的問題是,如果我批准來自其他站點的圖像 - 他們以後可以將有效圖像替換爲難看的腳本嗎?如果它在img標記中,我會假設它不是?

我可以忽略任何潛在的弱點嗎?

回答

1

當Web瀏覽器加載資源作爲IMG標籤的SRC時,它會將響應解析爲圖像文件。如果有人將URL提交到JavaScript文件,結果只會是一個破碎/丟失的圖像。

儘管如此,仍有安全問題與外部連接的照片:

  1. 正如你已經指出,有人可能的事實,比方說,pr0n後換出來的圖像。

  2. 他們將能夠跟蹤查看圖像的所有訪問者的IP地址,時間戳和瀏覽器身份。根據訪問者的瀏覽器設置,他們還可以設置Cookie來跟蹤用戶訪問您的網站和其他允許類似鏈接的用戶。這當然是所有僅限圖像的橫幅廣告服務的工作原理。

  3. 如果一個特定的瀏覽器容易受到格式錯誤的圖像文件的影響,他們可能會將圖像替換爲這樣的文件,然後該文件可能會崩潰或鎖定用戶的瀏覽器。在極端情況下,它可能會讓他們違反瀏覽器安全。一般來說,瀏覽器往往會對格式錯誤的圖片攻擊比較敏感,但可能會發現另一個圖片攻擊。

  4. 他們理論上可以將圖像文件更改爲某個其他URL的302重定向響應,該URL可能根本不是圖像。訪問者只會看到一張破損的圖片,但是如果您擁有足夠的流量,他們可以使用這些重定向,例如在另一個網站上執行DDoS。 (我把這個在「偏執狂」類別。)

+0

謝謝理查德,這有幫助 – Baldy 2011-05-23 09:30:12

1

任何從其他網站提取的圖像都應該保存在本地服務器上,就好像用戶直接上傳了一樣。這不僅可以防止用戶在批准後更改圖像,而且可以在父網站刪除圖像後批准圖像,從而防止圖像死灰復燃。

至於消毒傳入文件 - 是否有可能在上傳時檢查傳入文件並獲取其內容類型或甚至是其擴展名,並根據良好擴展名列表進行驗證。例如,用戶只能提交png,jpg和gif圖像,或許?

+0

該網站已允許上傳,即時通訊試圖找出一個最佳的方法爲外部圖像。我認爲它將是上傳外部圖像的組合,但是指出它來自哪裏。 – Baldy 2011-05-23 09:31:19