Integrazzjoni WordPress
Ipproteġi l-formoli WordPress tiegħek b'SilentShield. Jaħdem ma' Contact Form 7, WPForms, Gravity Forms, u kwalunkwe formoli personalizzati.
1. Żid l-Iskript
Żid dan il-kodiċi mal-functions.php tat-tema tiegħek jew uża plugin bħal 'Insert Headers and Footers':
// functions.php
function silentshield_enqueue() {
wp_enqueue_script(
'silentshield',
'https://api.silentshield.io/client.js?key=YOUR_API_KEY',
array(),
null,
true
);
wp_add_inline_script('silentshield', "
document.addEventListener('DOMContentLoaded', function() {
SilentShield.init({ apiKey: 'YOUR_API_KEY' });
});
");
}
add_action('wp_enqueue_scripts', 'silentshield_enqueue');2. Verifika min-Naħa tas-Server
Żid verifika tan-nonce mal-handler tal-formola tiegħek. Għal formoli personalizzati, żid dan mal-funzjoni tal-ipproċessar tiegħek:
function verify_silentshield_nonce() {
$nonce = sanitize_text_field($_POST['ss_nonce'] ?? '');
if (empty($nonce)) {
wp_die('Missing verification', 'Error', array('response' => 422));
}
$response = wp_remote_post('https://api.silentshield.io/api/v1/captcha/verify-nonce', array(
'headers' => array(
'Content-Type' => 'application/json',
'X-Api-Key' => SILENTSHIELD_API_KEY,
),
'body' => wp_json_encode(array('nonce' => $nonce)),
'timeout' => 5,
));
if (is_wp_error($response)) {
return; // fail open
}
$body = json_decode(wp_remote_retrieve_body($response), true);
if (($body['verdict'] ?? '') === 'bot') {
wp_die('Bot detected', 'Forbidden', array('response' => 403));
}
}Contact Form 7
Il-widget awtomatikament jiskopri l-formoli ta' Contact Form 7. Ma hemm bżonn ta' ebda konfigurazzjoni addizzjonali — sempliċement żid l-iskript u l-widget jipproteġi l-formoli CF7 kollha fuq il-paġna.
WPForms / Gravity Forms
SilentShield awtomatikament jiskopri formoli minn WPForms, Gravity Forms, u plugins oħra popolari tal-formoli. Il-widget jinjetta n-nonce fi kwalunkwe formola li jsib fuq il-paġna.
Ħażna tal-API Key
Żid l-API key tiegħek ma' wp-config.php għas-sigurtà:
// wp-config.php
define('SILENTSHIELD_API_KEY', 'your-api-key-here');