2011-11-17 51 views
0

我想更新我的應用程序支持PDF文件的下載,但我擔心的主要是關於兩件事情:iOS的下載安全

1:用戶將嘗試使用我的應用程序下載非PDF,或病毒肆虐的物品。

2:所述病毒充斥項可感染設備。

我可能只是偏執狂,因爲我認爲這個沙箱可以防止大多數惡意軟件逃脫並與操作系統,內核或低級別進程混雜在一起,但是你永遠不能太確定。所以我的問題是雙重的:我怎樣才能(至少大部分)保證只下載PDF並儘可能安全地執行。

(附:下載將通過任何通用的網站在網頁視圖來完成,而不是服務器看到,因爲我不敢在網絡發展的思想)。

基於ozdrgnaDiies的回答,我發現這個樣本代碼;我將根據需要進行修改,謝謝。 http://iphoneincubator.com/blog/server-communication/how-to-download-a-file-only-if-it-has-been-updated

+0

iOS上有kexts嗎?從何時起? –

+0

對不起,hehe,EDITTED。 – CodaFi

+0

所以基本上你說你不相信操作系統(爲了能夠正確地使用沙箱)?那麼我也不會用我的iPhone來運行核電站。如果是我,我可能會嘗試在下載時對PDF文件進行一些驗證(即檢查PDF數據的前幾個字節以查看它是否爲真正的PDF數據)。 –

回答

2

從我從你的問題雲集,我想你要檢查,如果你正在下載的文件是PDF格式,而不是別的什麼嗎?如果是這樣,你可以檢查文件頭來驗證它是一個PDF文件。

例,在每一個.PDF的第一件事(我有我自己)是:

%PDF-*.* 

*.*是版本號(?)。例如,1.2,1.3,1.5,等等

因此,從下載的PDF閱讀前5個字符應導致「%PDF-」,否則就不是一個pdf。

隨着越來越多的例子,在JPEG圖像的第一件事就是:

リ・ 

而對於一個.exe是:

MZ・ 

+0

美麗。我會投票,但我更擔心安全位。基本上我的意思是,最好的答案是你的,除非有更好的答案:P – CodaFi

0

iOS應用沙盒是。意思是,你在應用程序中做的任何事情只會影響你的應用程序。除非你試圖以某種方式運行下載的內容(我認爲這違反了App Store的規則)。離開將惡意製作的PDF文件的唯一的事情...

我個人不認爲這將是一個大問題。

+0

謝謝,但我一直在尋找更多的「這是如何找出如果PDF是惡意的」的回答。 – CodaFi

+2

除非您控制文件的解析,否則沒有真正的方法來確定PDF是否是惡意製作的。惡意製作的文件(任何類型)利用程序解析其內容並處理潛在錯誤或矛盾的方式。如果代碼不夠牢固,無法處理所有這些奇怪的錯誤,那麼您可能會遇到問題。乾杯! – 2011-11-18 00:39:00