我已经建立了一个基于php / joomla的网站。它在WAMP服务器上运行。
用户可以将文件/图像上传到自己的帐户,文件全部保存为:
public_html/userfiles/0001.jpg
public_html/userfiles/0002.jpg
public_html/userfiles/0003.jpg
...
为了保护隐私,我希望避免未经注册的用户或未经许可访问其他用户的用户。现在,任何人都可以通过在浏览器地址栏中输入文件名来访问所有图像。
我需要极高级别的保护,所以我的问题是:我可以通过apache设置解决这个问题吗?或者我应该使用fx服务器站点AES加密,然后在客户端站点请求密码并使用crypto-js之类的东西运行解密?
答案 0 :(得分:0)
使用.htaccess并不是很好,但您可以使用以下代码:
RewriteCond %{HTTP_COOKIE} allow!=true
RewriteRule (.*) http://domain.com/404.html [L,QSA]
这样做会重定向任何人将 allow
设置为 domain.com/404.html
您还应该在设置时将http cookie设置为true。
答案 1 :(得分:0)
这将阻止图像通过url访问,但仍会显示在html / php文件中。 (将localhost更改为您的主机)
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^http://(www\.)?localhost [NC]
RewriteCond %{HTTP_REFERER} !^http://(www\.)?localhost.*$ [NC]
RewriteRule \.(gif|jpg)$ - [F]
答案 2 :(得分:0)
你可以这样做,
<强> 1。使用.htaccess
阻止直接访问.jpg<强>的.htaccess 强>
<FilesMatch "\.(jpg|jpeg)$"> #all file extensions you want to restrict.
Deny from all
</FilesMatch>
<强> 2。使用.php
脚本重现图片。
<强> get_picture.php 强>
//check here user login
//if not logged-in
// exit();
//proceed if logged-in.
//get picture file path from DB.
$file_path="this/path/will/be/from/db/user_xyz.jpg"
header("content-type: image/jpg"); //set mime type respective to file type
readfile(file_path);
die();
第3。如何使用 的 HTML 强>
<img src="get_picture.php" style="height:100px;width:100px;" />