您好,登錄后才能下訂單哦!
nginx中怎么實現網頁緩存防篡改,相信很多沒有經驗的人對此束手無策,為此本文總結了問題出現的原因和解決方法,通過這篇文章希望你能解決這個問題。
使用網站防篡改對指定的敏感頁面設置緩存,緩存后即使源站頁面內容被惡意篡改,WAF也會向訪問者返回預先緩存好的頁面內容,確保用戶看到正確的頁面。
啟用 網頁防篡改、敏感信息防泄露開關,才能使用該功能。
填寫精確的要防護的路徑,可以防護該路徑下的text、html和圖片等內容。
緩存用戶配置的url的頁面,到openresty。每次處理用戶請求,從nginx緩存獲取頁面。
配置的url頁面在nginx.conf--->http--->server--->local,local中設置緩存配置,根據自身業務特點設置緩存10~30天不等。
若被保護的頁面更新,手動觸發更新緩存至最新的頁面。
即設置的url對應的頁面,緩存中始終與real server對應的頁面,保持同步,即使real server的頁面被篡改。
用戶請求的頁面來自于openresty緩存。
經過大量測試發現:對緩存的過期與清除起作用的因素的優先級從高到低一次為:
inactive配置項、源服務器設置的Expires、源服務器設置的Max-Age、proxy_cache_valid配置項
在http{}內配置緩存cache
proxy_buffering on;
proxy_buffer_size 16k;
#設置Web緩存區名稱為cache_one,內存緩存空間大小為500M,緩存的數據超過1天沒有被訪問就自動清除;訪問的緩存數據,硬盤緩存空間大小為30G
proxy_cache_path /home/waf/openresty/proxy_cache_path levels=1:2 keys_zone=cache_one:500m inactive=365d max_size=30g;
當用戶設置的緩存頁面,發生修改時,手動在控制臺操作,清空緩存,重新從源站緩存最新的資源。
location ~ /purge(/.*) {
allow 127.0.0.1;
allow 10.10.10.10;
deny all;
proxy_cache_purge cache_one $host$1$is_args$args;
}
location ~* \.(jpg|jpeg|png)$ {
#使用Web緩存區cache_one,已在nginx.conf的緩存配置中命名的。
proxy_cache cache_one;
#設置Web緩存的Key值,Nginx根據Key值md5哈希存儲緩存,這里根據"域名,URI,
#參數"組合成Key
proxy_cache_key $host$uri$is_args$args;
proxy_cache_valid 200 304 365d;
proxy_cache_revalidate on;
proxy_cache_lock on;
proxy_ignore_headers Set-Cookie Cache-Control;
proxy_set_header Range $http_range;
proxy_set_header If-Range $http_if_range;
proxy_no_cache $http_range $http_if_range; #range請求不緩存
add_header X-Cache $upstream_cache_status;
proxy_pass http://rp_10_11_12_10_80cert_cn;
session_sticky_hide_cookie upstream=rp_10_12_52_89_80cert_placuna_cn;
}
location /test/index.php {
#使用Web緩存區cache_one,已在nginx.conf的緩存配置中命名的。
proxy_cache cache_one;
#設置Web緩存的Key值,Nginx根據Key值md5哈希存儲緩存,這里根據"域名,URI,
#參數"組合成Key
proxy_cache_key $host$uri$is_args$args;
proxy_cache_valid 200 304 365d;
proxy_cache_revalidate on;
proxy_cache_lock on;
proxy_ignore_headers Set-Cookie Cache-Control;
proxy_set_header Range $http_range;
proxy_set_header If-Range $http_if_range;
proxy_no_cache $http_range $http_if_range; #range請求不緩存
add_header X-Cache $upstream_cache_status;
proxy_pass http://rp_10_11_12_10_80cert_cn;
session_sticky_hide_cookie upstream=http://rp_10_11_12_10_80cert_cn;
看完上述內容,你們掌握nginx中怎么實現網頁緩存防篡改的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。