Hur man använder WordPress Nonce
Vad är WordPress Nonce?
Som nämnts i WordPress Codex är A WordPress nonce ett “nummer som används en gång" för att skydda webbadresser och formulär från vissa typer av missbruk, skadlig eller på annat sätt.
En nonce är inget annat än en säkerhetstoken som ska användas under utveckling för att undvika CSRF-attacker (cross-site request forgery).
Under utvecklingen av tema eller plugin bör nonce användas i en form eller i URL. Som WordPress-utvecklare är det bra att använda nonce.
Hur man använder Nonce i ett formulär
Som nämnts är nonce en symbol för att förhindra CSRF-attacker. När vi hanterar formulär bör vi lägga till detta nonce i våra formulär. För att lägga till en nonce i ett formulär använder vi dolt fält.
<input type="hidden" name="FIELD_NAME" value="<?php echo wp_create_nonce('NONCE_NAME'); ?>"
I ovanstående kod ersätter du FIELD_NAME & NONCE_NAME med vad du vill.
Kontrollen är nonce giltig?
När du har lagt till nonce i ett formulär måste du kontrollera om passande nonce är giltigt eller inte efter inlämning av formulär. WordPress tillhandahåller en funktion wp_verify_nonce för att kontrollera icke-giltighet.
if (wp_verify_nonce( $_REQUEST['FIELD_NAME'], 'NONCE_NAME')) {
//safe to proceed
} else {
die('Security Check!');
}
Hur man använder Nonce In URL
CSRF-attacker kan också inträffa på webbplatsen via webbadresser. Dessutom spelar nonce en viktig roll för känsliga sidor. Låt oss säga att vi har en inställningssida på webbplatsen som innehåller vissa känsliga data som bör skyddas. Vi vill också förhindra att CSRF-attacker görs. Så jag skapar nonce URL för inställningssida genom att följa sättet.
<a href="<?php echo wp_nonce_url(get_bloginfo('url').'/settings', 'page-settings', 'setting-nonce'); ?>"></a>
Kontrollen är nonce giltig?
Nu måste vi verifiera om passande nonce är giltigt eller inte. Vi kan göra detta på följande sätt. Här använder vi också funktionen wp_verify_nonce() för att kontrollera nonce-giltighet. Jag lägger till koden nedan längst upp på inställningssidan.
if (isset($_GET['setting-nonce']) && wp_verify_nonce($_GET['setting-nonce'], 'page-settings')) {
//safe tp proceed
}
Jag hoppas att du förstår hur du använder WordPress Nonce. Om du har några frågor eller förslag vänligen lämna en kommentar nedan.