wp_verify_nonce বনাম চেক_ডমিন_আগ্রহকারী


21

পার্থক্য কী, আমার কোনটি ব্যবহার করা উচিত?

আমি জানি যে wp_verify_nonce সময় সীমাটি পরীক্ষা করে, এবং আমার কাছে wp_verify_nonce কল করার পাশাপাশি অ্যাডমিন url বিভাগের জন্য পরীক্ষা করা মনে হয়, তবে আমার কোনটি ব্যবহার করা উচিত এবং কখন সে সম্পর্কে আমি কিছুটা বিভ্রান্ত।

স্পষ্টতার জন্য ধন্যবাদ।


1
এই প্রশ্নের জন্য টাম্বলবিড ব্যাজ? সত্যি? যে কেউ?
জেফ

উত্তর:


29

আমি ভেবেছিলাম যে check_admin_refererননসটি পরীক্ষা করেছে (এটি কল করে wp_verify_nonce, এবং রেফারিং ইউআরএল। মূল কোডটি খননের পরে আমি বুঝতে পেরেছিলাম যে এটি এটি করেনি। এটি একটি বাগ বলে ভেবে আমি এটি রিপোর্ট করেছি এবং রায়ান বোরেন নিম্নলিখিত উত্তর দিয়েছিলেন:

আসলে, ননসটি বৈধ হলে রেফারারটি চেক করা উচিত নয়। রেফারারদের অবিশ্বস্ততার অন্যতম কারণ হ'ল ননস ব্যবহার করা হয়। ননসেস পুরোপুরি রেফারার চেক প্রতিস্থাপন করে। -1 পশ্চাতে সামঞ্জস্যের শর্তটি পরিচালনা করার সময় আমরা কেবলমাত্র একবার রেফারারকে পরীক্ষা করি। -1 এর অর্থ হ'ল কেউ ননস ব্যবহার করছে না তাই আমরা রেফারার চেকিংয়ে ফিরে যাই। এই ব্যবহার এখন খুব বিরল। চেক_এডমিন_রেফার () এর নাম এখন খারাপভাবে দেওয়া হয়েছে যা এটি প্রায়শই রেফারার চেক করে না। এটি চেক_নেন্স () এর মতো আরও ভাল কিছু নাম দেওয়া হবে তবে আমরা এটি আগের বারের তুলনায় এবং পুরানো সময়ের জন্য রাখি।

সুতরাং আসলে কোন পার্থক্য নেই।


চমৎকার খননের কাজ, ধন্যবাদ, যা কিছু স্পষ্টতা এনেছে।
জেফ

5
প্রকৃতপক্ষে একটি বড় পার্থক্য রয়েছে যা ব্যবহারকে প্রভাবিত করে ... চেক_আডমিন_রেফার যদি ননসটি বৈধ না হয় তবে পুরো স্ক্রিপ্টটি ডাই () দিয়ে হত্যা করে, যেখানে ডাব্লুপি_ভারিফাই_নেন্স মিথ্যা বলে প্রত্যাবর্তন করে। সুতরাং যদি কিছু সাধারণ পরিস্থিতি থাকে যেখানে ননস ব্যর্থ হয়, wp_verify_nonce ব্যবহার করুন যাতে স্ক্রিপ্টের বাকী অংশটি এখনও কার্যকর হয়।
সপ্তম স্টিল

@ সেভেন্থস্টিল - আপনি অবশ্যই ঠিক আছেন। আমার প্রশ্নের ব্যাখ্যাটি হ'ল চেকের নোটগুলি যুক্তিযুক্ত তুলনা করা হচ্ছে তার পরিবর্তে যা ঘটেছিল তা যখন তার অবৈধ
স্টিফেন হ্যারিস

3

কোন !!!

গণনা করবেন না check_admin_referer, সাবধান!

  • এটি wp_verify_noneকেবল তখনই _wpnonceসেট করা হয় যখন সেট করা হয়েছিল !!!
  • সেক্ষেত্রে তা না করে DIE()। পরিবর্তে, এটি মিথ্যা ফেরত ...

এই সিউডো-কোডটি দেখুন ( সম্পূর্ণ উত্স এখানে ):

function check_admin_referer( $action = -1, $query_arg = '_wpnonce' ) {
    .....
    $result = isset($_REQUEST[$query_arg]) ? wp_verify_nonce($_REQUEST[$query_arg], $action) : false;
    do_action( 'check_admin_referer', $action, $result );
    if ( ! $result && ! ( -1 == $action && strpos( $referer, $adminurl ) === 0 ) ) {
        die(...);
    }
    return $result;
}
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.