ওয়ার্ডপ্রেসে ডেটা Sanitizing - SKJOY

ওয়ার্ডপ্রেসে ডেটা Sanitizing কিভাবে করতে হয়?

নমস্কার! শুভ অপরাহ্ন! স্বাগত জানাচ্ছি ওয়ার্ডপ্রেস নিয়ে আজকের ব্লগে। আজ আমরা শিখব ওয়ার্ডপ্রেসে ডেটা Sanitizing কিভাবে করতে হয়। দীর্ঘ বিরতির পর ওয়ার্ডপ্রেস ডেভেলপমেন্ট নিয়ে এটা প্রথম ব্লগ এবং নিঃসন্দেহে আজকের টপিক অনেক গুরুত্বপূর্ণ।

আপনি যখন ওয়ার্ডপ্রেস রিপোজিটোরি কিংবা বিভিন্ন মার্কেটপ্লেস টার্গেট করে থিম এবং প্লাগিন ডেভেলপমেন্ট করবেন তখন ইউজারের থেকে প্রাপ্ত ডেটা ডেটাবেজে সংরক্ষণ এবং তা পরবর্তীতে ইউজারকে প্রদর্শন উভয় ব্যাপারেই আপনাকে সর্তক থাকতে হবে।

Wordpress tutorial series - SKJOY

ডেটা Sanitizing এর জন্য ওয়ার্ডপ্রেসের নেটিভ কিছু ফাংশন রয়েছে। আজ আমরা এগুলার ব্যবহার নিয়ে আলোচনা করব। তাহলে চলুন মূল টপিকে প্রবেশ করা যাক।

Sanitizing কি?

স্বাভাবিক ভাবেই প্রশ্ন আসতে পারে Sanitizing কি। সাধারণত আমরা যখন এইচটিএমএল ফর্ম কিংবা অন্যকোন উপায়ে ইউজারের থেকে ডেটা ইনপুট নিই তখন ইউজার যে সব সময় আপনার কাঙ্খিত ডেটা ইনপুট করবে এমন নয়। হ্যাকার থেকে শুরু করে যেকেউ এক্সিকিউটেবল কোয়েরি ইনপুট করে আপনার ডেটাবেজ এক্সেস সহ পুরো সাইট হ্যাক করে ফেলতে পারে। তাই ইউজারের থেকে প্রাপ্ত ডেটা ডেটাবেজে যোগ করার আগে তা Sanitizing এর মাধ্যমে পরিস্কার পরিছন্ন করে নেওয়া হয়।

যেমন আপনি যদি ওয়ার্ডপ্রেস ড্যাসবোর্ড থেকে উইজেড টাইটেল লেখার সময় কোন এইচটিএম ট্যাগ ইউজ করেন তাহলে দেখবেন টাইটেল সেভ হবার আগেই অটোমেটিকালি টেক্স ব্যাতিত বাকি সব ট্যাগ রিমুভ হয়ে গিয়েছে।

ওয়ার্ডপ্রেসে ডেটা Sanitizing

একেক ধরণের ডেটা sanitize করার জন্য ওয়ার্ডপ্রেস আলাদা আলাদা ফাংশন রয়েছে। চলুন অতি প্রয়োজনীয় কয়েকটি ফাংশনের ব্যবহার দেখা যাক।

sanitize_email()

ইমেইল এড্রেসে ব্যবহার করা যাবেনা এমন সব ক্যারেক্টার এই ফাংশন রিমুভ করে দেয়। নিচের কোডটুকু লক্ষ্য করুন।


<?php

echo sanitize_email("skjoy bd@gmail.com");

?>

উপরের কোডে আমরা যে ইমেইল এড্রেস দিয়েছি তা কিন্তু ভ্যালিড না। কারণ skjoy এবং bd এর মাঝখানে একটা হোয়াইট স্পেস রয়েছে। এই কোড রান করালে আউটপুট আসবে

// Output

“skjoybd@gmail.com”

sanitize_email() ফাংশন দিয়ে ইমেইল এড্রেস টা ফিল্টার করাবার পর অটোমেটিকালি কিন্তু হোয়াইট স্পেস টা রিমুভ হয়ে গেল। আশাকরি স্যানিটাইজ কেন করা প্রয়োজন বুঝতে পেরেছেন।

sanitize_file_name()

ফাইলের নামে যদি এক কোন ক্যারেক্টার থাকে যা ফাইল প্রসেসিং সহ নানান কাজে সমস্যা তৈরী করতে পারে তাহলে তা sanitize_file_name() ফাংশনের মাধ্যমে রিমুভ করা যায়। ওয়ার্ডপ্রেসের মিডিয়া আপলোডার এই ফাংশন ব্যবহার করে ফাইলের নাম স্যানিটাইজ করবার জন্য। কোড সহ উদাহরণঃ


<?php

echo sanitize_file_name("_profile pic--1_.png");

?>

উপরের কোডটুকু রান করালে আউটপুট আসবে।

// Output

“profile-pic-1_.png”

পরিবর্তনটুকু লক্ষ্য করবেন। আমাদের ইনপুট দেওয়া ফাইলের নামের প্রথমে একটা আন্ডারস্কোর ছিল। তারপর একটা হোয়াইট স্পেস এবং দুইটা ড্যাস। অথচ স্যানিটাইজ করার পর আউটপুটে প্রথম থেকে আন্ডারস্কোর রিমুভ হয়ে হয়েছে, হোয়াইট স্পেসের স্থলে একটি ড্যাস দিয়ে পরিবর্তিত হয়েছে এবং দুইটা ড্যাস থেকে একটা বাদ দিয়ে দেওয়া হয়েছে।

sanitize_key()

ওয়ার্ডপ্রেসের অপশন, মেটাডেটা সহ নানান স্থানে KEY ব্যবহার করা হয়। যার কম্বিনেশন হল ছোট হাতের অক্ষর, ড্যাস এবং আন্ডারস্কোর। sanitize_key() ফাংশন ব্যবহার করে KEY টাইপের ভ্যালুকে স্যানিটাইজ করা যায়। কোড সহ উদাহরণঃ


<?php

echo sanitize_key("https://Skjoy.info");

?>

উপরের কোডটুকু রান করালে আউটপুট আসবে।

// Output

“httpsskjoyinfo”

এখানে sanitize_key() ফাংশন আমাদের দেওয়া ইনপুটের মধ্যে থাকা বড় হাতের অক্ষরকে ছোট হাতের অক্ষরে পরিবর্তন এবং বাকি সব ইনভ্যালিড ক্যারেক্টারকে রিমুভ করে দিয়েছে।

sanitize_text_field()

UTF-8 ক্যারেক্টার সেট এর অর্ন্তগত নয় এমন সব ক্যারেক্টারকে এই ফাংশন রিমুভ করে। এছাড়া ট্যাব, লাইন ব্রেক, অতিরিক্ত হোয়াইট স্পেস রিমুভ সহ  স্পেশাল ট্যাগকে বৈধ্য ক্যারেক্টারে এনকোড করে। কোড সহ উদাহরণঃ


<?php

echo sanitize_text_field("<b>Bold<</b>");

?>

উপরের কোডটুকু রান করালে আউটপুট আসবে।

// Output

“Bold&lt;”

ওয়ার্ডপ্রেসে উইজেড টাইটেল সানিটাইজের জন্য এই ফাংশন ব্যবহার করে।

sanitize_title()

ওয়ার্ডপ্রসের পোষ্ট টাইটেল স্যানিটাইজের জন্য এই ফাংশন ব্যবহার করা হয়। এটি স্ট্রিং ডেটা থেকে পিএইচপি এবং এইচটিএমএল ট্যাগ রিমুভ করে এবং হোয়াইট স্পেসকে ড্যাসে পরিবর্তন করে দেয়। কোড সহ উদাহরণঃ


<?php

echo sanitize_title("Sanítizing, Escaping and Validating Data in WordPress");

?>

কোডটুকু রান করালে আউটপুট আসবে।

“sanitizing-escaping-and-validating-data-in-wordpress”

sanitize_title() ফাংশন এখানে í ক্যারেক্টারকে i তে রুপান্তর করে দিয়েছে। এছাড়া বড় হাতের অক্ষরকে ছোট হাতের অক্ষর এবং হোয়াইট স্পেসকে ড্যাসে পরিবর্তিত করেছে। জেনে রাখা ভাল, টাইটেল স্যানিসাইজ করতে এই ফাংশন ব্যবহার হয়না। এটি ব্যবহার হয় টাইটেল থেকে স্লাগ জেনারেট করবার জন্য। টাইটেল স্যানিটাইজের জন্য sanitize_text_field() ফাংশন ব্যবহার করতে হবে।

ওয়ার্ডপ্রেসে ডেটা Sanitizing নিয়ে এটায় ছিল আজকের ব্লগ। যেকোন সমস্যায় জানাতে ভুলবেন না। ওয়ার্ডপ্রেস নিয়ে আরো বিস্তারিত লেখা রয়েছে ওয়ার্ডপ্রেস বিভাগে।

আজ এপর্যন্ত। ভাল থাকবেন। কথা হবে পরবর্তী ব্লগে। ফেসবুকে আমাকে পাবেন এখানে। হ্যাপি কোডিং।

Facebook Comments

S.k.joy

খুব সাধারণ একজন। বসবাস গ্রামে। জন্ম, বেড়ে উঠা এখানেই। অসম্ভব ভালবাসা এই গ্রামীন জীবন, প্রকৃতি আর পরিবেশের প্রতি। কাজ পড়াশোনার ক্ষেত্রে বার বার সুযোগ এলেও শহরবাসী হয়ে উঠতে পারিনি শেষ পর্যন্ত। শহরের অতি আধুনিকতা, কংক্রিটে মোড়া সুউচ্চ অট্টেলিকায় বন্দি জীবন আমায় কখনও আর্কষিত করতে পারিনি। খুব ভোরে ঘুম থেকে উঠে মেঠো পথে বেরিয়ে পড়ি সকালটাকে উপভোগ করতে। রাস্তার দুপাশে সারি সারি গাছ গুলোতে জেগে উঠা পাখিগুলো আমায় স্বাগত জানায়। বুক ভরে নিশ্বাস নিই। শিশিরে ভেজা ঘাস গুলো প্রতি মুহুর্তে সকালের কোমলতাকে জানান দেয়। সূর্যের রোদ সবার আগে গায়ে মেখে ফিরে আসি। দাদু-ঠাম্মা, ছোট ছোট ভাই বোন সবাইকে পরিবার। এইতো জীবন। খুশিতে ভরা জীবন। দূরে গিয়ে সবার থেকে আলাদা হয়ে নিজের মত থাকার মধ্যে জীবনের কোন মানে খুঁজে পাইনা আমি।