後台是利用http伺服器nginx和tomcat在linux環境中,
本來,如果是這樣的話,***就可以進行處理這樣的請求。
思路是:獲取許可權,看這個請求是否有許可權進行訪問,但是,我們在tomcat的service.xml目錄裡面配置了絕對路徑
這就造成了,不需要經過專案,只要tomcat進行開啟就可以訪問資料夾。
1.解決思路如下:
本專案:可以利用過濾器,或者***,以獲取是否有許可權進行處理,
專案以外,因為請求都是要由nginx進行**,所以可以利用nginx防盜煉的處理方式
location /download
accesskey為模組開關;
accesskey_hashmethod為加密方式md5或者sha-1;
accesskey_arg為url中的關鍵字引數;
accesskey_signature為加密值,此處為mypass和訪問ip構成的字串。
actioncontext ctx = actioncontext.getcontext();
string pagefilename = servletactioncontext.getrequest().getparameter("路徑");
string path = pagefilename.substring(5, pagefilename.length());
ctx.getsession().put("path", "/imgess/?key="+ md5加密的那串密文);
nginx接受到請求,**給tomcat,tomcat在把上面那串請求返回時,必須加上那串md5加密過的密文才能夠訪問
並且需要注意,請求開始是不需要密文的,返回資料到前台的時候,需要密文
繼續測試發現,還有漏洞,就是說,如果輸入tomcat中ip+埠,那麼請求就不會經由nginx**,繞過了nginx的防盜煉,
解決辦法就是:
在linux中防火牆限制其埠,只能使用nginx進行訪問,不能直接訪問tomcat
加在自啟動中
vim /etc/init.d/rc.local
設定如下
iptables -a input -s 127.0.0.1 -p tcp -m tcp --dport 8080 -j accept
iptables -a input -p tcp -m tcp --dport 8080 -j drop
–a 引數就看成是新增一條規則
–p 指定是什麼協議,我們常用的tcp 協議,當然也有udp,例如53埠的dns
–dport 就是目標埠,當資料從外部進入伺服器為目標埠
–sport 資料從伺服器出去,則為資料來源埠使用
–j 就是指定是 accept -接收 或者 drop 不接收
nginx防盜煉 s3防盜煉
nginx防盜煉 編輯檔案 usr local nginx conf nginx.conf 以上 解釋如下 1 location中指定要防篡改的檔案型別 2 valid referers指定資源訪問是通過以下幾種方式為合法 none 直接通過url訪問,無referer值的情況 blocked re...
nginx 防盜煉配置
語法 配置段只在server location中出現 valid referers 該指令後面可以接 none blocked serevr names string或者是正則 none 表示沒有referer blocked 代表有referer但是被防火牆或 取消了 string或者正在表示式 ...
nginx的防盜煉
有個客戶的站點負載過高,於是我們可愛的憤青系統工程師將其的apache換成nginx,效果很明顯。現在記錄一些apache轉換過程中的小細節,留下備忘。nginx的防盜煉 一般的防盜煉如下 第一行 gif jpg png swf flv 表示對gif jpg png swf flv字尾的檔案實行防盜...