سلام.واسه این کار در PHP چندین تابع وجود داره. در ضمن باید مشخص بشه قصدتون دقیقا چه نوع ایمن سازی ای هست. کلا 3 نوع ایمن سازی داده داریم:
- Validating
- Sanitizing
- Escaping
Validating یا معتبرسازی: مواقعی استفاده میشه که شما قصد داشته باشی نوع خاصی از داده ورودی رو دریافت کنی. مثلا شماره موبایل، جنسیت، لیست شهرها و ...نوشتن توابع معتبرسازی هم به عهده ی خود کاربره (البته هستند توابع و کلاسهایی که این کارها رو بکنند ولی برخی مواقع پیش میاد که شما میخوایید داده ورودی کاربر یه فرم خاص باشه. مثلا اجازه ثبت نام فقط و فقط با شماره خط رایتل! که چک کردن اینکه آیا داده ورودی مربوط به تلفن همراه، به فرم درست پیش شماره های رایتل دریافت شده یا خیر به عهده شماست و می تونید به فرض از تابع preg_match استفاده کنید.)
Sanitizing یا پاکسازی: در پاکسازی داده، داده ورودی در برابر انواع کدهای مخرب چک میشه. مثلا کابر کد جاوا اسکریپت تا تگهای html رو وارد نکنه و ... چند تا از توابع این کار:
- htmlentities
- htmlspecialchars
- strip_tags
Escaping: اینجا باید حواسمون باشه که داده کاربر رو چطور میخواییم نمایش بدیم و چطور میخواییم ذخیره کنیم!یعنی چی؟ یعنی ما با استفاده از Validating, Sanitizing مطمئن شدیم که کاربر داده های معتبری وارد کرده و همچنین مثلا تگهایی رو هم که دوست نداشتیم وارد کنه رو از ورودی پاک کردیم. حالا به فرض ممکنه ما اجازه داده باشیم که کاربر از تگهای b, center, video, audio, p, a واسه داده ورودی استفاده کرده باشه. خوب، تا اینجای کار مشکلی نیست و داده درست و طبق چیزی که خواستیم ذخیره شده. حالا واسه نمایش، شاید توی صفحه خاص دوست نداشته باشیم که اون داده کاربر که با تگ b و به صورت بولد ذخیره شده بوده به صورت بولد هم نمایش داده بشه! اینجاست که از escaping استفاده می کنیم. یعنی اجازه نمیدیم کدهای ذخیره شده، کاری رو که قرار بوده بکنند انجام بدند! امیدوارم متوجه شده باشید چی میگم. یا مثلا موقع ثبت داده در پایگاه داده. باید مواظب باشیم که SQL Injection کار دستمون نده! شما اگه این 3 مفهوم رو خوب متوجه بشید به سادگی میتونید سایتتون رو ایمن کنید. البته اینها ایمن سازی سمت کد هستند و ایمن سازی سمت سرور هم یه بحث جداست! راستی حواستون به cross site request forgery هم باشه. اگر ما سایت رو در برابر حملات XSS یا cross site scripting مقاوم کنیم باید حواسمون به cross site request forgery هم باشه که مبادا همه چی رو رعایت کرده باشیم ولی از این نقطه که اکثر افراد هم ازش غافل هستند سایتمون آسیب ببینه.موفق باشید.