国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

目錄
關(guān)鍵要點(diǎn)
什么是WordPress Nonce?
設(shè)置我們的WordPress插件
演示安全漏洞
使用Nonce保護(hù)我們的插件
首頁 CMS教程 &#&按 什么是WordPress Nonces?

什么是WordPress Nonces?

Feb 16, 2025 pm 12:58 PM

WordPress安全:使用Nonce保護(hù)主題和插件代碼

保護(hù)WordPress主題或插件代碼的安全至關(guān)重要,可以有效防止惡意用戶的攻擊。我們之前已經(jīng)介紹過如何在WordPress中清理、轉(zhuǎn)義和驗(yàn)證表單數(shù)據(jù),以及如何使用VIP掃描器提高WordPress主題質(zhì)量。今天,我們將探討Nonce(一次性使用數(shù)字)如何幫助保護(hù)WordPress主題和插件的安全。

關(guān)鍵要點(diǎn)

  • WordPress Nonce,或“一次性使用數(shù)字”,是獨(dú)特的安全令牌,用于增強(qiáng)WordPress網(wǎng)站的安全性,方法是驗(yàn)證用戶請求并防止惡意企圖。它們在防止跨站點(diǎn)請求偽造(CSRF)攻擊方面特別有用。
  • Nonce的工作原理是為每個(gè)用戶會(huì)話、表單提交或AJAX請求生成一個(gè)唯一令牌。然后在處理請求時(shí)驗(yàn)證此令牌,如果不匹配,則拒絕請求。這使得攻擊者難以預(yù)測或?yàn)E用令牌。
  • 在WordPress中創(chuàng)建Nonce是通過使用WordPress函數(shù)wp_create_nonce()實(shí)現(xiàn)的,該函數(shù)接受一個(gè)表示要保護(hù)的操作的單個(gè)字符串參數(shù)。驗(yàn)證Nonce是使用wp_verify_nonce()函數(shù)完成的,該函數(shù)接受兩個(gè)參數(shù):要驗(yàn)證的Nonce和關(guān)聯(lián)的操作。
  • Nonce可用于WordPress中的AJAX請求,從而增加了防止CSRF攻擊的額外安全層。Nonce也是特定于用戶的,通過確保為一個(gè)用戶創(chuàng)建的Nonce對另一個(gè)用戶無效,提供了額外的安全層。

什么是WordPress Nonce?

WordPress Nonce定義為:

……一個(gè)“一次性使用數(shù)字”,用于幫助保護(hù)URL和表單免受某些類型的濫用(惡意或其他)。 http://m.miracleart.cn/link/c5af1dfde10402285102771ad64b3dac

雖然在WordPress中,Nonce從技術(shù)上講不是數(shù)字(它是由字母和數(shù)字組成的哈希值),但它確實(shí)有助于防止惡意用戶運(yùn)行操作。

WordPress Nonce的工作分為兩部分:

  • 創(chuàng)建Nonce(哈希值),通過表單或操作提交它,以及
  • 驗(yàn)證Nonce,然后接受表單數(shù)據(jù)或運(yùn)行操作。

例如,當(dāng)您在WordPress管理屏幕中刪除帖子時(shí),您會(huì)注意到URL包含一個(gè)_wpnonce參數(shù):

http://m.miracleart.cn/link/18175d262a01ebf04bc03e38e48e3ffc

刪除帖子的例程將檢查帖子542是否具有a03ac85772的Nonce值,然后再刪除帖子。如果Nonce不存在或與預(yù)期值不匹配,則不會(huì)刪除帖子。

這可以防止惡意用戶潛在地刪除大量帖子。例如,以下內(nèi)容將不起作用,因?yàn)镹once屬于帖子ID 542:

http://m.miracleart.cn/link/322d830da1130169fb4ca1c7543799d0 http://m.miracleart.cn/link/dd4143061640d55fb312dd0ce8afa76e http://m.miracleart.cn/link/9e0f9113b44003201076a9fade1b72d8

What Are WordPress Nonces?

現(xiàn)在讓我們看看如何在插件中實(shí)現(xiàn)WordPress Nonce。

設(shè)置我們的WordPress插件

讓我們從一個(gè)具有自身設(shè)置屏幕的基本插件開始。設(shè)置屏幕有一個(gè)字段,可以提交并保存在WordPress選項(xiàng)表中。

wp-content/plugins/implementing-wordpress-nonces/implementing-wordpress-nonces.php中的新文件中輸入以下代碼:

// ... (插件代碼,與原文相同) ...

通過WordPress管理>插件屏幕激活插件,您將看到一個(gè)新的Nonces菜單項(xiàng):

What Are WordPress Nonces?

單擊此項(xiàng),您將進(jìn)入設(shè)置屏幕,其中只有一個(gè)字段:

What Are WordPress Nonces?

輸入任何值,單擊“保存”,如果一切正常,您將看到確認(rèn)信息以及您剛剛輸入的值:

What Are WordPress Nonces?

演示安全漏洞

將以下URL輸入到您的Web瀏覽器地址欄中(將域名替換為您安裝WordPress的位置):

http://m.miracleart.cn/link/0e143c3bef0f7759c230664c4dc905f8

注意發(fā)生了什么?該值被簡單地保存為abc,只需直接訪問URL并登錄到WordPress即可:

What Are WordPress Nonces?

雖然我們可以在代碼中使用$_POST代替$_REQUEST(我們使用$_REQUEST是為了更容易演示安全問題),但這無濟(jì)于事——惡意用戶仍然可以通過自己或誘導(dǎo)您單擊鏈接來讓您向此屏幕發(fā)送POST請求,從而導(dǎo)致選項(xiàng)值更改。

這被稱為跨站點(diǎn)請求偽造(或CSRF)。惡意網(wǎng)站、電子郵件、應(yīng)用程序等會(huì)導(dǎo)致用戶的Web瀏覽器執(zhí)行不需要的操作。

我們現(xiàn)在將創(chuàng)建和驗(yàn)證WordPress Nonce,以防止這種攻擊成為可能。

使用Nonce保護(hù)我們的插件

如前所述,此過程分為兩個(gè)步驟:首先,我們需要?jiǎng)?chuàng)建一個(gè)將與我們的表單一起提交的Nonce。其次,我們需要在提交表單時(shí)驗(yàn)證該Nonce。

要在我們的表單中創(chuàng)建Nonce字段,我們可以使用wp_nonce_field()

獲取或顯示Nonce隱藏表單字段……用于驗(yàn)證表單請求的內(nèi)容是否來自當(dāng)前站點(diǎn),而不是其他地方……

在我們的輸入按鈕上方添加以下代碼:

// ... (插件代碼,與原文相同) ...

wp_nonce_field接受四個(gè)參數(shù)——前兩個(gè)最重要:

  • $action:這決定了我們正在運(yùn)行的特定操作,并且應(yīng)該唯一。最好用插件名稱作為操作的前綴,因?yàn)榭赡軙?huì)有多個(gè)操作運(yùn)行。在本例中,我們正在保存某些內(nèi)容,因此我們使用了implementing_wordpress_nonces_save
  • $name:這決定了此函數(shù)創(chuàng)建的隱藏字段的名稱。如上所述,我們已使用插件名稱作為其前綴,因此將其命名為implementing_wordpress_nonces_nonce

如果我們重新加載設(shè)置屏幕,更改我們的值并單擊“保存”,您會(huì)注意到該值仍然會(huì)更改。我們現(xiàn)在需要實(shí)現(xiàn)對提交的Nonce字段的檢查,使用wp_verify_nonce( $name, $action )

驗(yàn)證Nonce是否正確且相對于指定操作未過期。該函數(shù)用于驗(yàn)證當(dāng)前請求中發(fā)送的Nonce,通常通過$_REQUEST PHP變量訪問。

將我們插件的admin_screen()函數(shù)的“保存設(shè)置”部分替換為以下代碼:

wp_nonce_field( 'implementing_wordpress_nonces_save', 'implementing_wordpress_nonces_nonce' );

此代碼執(zhí)行以下幾個(gè)操作:

  • 首先,它檢查我們是否提交了某些內(nèi)容。
  • 然后,它檢查我們的Nonce字段是否存在,如果存在,則嘗試根據(jù)我們期望的操作驗(yàn)證Nonce的值。
  • 如果檢查通過,則更新選項(xiàng)。
  • 如果檢查失敗,我們將拋出一個(gè)403錯(cuò)誤,消息為“無效的Nonce指定”。

為了確保我們的Nonce正在創(chuàng)建和驗(yàn)證,讓我們再次嘗試訪問我們的“惡意”直接URL:

http://m.miracleart.cn/link/0e143c3bef0f7759c230664c4dc905f8.

如果我們的Nonce已實(shí)現(xiàn)并正在驗(yàn)證,您將看到“無效的Nonce指定”通知:

What Are WordPress Nonces?

...(剩余部分與原文相同,只是對語言和表達(dá)方式進(jìn)行細(xì)微調(diào)整,保持原意不變)...

以上是什么是WordPress Nonces?的詳細(xì)內(nèi)容。更多信息請關(guān)注PHP中文網(wǎng)其他相關(guān)文章!

本站聲明
本文內(nèi)容由網(wǎng)友自發(fā)貢獻(xiàn),版權(quán)歸原作者所有,本站不承擔(dān)相應(yīng)法律責(zé)任。如您發(fā)現(xiàn)有涉嫌抄襲侵權(quán)的內(nèi)容,請聯(lián)系admin@php.cn

熱AI工具

Undress AI Tool

Undress AI Tool

免費(fèi)脫衣服圖片

Undresser.AI Undress

Undresser.AI Undress

人工智能驅(qū)動(dòng)的應(yīng)用程序,用于創(chuàng)建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用于從照片中去除衣服的在線人工智能工具。

Clothoff.io

Clothoff.io

AI脫衣機(jī)

Video Face Swap

Video Face Swap

使用我們完全免費(fèi)的人工智能換臉工具輕松在任何視頻中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費(fèi)的代碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

功能強(qiáng)大的PHP集成開發(fā)環(huán)境

Dreamweaver CS6

Dreamweaver CS6

視覺化網(wǎng)頁開發(fā)工具

SublimeText3 Mac版

SublimeText3 Mac版

神級(jí)代碼編輯軟件(SublimeText3)

如何將git與WordPress一起使用 如何將git與WordPress一起使用 Jun 26, 2025 am 12:23 AM

使用Git管理WordPress項(xiàng)目時(shí),應(yīng)只將主題、自定義插件和配置文件納入版本控制;設(shè)置.gitignore文件以忽略上傳目錄、緩存和敏感配置;利用webhook或CI工具實(shí)現(xiàn)自動(dòng)部署并注意數(shù)據(jù)庫處理;采用兩分支策略(main/develop)進(jìn)行協(xié)作開發(fā)。這樣做可避免沖突、保障安全,并提升協(xié)作與部署效率。

如何使用WordPress測試環(huán)境 如何使用WordPress測試環(huán)境 Jun 24, 2025 pm 05:13 PM

使用WordPress測試環(huán)境是為了確保新功能、插件或主題在正式上線前的安全性和兼容性,避免影響真實(shí)網(wǎng)站。搭建測試環(huán)境的步驟包括:下載安裝本地服務(wù)器軟件(如LocalWP、XAMPP),創(chuàng)建站點(diǎn)、設(shè)置數(shù)據(jù)庫和管理員賬號(hào),安裝主題和插件進(jìn)行測試;復(fù)制正式網(wǎng)站到測試環(huán)境的方法是通過插件導(dǎo)出站點(diǎn)、導(dǎo)入測試環(huán)境并替換域名;使用時(shí)應(yīng)注意不使用真實(shí)用戶數(shù)據(jù)、定期清理無用數(shù)據(jù)、備份測試狀態(tài)、適時(shí)重置環(huán)境,并統(tǒng)一團(tuán)隊(duì)配置以減少差異問題。

如何創(chuàng)建一個(gè)簡單的Gutenberg塊 如何創(chuàng)建一個(gè)簡單的Gutenberg塊 Jun 28, 2025 am 12:13 AM

創(chuàng)建Gutenberg塊的關(guān)鍵在于理解其基本結(jié)構(gòu)并正確連接前后端資源。1.準(zhǔn)備開發(fā)環(huán)境:安裝本地WordPress、Node.js和@wordpress/scripts;2.使用PHP注冊塊并用JavaScript定義塊的編輯和顯示邏輯;3.通過npm構(gòu)建JS文件以使更改生效;4.遇到問題時(shí)檢查路徑、圖標(biāo)是否正確或使用實(shí)時(shí)監(jiān)聽構(gòu)建避免重復(fù)手動(dòng)編譯。按照這些步驟,可以逐步實(shí)現(xiàn)一個(gè)簡單的Gutenberg塊。

如何以編程方式刷新規(guī)則 如何以編程方式刷新規(guī)則 Jun 27, 2025 am 12:21 AM

在WordPress中,當(dāng)新增自定義文章類型或修改固定鏈接結(jié)構(gòu)后,需手動(dòng)刷新重寫規(guī)則,此時(shí)可通過代碼調(diào)用flush_rewrite_rules()函數(shù)實(shí)現(xiàn)。1.可在主題或插件激活鉤子中添加該函數(shù)以自動(dòng)刷新;2.僅在必要時(shí)執(zhí)行一次,如添加CPT、分類法或修改鏈接結(jié)構(gòu)后;3.避免頻繁調(diào)用以免影響性能;4.多站點(diǎn)環(huán)境下需視情況為每個(gè)站點(diǎn)單獨(dú)刷新;5.某些托管環(huán)境可能限制規(guī)則保存。此外,訪問“設(shè)置>固定鏈接”頁面點(diǎn)擊保存也可觸發(fā)刷新,適合非自動(dòng)化場景。

如何在WordPress htaccess中設(shè)置重定向 如何在WordPress htaccess中設(shè)置重定向 Jun 25, 2025 am 12:19 AM

tosetupredirectsinwordpressingthe.htaccessfile,locateThEfileInyourSite'sRootDirectorectoryAndDrectRectrulesabovethe#beginWordPresssection.forbasic301redirects,USETHEETHEETERECTREFTATRECTATREDERTREFTATREDERTREFTATRECTRECTATRECTRECTATREDECT301/OLD-PAGEHTTPS:

如何使WordPress主題響應(yīng)迅速 如何使WordPress主題響應(yīng)迅速 Jun 28, 2025 am 12:14 AM

要實(shí)現(xiàn)響應(yīng)式WordPress主題設(shè)計(jì),首先要使用HTML5和移動(dòng)優(yōu)先的Meta標(biāo)簽,在header.php中添加viewport設(shè)置以確保移動(dòng)端正確顯示,并用HTML5結(jié)構(gòu)標(biāo)簽組織布局;其次,利用CSS媒體查詢實(shí)現(xiàn)不同屏幕寬度下的樣式適配,按移動(dòng)優(yōu)先原則編寫樣式,常用斷點(diǎn)包括480px、768px和1024px;第三,彈性處理圖片和布局,為圖片設(shè)置max-width:100%并使用Flexbox或Grid布局替代固定寬度;最后,通過瀏覽器開發(fā)者工具和真實(shí)設(shè)備進(jìn)行充分測試,優(yōu)化加載性能,確保響應(yīng)

如何使用SMTP從WordPress發(fā)送電子郵件 如何使用SMTP從WordPress發(fā)送電子郵件 Jun 27, 2025 am 12:30 AM

UsingsMtpForWordPresseMailSimProvesDeliverabilitialComparedComparedTothEdeDefaultPhpMail()函數(shù).1.smtpauthenticateswithyouremailserver.2.somemomehostsdisablesablephpmail()

如何將第三方API與WordPress集成 如何將第三方API與WordPress集成 Jun 29, 2025 am 12:03 AM

TOINTEGRATETHIRD-PARTYAPISINTOWORDPRESS,關(guān)注臺(tái)詞:1.SelectAutableabepianDobtainCredentialslikeapikeYsoroAuthtoKensByEnterRegisteringThemSecure.2.ChooseBeteBetB??eteBetB??eteBetB??etebetInpliCityOorcustimplicityOrcustomPliCoseTompliCoseTomploomcoseusionfunctionfunctionfunctibunitiacuciencipuity forfunigation。

See all articles