仅允许我的域名来自我的服务器

时间:2016-10-16 11:51:10

标签: image .htaccess security hotlinking

我知道有一些与此问题密切相关的问题,但即使经过深入研究,我也找不到适用于我的问题的解决方案。

问题如下:我有一个文件系统,允许我的用户上传个人资料图片,以及将来整个私人图库。我希望能够从我自己的一个页面中获取这些个人资料图片,例如在聊天框中添加<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" />,它应该只显示图像,因为图像标记写在我自己的一个页面上。

1 个答案:

答案 0 :(得分:2)

  

我想阻止人们在其网址栏中输入http://example.org/usercontent/[FOLDERID]/profilepicture.png并直接查看图片,因为这些图片应该只对登录用户可见

您必须编写一个脚本来检查用户是否已登录并返回图像文件,例如使用readfile()和合适的类型和缓存标头,或者可能是mod_sendfile。

推荐人检查既不安全也不可靠;它不是一种可行的认证机制。