এইচটিএমএল আউটপুটটি এস্ক_এইচটিএমএল () এবং ডাব্লুপিপি_সেস () দিয়ে যেতে হবে?


11

আমি বিভিন্ন ব্যবহার করে সে সম্পর্কে বিভ্রান্ত করছি esc_html()এবং wp_kses()। আমি বুঝতে পারি যে esc_html()বিশেষ অক্ষরগুলি তাদের এইচটিএমএল সত্তায় রূপান্তর করে, এবং এটি wp_kses()অযাচিত ট্যাগগুলি (যেমন, <script>) সরিয়ে দেয় তবে এগুলি একসাথে বা পৃথকভাবে কী প্রসঙ্গে ব্যবহার করা উচিত তা সম্পর্কে আমি নিশ্চিত নই।

যদি আমি এর মাধ্যমে কিছু অবিশ্বস্ত এইচটিএমএল চালিত করি esc_html(), তবে কোনও জাভাস্ক্রিপ্ট ব্রাউজার দ্বারা রেন্ডারিংয়ের পরিবর্তে সরল পাঠ্যে প্রদর্শিত হবে, তাই এটি ঠিক সে জায়গায় নিরাপদ, তাই না? এটির মাধ্যমে চালানোর একমাত্র কারণটি wp_kses()কি কাঁচা স্ক্রিপ্ট প্রদর্শিত হওয়া এড়ানো উচিত?

মূলত, esc_html()এটি নিরাপদ করে wp_kses()তোলে এবং এটি সুন্দর করে তোলে। এটা কি ঠিক?

উত্তর:


16

সাধারণ নিয়ম, অন্তত হিসাবে চিহ্নিত করুন Jaquith দ্বারা espoused হয় ইনপুটের নির্বিষ, আউটপুট উপর অব্যাহতি (এই নিয়ম হচ্ছে সম্পুরক নির্বিষ গোড়ার দিকে প্রয়াত অব্যাহতি )।

সুতরাং: ডাটাবেসে অবিশ্বস্ত ডেটা সংরক্ষণ করারkses() সময় স্যানিটাইজেশন ফিল্টারগুলি (যেমন পরিবার) ব্যবহার করুন এবং টেমপ্লেটে অবিশ্বস্ত ডেটা আউটপুট দেওয়ার সময় এস্কেপিং ফিল্টারগুলি (অর্থাৎ পরিবার) ব্যবহার করুনesc_*()


14

আপনি যখন এইচটিএমএলের কিছু উপসেটকে ফলস্বরূপ হতে দিতে চান তখন kses ফাংশনগুলি ব্যবহার করা উচিত। উদাহরণস্বরূপ, মন্তব্যগুলিতে সাহসী, তির্যক, লিঙ্কগুলি এবং এ জাতীয় কিছু HTML এর মঞ্জুরি দেয়।

এসটি_এইচটিএমএল ফাংশনটি এইচটিএমএল থেকে সম্পূর্ণরূপে এড়াতে ব্যবহার করা উচিত। কোনও ব্রাউজারের দ্বারা এইচটিএমএলকে নন-এইচটিএমএল হিসাবে ব্যাখ্যা করা হবে এমন কোনও রূপান্তর না করে কোনও HTML এটির মধ্য দিয়ে যাবে না।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.