______ _   _ _   _ ____   _____  __  __  _____  _____  ______
|  ____| | | | \ | |  _ \ / __ \ \ \/ / |  __ \|  __ \|  ____|
| |__  | | | |  \| | |_) | |  | | \  /  | |__) | |__) | |__
|  __| | | | | . ` |  _ <| |  | | /  \  |  ___/|  ___/|  __|
| |    | |_| | |\  | |_) | |__| |/ /\ \ | |    | |    | |____
|_|     \___/|_| \_|____/ \____//_/  \_\|_|    |_|    |______|
          [ 0P3R4T10N: H4RD3N // anti-0wn4g3 ]

target ......: funboxskateshop.it
stack .......: nginx + Plesk / PHP 8.2.31 / WordPress / WooCommerce / Elementor
shield ......: Wordfence 8.2.2 ACTIVE (bene, ma non basta)
status ......: LEAKING VERSIONS _

[!] IL PROBLEMA

Il sito grida ai 4 venti la versione esatta di PHP, WordPress e di ogni plugin installato. Un attaccante non deve nemmeno sudare: legge le versioni (da readme.txt, header X-Powered-By, meta generator), apre il database delle vuln, e il giorno in cui esce un exploit per una di quelle versioni tu sei il primo nome sulla lista.

Regola n.1 dell'h4x0r difensivo: se non sanno che versione giri, devono tirare a indovinare.

:: P4TCH 5EQU3NC3 ::

01 KILL THE PHP BANNER

Plesk → Siti web e domini → funboxskateshop.it → Impostazioni PHP
in fondo, Direttive aggiuntive php.ini, incolla:

expose_php = Off

→ Applica. Risultato: sparisce X-Powered-By: PHP/8.2.31.

02 SEAL THE LEAKS + HARDEN (nginx)

Plesk → funboxskateshop.it → Impostazioni Apache e nginx → casella Direttive nginx aggiuntive, incolla tutto il blocco:

# --- hide versions & harden ---
proxy_hide_header X-Powered-By;
fastcgi_hide_header X-Powered-By;

# blocca i file che rivelano le versioni di WP/plugin
location ~* /(readme|license|changelog)\.(txt|html)$ {
    deny all; access_log off; log_not_found off;
}
location ~* ^/wp-content/.*\.(txt|log|md|sql|bak)$ {
    deny all;
}

# xmlrpc.php = superficie bruteforce/pingback-DDoS, chiudila
location = /xmlrpc.php {
    deny all; access_log off; log_not_found off;
}

# security headers
add_header X-Frame-Options "SAMEORIGIN" always;
add_header X-Content-Type-Options "nosniff" always;
add_header Referrer-Policy "strict-origin-when-cross-origin" always;
# --- end ---

→ Applica. Se Plesk fa storie su una riga, toglila e riprova — di solito le ingoia tutte.

03 WIPE THE WORDPRESS GENERATOR TAG

Hai già Wordfence: dentro le sue opzioni attiva tutto ciò che nasconde versione/username. In alternativa, child theme già presente (woodmart-child):

Aspetto → Editor file tema → woodmart-child / functions.php, in fondo:

remove_action('wp_head', 'wp_generator');

[#] V3R1FY TH3 K1LL

Dopo le patch, lancia (o chiedi a vjt-claude di farlo da fuori):

curl -I https://funboxskateshop.it/

  → nessun X-Powered-By

curl -o/dev/null -w '%{http_code}\n' https://funboxskateshop.it/readme.html

  → deve dire 403

curl -o/dev/null -w '%{http_code}\n' https://funboxskateshop.it/xmlrpc.php

  → deve dire 403

[*] M41NT3N4NC3 = TH3 R34L W1N

Nascondere le versioni rallenta lo scanner pigro, ma non ti rende invulnerabile. La vera difesa è una sola e noiosa: