এই অধ্যায় এবং পরবর্তী অধ্যায়ে আমরা পিএইচপি ফর্ম ভ্যালিডেশন(validation) নিয়ে আলোচনা করবো।
পিএইচপি ফর্ম ভ্যালিডেশন
আমরা কেন ফর্ম এর বৈধতা বা ভ্যালিডিটি যাচাই করি? সিকিউরিটির কথা মাথায় রেখেই আমরা মূলত পিএইচপি ফর্ম এর ভ্যালিডিটি যাচাই করি।
সিকিউরিটিকে প্রাধান্য দিয়ে কিভাবে ফর্ম ভ্যালিড করতে হয় এই অধ্যায়ে আমরা স্টেপ বাই স্টেপ দেখবো। হ্যাকার বা স্প্যামার থেকে ফর্মকে রক্ষা করার জন্য উপযুক্ত ফর্ম ভ্যালিডেশন আবশ্যক!
আমরা যে এইচটিএমএল ফর্ম নিয়ে কাজ করবো তার মধ্যে বিভিন্ন ইনপুট ফিল্ড রয়েছেঃ আবশ্যক এবং ঐচ্ছিক টেক্সট ফিল্ড, রেডিও বাটন এবং সাবমিট বাটন।
উপরের ফর্মটি ভ্যালিডেশন করার রুলসগুলো নিম্নরুপঃ
| ফিল্ড | ভ্যালিডেশন রুলস |
|---|---|
| নাম | আবশ্যক। এবং এতে শুধুমাত্র লেটার(letter) এবং whitespace থাকবে। |
| ই-মেইল | আবশ্যক। একটি ভ্যালিড ইমেইল হতে হবে (@ এবং . সহ)। |
| লিঙ্গ | আবশ্যক। কমপক্ষে একটি ফিল্ড অবশ্যই সিলেক্ট করতে হবে। |
| মেসেজ | ঐচ্ছিক। মাল্টি-লাইন ইনপুট ফিল্ড(টেক্সট-এরিয়া)। |
সর্বপ্রথম, আমরা ফর্ম থেকে প্লেইন এইচটিএমএল কোডগুলো লক্ষ্য করবোঃ
টেক্সট ফিল্ড
নাম এবং ই-মেইল হলো টেক্সট ইনপুট এলিমেন্ট এবং মেসেজ হলো টেক্সট-এরিয়া। এই তিনটি ইনপুট ফিল্ডের সমন্বয়ে গঠিত এইচটিএমএল কোডগুলো দেখতে এমনঃ
kt_satt_skill_example_id=350
রেডিও(Radio) বাটন
লিঙ্গ নির্ধারণ করার ফিল্ডটি হলো রেডিও বাটন এবং এইচটিএমএল কোডগুলো দেখতে এমনঃ
kt_satt_skill_example_id=351
ফর্ম এলিমেন্ট
ফর্ম এলিমেন্ট দেখতে এমনঃ
kt_satt_skill_example_id=353
যখন ফর্মটি সাবমিট করা হবে, ফর্মের ডাটাগুলো method="post" এর মাধ্যমে পাঠানো হবেঃ
$_SERVER["PHP_SELF"]ভ্যারিয়েবল কি?$_SERVER["PHP_SELF"]একটি সুপারগ্লোবাল ভ্যারিয়েবল যা বর্তমানে সম্পাদিত স্ক্রিপ্ট এর নাম রিটার্ন করে। সুতরাং ফর্ম ডেটাকে প্রসেস করার জন্য অন্য পেজে না পাঠিয়ে একই(ফর্মটি যে পেজ থাকে) পেজ থেকে প্রসেস করতে হলে এই ভ্যারিয়েবলটি ব্যবহার করতে হয়।
htmlspecialchars()ফাংশন কি?htmlspecialchars()ফাংশনটি বিশেষ বিশেষ ক্যারেক্টারসমূহকে এইচটিএমএল এনটিটি(entity) তে রূপান্তর করে। সুতরাং এটি এইচটিএমএল ক্যারেক্টার যেমন- < এবং > কে যথাক্রমে < এবং > দিয়ে রিপ্লেস করে। এটি হ্যাকার কর্তৃক এইচটিএমএল এবং জাভাস্ক্রিপ্ট কোডের ইনজেকশন (Cross-site Scripting attacks) দ্বারা ফর্ম কোডকে ধ্বংশের হাত থেকে রক্ষা করে।
পিএইচপি ফর্ম সিকিউরিটি
$_SERVER["PHP_SELF"] ভ্যারিয়েবলটি হ্যাকার কর্তৃক ব্যবহৃত হতে পারে!
আপনি যদি আপনার ওয়েব পেজে PHP_SELF ব্যবহার করে থাকেন তাহলে একজন ইউজার আপনার পেজ লিঙ্কের শেষে একটি স্ল্যাশ(/) এবং এরপরে কিছু Cross Site Scripting(XSS) কমান্ড সম্পাদন করতে পারে।
কম্পিউটারের একটি দুর্বল সিকিউরিটি হচ্ছে Cross-site scripting(XSS) যা সাধারনত ওয়েব অ্যাপ্লিকেশন এর ক্ষেত্রে দেখা যায়। Cross Site Scripting(XSS) ব্যবহার করে হ্যাকাররা একটি ওয়েব পেজের client-side script ইনজেক্ট করতে সক্ষম হয়।
ধরুন, নিচের ফর্মটি "test_form.php" পেজ রয়েছেঃ
kt_satt_skill_example_id=354
এখন যদি একজন ইউজার তার ব্রাউজারের ঠিকানা অংশে সাধারন URL প্রবেশ করায় যেমনঃ "http://www.example.com/test_form.php" তাহলে উপরের কোড নিম্নের কোডে রূপান্তরিত হবেঃ
kt_satt_skill_example_id=355
এখন পর্যন্ত সবই ঠিক আছে।
যাইহোক, ধরুন একজন ইউজার নিম্নের URL টি তার ব্রাউজারের ঠিকানা অংশে প্রবেশ করালোঃ
kt_satt_skill_example_id=358
এই অবস্থায় উপরের কোড টুকু নিম্নের কোডে রূপান্তরিত হবেঃ
kt_satt_skill_example_id=359
এই কোডটি এলার্ট কমান্ড যুক্ত একটি script ট্যাগ যোগ করবে। আর যখন পেজটি সম্পূর্ণ লোড হবে তখন জাভাস্ক্রিপ্ট কোডটি সম্পাদিত হবে এবং ইউজার একটি সতর্ক বার্তা পাবে। এটি একটি অতি সাধারন এবং ক্ষতি বিহীন উদাহরণ যা আপনাকে বুঝতে সাহায্য করবে কিভাবে PHP_SELF ভ্যারিয়েবলটির অপব্যবহার করা যায়।
সুতরাং সর্বদা সচেতন থাকতে হবে কারন
আপনি আমাকে যেকোনো প্রশ্ন করতে পারেন, যেমনঃ Are you sure to start over?Hi, আমি SATT AI!