Nuova Estensione per Plesk. Protezione Antivirus per migliorare la sicurezza del tuo server. Perché scegliere Flex Antivirus?
Integra la funzione di blocco degli IP direttamente nella tua applicazione web se appartiene a un paese specifico. Compatibile con ASP classico e PHP tramite l'oggetto COM dell'estensione.
BlockIp(IP,Rulename)Dalla tua pagina web — nel tuo index.asp, index.php o in qualsiasi sezione della tua applicazione — puoi chiamare questa funzione per bloccare un indirizzo IP tramite il Firewall Manager. Richiede credenziali di un dominio valido in Plesk.
| Parametro | Tipo | Obbligatorio | Descrizione |
|---|---|---|---|
| Username | String | Obbligatorio | Utente del dominio Plesk con accesso all'estensione. |
| Password | String | Obbligatorio | Password dell'utente del dominio Plesk. |
| FormatOutput | String | Facoltativo | Formato della risposta: xml (predefinito) o json. |
| IP | String | Obbligatorio | Indirizzo IPv4 o IPv6 da bloccare. |
| Rulename | String | Facoltativo | Nome della regola a cui assegnare l'indirizzo IP. Non usare per impostazione predefinita. |
Importante: Usa questa funzione in pagine protette con autenticazione propria. Esporre la chiamata senza protezione permette a qualsiasi utente di bloccare IP arbitrari.
Istanzia l'oggetto COM FlexFirewallManager.Admin, imposta le credenziali e chiama UnlockIP(). La risposta viene analizzata come XML.
' Crea istanza dell'oggetto COM
Set App = CreateObject("FlexFirewallManager.Admin")
App.FormatOutput = "xml"
App.Username = "Utente Dominio Plesk"
App.Password = "Password Dominio Plesk"
' IP da bloccare
Dim strCountry : strIP = Request.ServerVariables("HTTP_X_FIREWALL_COUNTRY")
Dim strIP : strIP = Request.ServerVariables("HTTP_X_FIREWALL_IP")
If strIP = "" Then strIP = Request.ServerVariables("REMOTE_ADDR")
' Metodo 1
If strCountry = "CN" Then
App.BlockIp(strIP)
End If
' Metodo 2
Dim returnstring : returnstring = App.InfoIP(strIP)
' Analizza risposta XML
Set objxml = CreateObject("Msxml2.DOMDocument")
objxml.LoadXml(returnstring)
If LCase(objxml.SelectSingleNode("/output/result").text) = "true" Then
If UCase(objxml.SelectSingleNode("/output/countrycode").text) = "RU" Then
App.BlockIp(strIP)
End If
End If
Puoi usare FormatOutput = "json" se preferisci analizzare la risposta con JSON.parse invece di XML. Il formato JSON è consigliato per le applicazioni moderne.
In PHP, istanzia l'oggetto COM con new COM(). Usa il formato json per analizzare la risposta direttamente con json_decode().
// Crea istanza dell'oggetto COM
$app = new COM("FlexFirewallManager.Admin");
$app->FormatOutput = "json";
$app->Username = "Utente Dominio Plesk";
$app->Password = "Password Dominio Plesk";
// IP da bloccare
$strCountry = $_SERVER['HTTP_X_FIREWALL_COUNTRY'];;
$strIP = $_SERVER['HTTP_X_FIREWALL_IP'];;
if ($strIP=="") { $strIP = $_SERVER['REMOTE_ADDR'];; }
// Metodo 1
if ($strCountry == "CN") {
$app->BlockIp($strIP);
}
// Metodo 2
$returnstring = $app->InfoIP($strIP);
// Analizza risposta JSON
$appjson = json_decode($returnstring);
if ($appjson->result) {
if ($appjson->countrycode == "RU") {
$app->BlockIp($strIP);
}
}
Suggerimento: Puoi combinare questa funzione con un modulo di amministrazione interno affinché i tuoi utenti possano autogestire il blocco del proprio IP senza dover accedere al pannello Plesk.
Tieni presente i seguenti aspetti quando integri questa funzione nella tua applicazione:
BlockIp() con una sessione utente autenticata.
FlexFirewallManager.Admin richiede Windows Server con l'estensione installata.