[這是關於先前在此處與計算機語言學家討論的後續/清理問題,希望我指定了這個足夠的空間] ImageResizer可以抓取站點根外部的文件併爲它們服務(因此,在線提供未經更改的原件)? 或者這種情況下的最佳做法是什麼?使用ImageResizer結合使用圖像的安全服務
*如果原始文件存儲在網站根目錄之外,基本大小的圖像會在線存儲(通過url auth/httpmodule等進行保護),然後讓Imageresizer根據該圖像進行大小調整等操作。就我所見,我還沒有找到一種方法來限制訪問100%到一個文件夾,除了通過imageresizer請求時。如果ImageResizer可以調整大小,用戶可以訪問它似乎sofar。
*或者可能是一個控制器服務原始圖像,然後由ImageResizer處理的解決方案。
的主要目的是:
可以自定義權限規則完全
能夠以安全的方式來服務(ATLEAST到目前爲止,我已經學會不改變用戶上傳的圖片應該不能在siteroot下直接訪問)。保存原件似乎是一種面向未來的策略。
能夠利用ImageResizer實時調整大小。
任何有關其他人如何實施此功能的任何輸入也將受到讚賞。
我之前看了一下AuthorizeRequest,並構建了一個乾淨的httpmodule來設置我的權限結構。我真的不能包裹我的頭是如何最好地處理源圖像看到xss和其他的東西。 但是我傾向於強制重新編碼所有上傳而不改變高度/寬度等等(我認爲我看到你在你的一些文檔中提到它),並使用它作爲完整的基本圖像。無論如何,通過擴展,大小,上傳格式檢查,這可能會提供一個體面的安全水平。不確定將這些文件放在virtul文件夾中是否會帶來好處。 – Baserz 2012-08-06 07:16:52
關於我之前想過的事情,儘管你之前曾經提到過有關磁盤緩存的簡要介紹。 imagecache似乎有一個web.config規則阻止訪問它。這應該意味着只要我保護原件,ImageResizer將不會提供緩存的版本,對嗎?或者我還必須在ImageResizer事件上實現授權嗎? – Baserz 2012-08-06 07:20:34
只要你保護原件,ImageResizer將保護變化。切勿使用隨上傳提供的文件名或擴展名。使用GUID和您檢測到的格式擴展名。這將防止服務器和客戶端嘗試解釋上傳的數據,除非作爲靜態圖像。如果你真的偏執,只需在上傳過程中重新編碼原件。 – 2012-08-06 14:12:13