WordPress Input Validation and Sanitization

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

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

BUY NOW DOWNLOAD READ ONLINE

Input Validation

Output Sanitization Section में अभी तक हमने जितने भी Sanitization Functions के बारे में जानाए उनमें से ज्यादातर Input Validation के लिए भी समान रूप से उपयोगी होते हैं। इनके अलावा भी WordPress हमें कुछ और API Functions Provide करता है, जिनका प्रयोग विभिन्न प्रकार के Security Issues Trigger न हों, इस हेतु अलग-अलग प्रकार के Input Data के Validation के लिए किया जाता है।

Email Validation

is_email() API Function प्रयोग करके हम इस बात को निश्चित कर सकते हैं कि इस API Function में Parameter के रूप में Pass किया गया Email Address Valid है या नहीं। ये एक Boolean API Function है जो true या false के रूप में Email के Validation को Indicate करता है। इसे निम्नानुसार Use किया जा सकता है:

if ( is_email( ’email@domain.com’ ) ) {
echo ’email address is valid.’;
}

Slugs Sanitization

सामान्‍यत: HTML व PHP Tags को Strip किया जाता है व Security Related Issues Trigger न हो, इस हेतु विभिन्न प्रकार के Sensitive Characters को Replace कर दिया जाता है। इसके अलावा Extra Sanitization प्राप्त करने के लिए हम Plugin API के sanitize_title Filter Hook को भी उपयोग में ले सकते हैं। sanitize_title() API Function का प्रयोग किसी WordPress Post Slug में होता है। इस Function का Syntax निम्नानुसार होता है:

<?php sanitize_title( $title, $fallback_title, $context ) ?>

इस Function को कुछ निम्नानुसार Use किया जा सकता है:

<?php
$new_url = sanitize_title(‘This Long Title is what My Post or Page might be’);
echo $new_url;
?>

इस Function का $title Parameter एक Compulsory Parameter है, जिसे Sanitize किया जाना होता है। जबकि $fallback_title एक Optional Parameter होता है। जब $title Parameter Empty होता है, तब Automatically इस दूसरे Parameter में Specified String को $title के लिए Use कर लिया जाता है। जबकि $context उस Operation को Represent करता है, जिसके लिए $title String को Sanitize किया जा रहा है। इसका Default मान “save” होता है। Return Value के रूप में ये API Function एक Sanitized String Return करता है। उदाहरण के लिए यदि हम उपरोक्त Example Code का Output देखें, तो ये Output कुछ निम्नानुसार होता है:

this-long-title-is-what-my-post-or-page-might-be

save” Context का प्रयोग सामान्‍यत: तब किया जाता है, जब हमारा Sanitized Data, Underlying Database में Save हो रहा होता है। जबकि इसे अन्‍य Purpose के लिए भी Use किया जा सकता है। इसी तरह से sanitize_title_for_query() API Function द्वारा उस समय “query” Context को Use किया जाता है, जब Value को SQL Query के WHERE Clause के साथ Use किया जा रहा होता है।

Email Sanitization

किसी Email Address को Sanitize करने के लिए WordPress हमें sanitize_email() नाम का API Function Provide करता हैं। जो Parameter के रूप में एक Email Address Accept करता है और Return Value के रूप में एक Valid Filtered Email Address Return करता है। यानी एक Valid Email Address में जो भी Un-Allowable Characters होते हैं, ये API Function उन्हें Strip करके एक Valid Filtered Email Address Return करता है। इसे निम्नानुसार Use कर सकते हैं:

<?php
$sanitized_email = sanitize_email(‘     admin@example.com!     ‘);
echo $sanitized_email;    // Output: ‘admin@example.com’
?>

Sanitization से पहले इस API Function में Parameter के रूप में Passed Email Address में Extra Space भी हैं और “!” के रूप में एक Extra Un-Allowable Character भी] लेकिन Sanitization के बाद केवल Filtered Valid Email ही Return होता है। एक Valid Email Address के लिए Allowed Characters को /[^a-z0-9+_.@-]/i Regular Expression के रूप में Specify किया जा सकता है।

हालांकि Email Address के Validation के लिए is_email()sanitize_email() API Functions को Use कर सकते हैं, लेकिन फिर भी कोई Email पूरी तरह से Valid है या नहीं इस बात को Confirm करने का केवल एक ही तरीका है कि Specified Email Address पर एक Confirmation Email Send किया जाए, जिसमें एक Confirmation Link हो।

यदि User का Email Address Valid होगा, तो User उस पर Click करेगा, जिससे Web Server द्वारा इस बात को Confirm किया जा सकता है कि Email Address Valid है। जबकि User जब तक उस Confirmation Link पर Click नहीं करता, तब तक उस EMail Address को Valid नही माना जाना चाहिए।

Sanitize HTML Class

जब हमें HTML Element में Specified किसी CSS Class Name को Sanitize करना होता है, तब हम इस Function प्रयोग करते हैं, जो इस बात को निश्चित करता है कि CSS Class Name में केवल Valid Characters की Exist हों। सामान्‍यत: इस Function को तब Use किया जाता है, जब हम Database से आने वाले किसी Content को CSS Class की Value के रूप में Set करना चाहते हैं।

ये API Function Parameter के रूप में आने वाले CSS Class Name की String से A-Z, a-z, 0-9, _, – के अलावा अन्‍य Characters को Strip कर देता है। यदि Stripping के बाद केवल एक Empty String बचता हो, तो ये API Function $fallback Parameter के रूप में Specified Alternative Value Return करता है। जब sanitize_html_class() API Function पूरी तरह से Execute हो जाता है, उसके बाद ये Sanitized Class Name को sanitize_html_class Filter Hook को Pass कर देता है। इस Function को हम निम्नानुसार Use कर सकते हैं:

// If you want to explicitly style a post,
// you can use the sanitized version of the post title as a class

$post_class = sanitize_html_class( $post->post_title );
echo ‘<div class=”‘ . esc_attr( $post_class ) . ‘”>’;

इस Example Code को Specify करने पर Current Post का Title एक Class के रूप में <div> Element में Use किया जा सकता है। परिणामस्वरूप हम किसी Particular Post के Title को एक CSS Class की तरह Use करते हुए Style कर सकते हैं

Sanitize Filename

जब हम किसी File Name से सभी Whitespaces Characters व Dashes को Remove करते हुए Sanitize करना चाहते हैं, तब हम इस API Function को Use कर सकते हैं। यानी ये API Function किसी Filename के रूप में जो Characters किसी Particular Operating System के लिहाज से Invalid होते हैं, उन्हें Remove कर देता है, जबकि Filename में Specified Special Characters को Special Escaping द्वारा Manipulate किया जाता है।

ये Function Filename में Used Continuous Multiple Spaces व Dashes को एक Single Dash में Convert कर देता है। जबकि Filename की Beginning व End से Period, Dash व Underscore Characters को Trim कर देता है।

इस Function द्वारा Special Characters को Filename से Remove करने से पहले sanitize_file_name_chars Filter Hook में Pass कर दिया जाता है, ताकि Plugin इस बात को तय कर सके कि उसके लिए Filename के कौनसे Characters Invalid हैं। जब sanitize_file_name() API Function पूरी तरह से Execute हो जाता है, उसके बाद ये Function, Filename को sanitize_file_name Filter में Pass कर देता है।

इस तरह से ये API Function Filename के रूप में एक String Parameter Retrieve करता है और Return Value के रूप में उपरोक्त Paragraph में Discussed सभी Rules को Apply करते हुए हमें एक Sanitized Filename Return करता है।

How to Secure WordPress - Data Validation and Sanitization
Data Validation Example

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

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

BUY NOW DOWNLOAD READ ONLINE

Download All Hindi EBooks

सभी हिन्दी EBooks C, C++, Java, C#, ASP.NET, Oracle, Data Structure, VB6, PHP, HTML5, JavaScript, jQuery, WordPress, etc... के DOWNLOAD LINKS प्राप्‍त करें, अपने EMail पर।

Register करके Login करें। इस Popup से छुटकारा पाएें।