防盜鏈

  • 用referer,但是referer可能會被僞造,仍讓能訪問。
location ~.*\.(gif|jpg|png|flv|swf|rar|zip)$
{
    valid_referers none blocked imooc.com *.imooc.com;
    if($invalid_referer)
    {
        #return 403;
        rewrite ^/http://www.imooc.com/403.jpg;        
    }
}
  • 用簽名的方式(這是第三方的模塊,需要安裝纔可以在nginx中配置)
location ~.*\(gif|jpg|jpeg|png|bmp|swf)$
{
    accesskey on; #打開簽名應用
    accesskey_hashmethod md5; #加密方式可以用md5或sha-1
    accesskey_arg sign; #get參數名稱
    accesskey_signature  "test$remote_addr"; #加密規則:任意字母加服務器IP
}

在php中訪問圖片的時候需要加上加密後的字符,如下:

//變量sign必需要和nginx配置中的變量名一致否則nginx獲得不到相應的變量,從而導致簽名失敗。
$sign = md5('test'.$_SERVERE['REMOTE_ADDR']));
echo '<img src="./logo_new.png?sign='.$sign.'">';
發佈了12 篇原創文章 · 獲贊 1 · 訪問量 7128
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章