2015-12-16 35 views
0

我的iOS應用程序中內置了QR碼掃描器。我的後端運行在Parse上,我希望用戶能夠選擇應用程序上的某些對象,並將其ID編碼爲QR碼並共享,以便用戶稍後可以掃描QR碼,接收對象ID並查詢他們在數據庫中以便稍後獲取並在某處顯示它們。向用戶顯示Parse對象ID有多糟糕?

但是,是什麼阻止某人在我的應用程序外部使用QR掃描儀,查看編碼到QR中的對象ID,並搞亂了某些東西?以某種方式允許用戶查看Parse數據庫中的條目的對象ID有多糟糕?這會嚴重危及安全嗎?

我想過要加密對象ID,但是恐怕我的應用會被Apple拒絕,因爲沒有遵循正確的標準。你們有什麼建議?

回答

1

簡短的回答:

有一個在贈送對象ID無重大安全隱患。除非第三方能夠訪問您的應用密鑰,否則他們無法訪問您的數據,即使他們已經知道所有信息。只要你保持你的應用密鑰的隱藏,你的用戶不能改變任何你想要的東西

請記住,你的對象ID只在你的應用範圍內唯一(可能只有在因此,當他們找到對象ID時,他們不知道它是你的應用程序,我的應用程序還是其他人的應用程序 - 對於他們來說,它與持有一組隨機數字一樣有用。

我要說的更大的問題是,你不能設置對象ID,所以如果由於某種原因該行被刪除,你可以恢復它的每一部分,但他們都會有不同的對象ID。這將意味着你的用戶用無意義的QR碼運行。當然,您可以從備份中恢復,但自那時起您將失去其他更改。這就是爲什麼我會從來沒有推薦索引使用對象ID,而不是你創建一個新的列「ID」,然後可以由你改變,然後腳本中的一塊雲代碼邏輯,以確保它是唯一的。

+0

感謝您的回答!有關如何最好地保護應用程序密鑰和祕密的任何提示?我知道這些是在AppDelegate類中,所以有人可以看到我的應用程序的源代碼並獲得它? – user5684631

+0

@ user5684631不容易。我不會說不可能解碼應用程序二進制文件來獲取您的密鑰,但Apple在分發之前將您的源代碼編碼爲二進制文件,因此無法輕鬆查看應用程序密鑰。您需要計算編碼,並解碼應用程序 - 遠遠超出絕大多數人。 –

+0

另外,如果您的應用程序不需要更改此數據,則可以使用Parse的權限系統來阻止人們在未進行身份驗證的情況下編輯數據(不包括在二進制文件中)。在這種情況下,他們將能夠看到您的數據,但不會改變它。但就像我說的,發生這種事情的可能性非常小 –

0

只要您的應用程序具有適當的安全性,共享對象ID就不是問題。希望你的應用程序的安全性不依賴於保持對象ID的祕密。

只要您提交正確的文書,iOS加密應用程序就可以正常使用了。我的一個應用程序使用非常高的加密級別,並且在法國以外的每個國家都可以使用。你只需要提交正確的文書,這並不難。