我在我的網站上執行了 OWASP ZAP,它引發了代理披露警報等。
代理披露警報https://www.zaproxy.org/docs/alerts/40025/
OWASP 說明 偵測到 1 個代理伺服器或對其進行指紋辨識。此資訊有助於潛在攻擊者確定
針對應用程式的攻擊目標清單。
為應用程式提供服務的代理伺服器上的潛在漏洞。
是否存在任何基於代理的元件可能會導致對應用程式的攻擊被偵測、阻止或減輕。
建議的解決方案
停用代理伺服器以及來源 Web/應用程式伺服器上的“TRACE”方法。如果其他目的不需要,例如「CORS」(跨來源資源共用),請停用代理伺服器以及來源 Web/應用程式伺服器上的「OPTIONS」方法。使用自訂錯誤頁面設定 Web 和應用程式伺服器,以防止在發生 HTTP 錯誤(例如針對不存在頁面的「TRACK」請求)時將「可指紋識別」的產品特定錯誤頁面洩漏給使用者。配置所有代理程式、應用程式伺服器和 Web 伺服器,以防止洩漏「Server」和「X-Powered-By」HTTP 回應標頭中的技術和版本資訊。
到目前為止我所做的嘗試: 我聽從了這個建議網站並向 nginx.conf 新增了停用 PATCH、TRACE 和 OPTIONS 的條件。不確定這是否有效以及我是否正確地做到了這一點。關於修復「配置所有代理、應用程式伺服器和 Web 伺服器以防止洩漏「伺服器」和「X-Powered-By」HTTP 回應標頭中的技術和版本資訊」有什麼建議嗎?謝謝。
http-request-methods.html 伺服器{ if ($request_method ~ ^(PATCH|TRACE|OPTIONS)$){ return 405; } }
nginx.conf:
user www-data;
worker_processes auto;
pid /run/nginx.pid;
events {
worker_connections 768;
# multi_accept on;
}
http {
include /etc/nginx/proxy.conf;
server_tokens off;
##
# Basic Settings
##
sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 65;
client_body_timeout 10;
types_hash_max_size 2048;
upstream portal {
server 127.0.0.1:5002;
}
upstream api {
server 127.0.0.1:5000;
}
include /etc/nginx/mime.types;
default_type application/octet-stream;
##
# SSL Settings
##
ssl_protocols TLSv1.2; # Dropping SSLv3, ref: POODLE
ssl_prefer_server_ciphers on;
##
# Logging Settings
##
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/log/nginx/access.log main;
error_log /var/log/nginx/error.log;
##
# Gzip Settings
##
gzip on;
gzip_disable "msie6";
# gzip_vary on;
# gzip_proxied any;
# gzip_comp_level 6;
# gzip_buffers 16 8k;
# gzip_http_version 1.1;
# gzip_types text/plain text/css application/json application/javascript text/xml applicati>
##
# Virtual Host Configs
##
include /etc/nginx/conf.d/*.conf;
include /etc/nginx/sites-enabled/*;
server{
if ($request_method ~ ^(PATCH|TRACE|OPTIONS)$){
return 405;
}
}
}
答案1
我認為你走在正確的道路上。
關於修復「配置所有代理、應用程式伺服器和 Web 伺服器以防止洩漏「伺服器」和「X-Powered-By」HTTP 回應標頭中的技術和版本資訊」有什麼建議嗎?謝謝。
伺服器令牌關閉;
proxy_hide_header X-Powered-By;
然後重新載入Nginx。
您可能需要執行另一個測試以確保修復了漏洞。