有时程序员需要对jpg等图片文件进行保护,防止非法访问、下载或引用,有什么方法呢?万维景盛小编就给您分享一种通过cookie设置token的方法来限制jpg文件的访问。比如/images/xxx.jpg的文件被内部重定向到/jpg.php?s=/image/xxx.jpg,php文件中检查cookie,进行权限校验,有权限就输出图片,没有权限就302到缩略图。
1 2 3
| location ~^/image/.*.jpg$ { rewrite ^(.*)$ /jpg.php?s=$1 last; } |
jpg.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| <?php require_once(dirname(__FILE__).'/config.php'); if(isset($_COOKIE["token"])){ // 是否有登录令牌 $token = $_COOKIE["token"]; $redis = new Redis(); //连接 $redis->connect(DB_REDIS_IP, 6379); $redis->auth(DB_REDIS_PWD); $tr = $redis->get($token); //var_dump($tr); if($tr==False){ // 登录令牌是否有效。 }else{ $file = dirname(__FILE__).$_REQUEST['s']; header('Content-type:image/jpg'); echo file_get_contents($file); } } header("Location:/thumbnail/".$_REQUEST['s']); //phpinfo(); ?> |