What is a NONCE – What does NONCE Mean

What is a NONCE – पिछले Section द्वारा हमने समझा कि बिना Appropriate User Permission के कोई भी User कोई Specific Action Perform नहीं कर सकता और ऐसा करके हम हमारे WordPress System को Non-Privileged Users से Protect करते हैं। लेकिन यही बात हमारे ऊपर भी लागू होती है।

यानी जब हम अपने WordPress Admin Panel में Logged In होते हैं, तब हम WordPress Admin Panel में कई ऐसे Links व Buttons को Click कर सकते हैं, जो कि विभिन्न प्रकार के Admin Related Actions जैसे कि Post Delete करनाए Plugin की Settings को Change करनाए Category Create करनाए Post Create करना आदि Perform करते है और हम इन Actions को Perform कर सकें, इससे पहले इस बात को Verify करना जरूरी होता है कि क्‍या वास्तव में हम Logged In हैं और क्‍या वास्तव में एक Logged In User के रूप में हमारे पास इन सभी Actions को Perform करने से सम्बंधित Permissions हैं?

चूंकि एक WordPress Site में कई Users Register कर सकते हैं और विभिन्न Users अलग-अलग Level में Capability व Roles के साथ Register कर सकते हैं। इस स्थिति में इन Registered Users में कुछ ऐसे Malicious Users भी हो सकते हैं, जो किसी तरह से Trick करके एक Admin के रूप में हमें किसी ऐसे Link को Click करने के लिए प्रोत्साहित कर दें, जिसे Click किया जाना हमारी Site के लिए ठीक नहीं है। इस प्रकार की Tricking को ही Cross Site Request Forgery या CSRF के नाम से जाना जाता है और इस प्रकार की Tricking से बचने के लिए WordPress हमें NONCE नाम की सुविधा Provide करता है।

Computer Language में NONCE या Cryptographic NONCE वास्तव में “Number Used Once” का Abbreviation है। जबकि WordPress में ये एक Random String होता है, जिसे Password की तरह Treat किया जाता है और ये निम्न के लिए Specific या Unique होता है:

  • One WordPress user
  • One action (delete, update, save, and such)
  • One object (a post, a link, a plugin setting, and such)
  • One time frame of 24 hours

उदाहरण के लिए जब हम हमारे WordPress Admin Panel से #43 Post ID वाले किसी Post को Delete करना चाहते हैं, तो बनने वाला URL कुछ निम्नानुसार हो सकता है:

http://localhost/wp/wp-admin/post.php?post=43&action=trash&_wpnonce=58578fc7be

और जैसाकि हम इस URL में देख सकते हैं कि इस URL में nonce का मान 58578fc7be है और ये nonce केवल अगले 24 Hours के लिए ही Valid है, जबकि यदि अगले 24 Hours के दौरान #43 वाले Post को Delete न किया गया, ये nonce Invalid हो जाएगा। परिणामस्वरूप 24 घण्‍टे बाद इस URL का प्रयोग करके #43 वाले Post को Delete नहीं किया जा सकता।

साथ ही किसी अन्‍य Post को Delete करने के लिए भी इस nonce का दोबारा प्रयोग नहीं होगा क्योंकि हर Action के लिए WordPress द्वारा फिर से एक Unique nonce Generate किया जाता है। यानी यदि कोई Malicious User उपरोक्त URL को निम्नानुसार Modify करते हुए Post Number #43 के स्थान पर #44 को Delete करना चाहे:

http://localhost/wp/wp-admin/post.php?post=44&action=trash&_wpnonce=58578fc7be

तो वह ऐसा नहीं कर सकता क्योंकि जो nonce, Post ID #43 को Delete करने के लिए Create हुआ है, उसे Post ID #44 को Delete करने के लिए Use नहीं किया जा सकता। अत: NONCE की वजह से किसी भी Malicious User को कभी भी इस बात का पता नहीं होता कि किसी Action को Perform करने के लिए कौनसा nonce Use हो रहा है, परिणामस्वरूप बिना Appropriate nonce Value की जानकारी के कोई भी Malicious User कोई भी ऐसा Action Perform होने के लिए निश्चित नहीं कर सकताए जो कि WordPress Site के लिए किसी भी प्रकार से नुकसानदायक हो।

WordPress हमें दो तरीकों का प्रयोग करते हुए दो अलग API Functions Provide करता है, जिनका प्रयोग करके हम किसी HTML Form के लिए Hidden Field के रूप में अथवा किसी URL में GET Parameter के रूप में NONCES Create कर सकते हैं।

Creating URL Nonce

पिछले उदाहरण की तरह ही किसी URL के लिए nonce Create करके URL के साथ Add करने के लिए हम WordPress के wp_nonce_url() API Function को निम्नानुसार तरीके से Use कर सकते हैं:

<?php
	$url = wp_nonce_url($url, $action, $nonce_name);
?>

इस API Function का पहला Parameter एक String Type का Parameter है, जिसमें वह URL Address Stored है, जिसके साथ हम nonce को Query String के रूप में Append करना चाहते हैं। ये एक Compulsory Parameter होता है।

दूसरे Argument के रूप में हम उस Action को Specify करते हैं, जिसके लिए nonce Create कर रहे हैं जबकि ये एक Optional Parameter है और इसका Default मान -1 होता है।

इसी तरह से तीसरा Parameter भी एक Optional Parameter है जिसका Default मान “_wponce” होता है, जबकि यदि हम चाहें तो इस Parameter में किसी String Value को Specify कर सकते हैं, जो कि URL में Append होने वाले _wponce के स्थान पर Place होगा।

continue…

WordPress in Hindi - BccFalna.comये Article इस वेबसाईट पर Selling हेतु उपलब्‍ध EBook Advance WordPress in Hindi से लिया गया है। इसलिए यदि ये Article आपके लिए उपयोगी है, तो निश्चित रूप से ये EBook भी आपके लिए काफी उपयोगी साबित होगी।

Advance WordPress in Hindi | Page: 835 | Format: PDF

BUY NOW GET DEMO REVIEWS