我知道有一些与此问题密切相关的问题,但即使经过深入研究,我也找不到适用于我的问题的解决方案。
问题如下:我有一个文件系统,允许我的用户上传个人资料图片,以及将来整个私人图库。我希望能够从我自己的一个页面中获取这些个人资料图片,例如在聊天框中添加<img src="http://example.org/usercontent/[FOLDERID]/profilepicture.png" />
。同时我想阻止人们在他们的URL栏中输入http://example.org/usercontent/[FOLDERID]/profilepicture.png并直接查看图片,因为这些图片应该只对登录用户可见。
这可能吗?我尝试过类似的东西
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(www\.)?example\.org/.*$ [NC]
RewriteRule .(gif|jpg|png|jpeg)$ [R,NC,L]
</ifModule>
在我的.htaccess文件中,但这会导致我的所有图像被阻止,即使我尝试<img src="http://example.org/usercontent/[FOLDERID]/profilepicture.png" />
,它应该只显示图像,因为图像标记写在我自己的一个页面上。
答案 0 :(得分:2)
我想阻止人们在其网址栏中输入
http://example.org/usercontent/[FOLDERID]/profilepicture.png
并直接查看图片,因为这些图片应该只对登录用户可见
您必须编写一个脚本来检查用户是否已登录并返回图像文件,例如使用readfile()
和合适的类型和缓存标头,或者可能是mod_sendfile。
推荐人检查既不安全也不可靠;它不是一种可行的认证机制。