最近在作一些事情的時候發現有的網站作了圖片的防外鏈功能,簡單來講不是本網站的url訪問不了本站的圖片、仔細分析了一下,想到了用nginx的反向代理設置referer能夠解決這個問題,再次證實了web網站全部來自瀏覽器端提交的東西都不靠譜,都須要驗證。php
想一想防外鏈大都是經過檢查請求中的http referer來實現的(也能夠用token來作仿外鏈,這個比較難搞)。若是經過反向代理來動態指定http referer是否是能夠解決問題。立刻動手.java
location /get/ { set $hostx ""; set $addrs ""; if ( $uri ~ "^/get/http./+([^/]+)/(.+)$") { set $hostx $1; set $addrs $2; } resolver 127.0.0.1; proxy_pass http://$hostx/$addrs; proxy_set_header referer "http://$hostx"; }
注意resolver要指向一個有效的dns服務器(快速查看本機dns服務器地址的命令:cat /etc/resolv.conf)nginx
能夠結合nginx的location的配置來看 : http://www.eit.name/blog/read.php?497web
~打下無節操有底線廣告,歡迎關注: 點我瀏覽器