2016-12-09 53 views
-2

在需要身份驗證/授權的CakePHP3應用程序中,我可能會上傳圖像。
現在我想避免用戶能夠通過例如看到其他用戶的圖像。猜測圖像名稱等。
另外我想使用實體的ID作爲文件名,這將使它也容易猜到。
那麼你將如何實施資產授權?cakephp - 如何授權資產?

回答

1

我會阻止的文件名的「猜測」剛纔產生字符的隨機足夠長的不可猜測的字符串作爲新的文件名,如Facebook與上傳照片的功能:

因爲我們不應該去與所有文件的原始名稱,我們可以重命名用戶上傳的文件。例如,用戶24976上載一個名爲tomato12.png的文件。然後上傳腳本將文件重命名爲(例如)以下的名稱:

1481540475_24976_iDewM51NYrBYgnIh.png

它包括了四個部分:

[timestamp]_[userId]_[randomString].[suffix]

,然後保存文件名進入數據庫。如果您要查看上傳目錄,則可以查看哪個用戶上傳了哪個文件,但是沒有權限查看目錄索引的外部人將永遠無法猜測文件的名稱。不需要認證。