আমি নিশ্চিত করতে চাই যে আমার প্লাগিনগুলি / থিমগুলির সমস্ত ডেটা ডাটাবেসে প্রবেশের আগে এবং ব্রাউজারে আউটপুট দেওয়ার আগে সুরক্ষিতভাবে পরিচালনা করা হয়েছে। আমার সমস্যাটি হ'ল এমন পরিস্থিতি রয়েছে যেখানে API আপনার জন্য স্যানিটাইজেশন পরিচালনা করে - যেমন পোস্ট মেটা ক্ষেত্রগুলি সংরক্ষণ করার সময় - এবং প্লাগইন / থিম লেখক এটি করার জন্য পুরোপুরি দায়ী - যেমন কাস্টম সেটিংস সংরক্ষণ করার সময়।
এই প্রশ্নের ক্ষেত্রের জন্য, আমি ডোমেন স্তরে ডেটা বৈধকরণ সম্পর্কে উদ্বিগ্ন নই - উদাহরণস্বরূপ, কোনও ফর্মের একটি বয়স ক্ষেত্র 0 থেকে 120 এর মধ্যে রয়েছে কিনা তা পরীক্ষা করে নিচ্ছেন বা একটি ইমেল ঠিকানা বৈধ। আমি কেবল সুরক্ষার বিষয়েই উদ্বিগ্ন - যেমন, ডাটাবেসে সংরক্ষণ করার সময় এসকিউএল ইনজেকশন এড়াতে এসকিউএল কোয়েরিগুলি থেকে দূরে থাকা বা এক্সএসএস এড়ানোর জন্য এইচটিএমএল টেমপ্লেটগুলিতে আউটপুট থাকা ডেটা স্যানিটাইজ করা।
আউটপুট sanitization জন্য, আমি জানি তুমি সব সময়ই মতো কাজগুলির ব্যবহার করতে হবে esc_html()
এবং esc_attr()
যখন এইচটিএমএল টেমপ্লেট মধ্যে ভেরিয়েবল echo'ing। তবে, টেমপ্লেট ট্যাগগুলি ব্যবহার করার পরে কী হবে ? তারা সবাই কি ইতিমধ্যে আউটপুট স্যানিটাইজ করে? যদি তা হয় তবে কোন প্রসঙ্গে (সাধারণ এইচটিএমএল, ট্যাগ বৈশিষ্ট্য ইত্যাদি)? কিছু ফাংশনে বিভিন্ন প্রসঙ্গে (যেমন the_title_attribute()
, তবে বেশিরভাগ ক্ষেত্রে থাকে না) বৈকল্পিক রয়েছে ।
ইনপুট স্যানিটাইজেশনের জন্য, আমি জানি যে $wpdb->prepare()
ম্যানুয়াল ক্যোয়ারীগুলি তৈরি করার সময় আমাকে ব্যবহার করা উচিত তবে প্লাগইন সেটিংস পৃষ্ঠা তৈরি করতে সেটিংস এপিআই ব্যবহার করার সময় বা কাস্টম পোস্টের জন্য পোস্ট মেটা ক্ষেত্রগুলি সংরক্ষণ করার বিষয়ে কী হবে?
এই মুহুর্তে আমি সবেমাত্র কোর মাধ্যমে খনন করেছি এবং টিউটোরিয়ালগুলি প্রতিবারই ফাংশনটি ব্যবহার করে এটি স্যানিটাইজ করে কিনা তা খুঁজে বের করার জন্য, তবে এটি ত্রুটি-প্রবণ এবং সময়সাপেক্ষ। আমি সম্ভাব্য সমস্ত পরিস্থিতিতে এবং এপিআই এটি পরিচালনা করে কিনা তা নিয়ে কিছু ধরণের বিস্তৃত তালিকা পাওয়ার আশা করছি। যেমন,
এপিআই বৈধতা দেয় / স্বাস্থ্যকর করে
- এর সাথে পোস্ট মেটা সংরক্ষণ করা হচ্ছে
update_postmeta()
- এর সাথে ব্যবহারকারীর মেটা সংরক্ষণ করা হচ্ছে
update_user_meta()
- একটি পোস্ট শিরোনাম আউটপুটিং - এর প্রাসঙ্গিকভাবে উপযুক্ত বৈকল্পিক ব্যবহার করুন
the_title()
- ইত্যাদি
আপনাকে ম্যানুয়ালি বৈধতা / স্যানিটাইজ করতে হবে
- সেটিংস এপিআই দিয়ে প্লাগইন বিকল্প সংরক্ষণ করা হচ্ছে। এর তৃতীয় প্যারামিটার হিসাবে একটি কলব্যাক পাস করুন
register_setting()
। - সরাসরি ডাটাবেসের প্রশ্নের: মোড়ানো ক্যোয়ারী
$wpdb->prepare()
। - এইচটিএমএল আউটপুটিং ভেরিয়েবল। ব্যবহার
esc_attr()
,esc_html()
ইত্যাদি - ইত্যাদি
আমি এপিআই কেন নির্দিষ্ট পরিস্থিতিতে এটি সরবরাহ করে তা বুঝতে আগ্রহী, তবে অন্যদের নয়। আমি ধরে নিচ্ছি যে এটির তথ্যের অজানা প্রকৃতির সাথে কিছু করার আছে তবে পুরোপুরি ব্যাখ্যা শুনতে ভাল লাগবে।
the_title()
, the_permalink()
ইত্যাদি) তুমি ভাল আছো কিন্তু কাস্টম ডেটার সাথে তাই না (যেমন get_post_meta()
)। যদি সন্দেহ হয় তবে নিজের স্বাচ্ছন্দ্য দিন - এটি কোনও ক্ষতি করতে পারে না।