我有一個照片分享網站,用戶可以編輯他們的圖片隱私。其中一個主要問題是,其他用戶可以看到用戶被隱藏的圖片。所以我雖然在我的IMAGES目錄中,只需將deny from all
放在.htaccess文件中。.htaccess DENY FROM ALL幫助?
但是這限制了所有的圖像顯示。
這樣做的最好方法是什麼?
感謝
庫爾頓
我有一個照片分享網站,用戶可以編輯他們的圖片隱私。其中一個主要問題是,其他用戶可以看到用戶被隱藏的圖片。所以我雖然在我的IMAGES目錄中,只需將deny from all
放在.htaccess文件中。.htaccess DENY FROM ALL幫助?
但是這限制了所有的圖像顯示。
這樣做的最好方法是什麼?
感謝
庫爾頓
在只允許您將所有文件放在文檔根目錄之下而不在其外的情況下的web服務器上,帶有deny from all指令的.htaccess文件通常用於不允許http訪問特殊目錄它是子目錄。
不推薦使用某種混淆處理(在MD5或SHA1等功能的幫助下創建目錄名稱)。
在PHP函數的幫助下交付圖像,該函數可以在您的案例中進行所有必要的權限檢查。一個簡單的例子,如何真正返回該文件在這裏找到:
我現在正在做的是,我有數據庫的權限。如果它是私人的,那麼它將不會顯示圖像。如果不是,那麼它將顯示圖像。但是我想如果有人得到了這個URL,他們就可以在它被設置爲私有時看到他們想要的一切。 – iosfreak 2011-04-03 21:17:41
另外,我的目錄很常見。 domain.com/user/picture/id <<那樣。如果有人想破解它,他們可以輸入一個ID並查看該圖片。 – iosfreak 2011-04-03 21:18:18
你可以把'DENY FROM ALL'放在「圖片」目錄下。只有在用戶允許的情況下才會顯示圖片:如果圖片不是私密的,每個人都可以看到它。剩下的就取決於你的概念。而邏輯是在實際提供圖像的PHP文件中。 – initall 2011-04-04 08:32:40
你可以使用國防部重寫和檢索URL的文件調度員。調度員還會檢查憑證。
實施例:用戶訪問http://mysite.com/getimage/123
配置國防部重寫變換成http://mysite.com/index.php?page=getimage&att=123此。由於重寫,除非您配置重寫模塊來執行此操作,否則用戶將永遠不會訪問index.php頁面旁邊的其他任何內容。
index.php是調度器,並檢查頁面是否真的存在。如果是這樣,它會調用處理getimage的控制器。 控制器getimage檢查用戶憑證,如果用戶可以獲取文件123,則顯示123.jpg。
這只是多個解決方案的一個變體。這一切都取決於您的網站架構。
在數據庫中,我具有圖像的位置和隱私。如果它不是私人的,我會顯示它,並且當它私人時我不會顯示它。我最好的選擇是什麼? – iosfreak 2011-04-03 19:36:58
你有沒有到位,以確定用戶什麼樣的登錄機制?您可能必須使用該功能,並在進行登錄檢查後通過這些文件。 – 2011-04-03 19:10:23
一個對數據庫的mysql_query爲用戶創建一個會話。你如何通過文件傳遞它? – iosfreak 2011-04-03 19:11:28