PDA

View Full Version : تابع معتبرسازی



mehran_337
یک شنبه 26 خرداد 1387, 15:26 عصر
با سلام
در زمینه امنیت اطلاعات مخصوصا جلوگیری از حملات به سایت مطالب زیادی ارائه شده .
در بخشها و تاپیکهای مختلفی هم اطلاعات خوبی داده شده است. همچنین جناب هوتن انواع حملات را تشریح کردند و راه حلها هم تشریح نمودند .
اما بنده به نتیجه واحدی نرسیدم و همین امر باعث شد هنوز شروع به کار پروژه ام ننموده ام.
دنبال تابعی هستم که همه جوانب ورودی را چک کند . کاری به سیشن و ورود ندارم.
می خوام هر TEXT که دارم و قراره کوئری گرفته بشه چک بشه .
آیا در هر POST باید چک کنم و از تابع مربوطه استفاده کنم ؟؟ یا راهی وجود داره که یکبار در برنامه طوری تعریف بشه که همه ورودی ها ابتدا از فیلتر تابع من بگذره
سوال دوم اینکه دوستان از چه تابعی استفاده می کنن مثلا خیلی ساده دنبال چیزی مثل این عبارتم CHECK_STR(STR) که ورودی را همه جانبه چک کند می گردم.

vahid4134
یک شنبه 26 خرداد 1387, 15:35 عصر
تابعی که مورد نیاز هست mysql_real_escape_string هست که رشته تو از فیتر می کنه
حالا می تونی این کد توی برنامت (بعد از کانکت شدن به دیتابیس ) بزاری تا خیالت راحت بشه.


$_POST = array_map('mysql_real_escape_string', $_POST);
$_SESSION = array_map('mysql_real_escape_string', $_SESSION);
$_COOKIE = array_map('mysql_real_escape_string', $_COOKIE);$_GET رو هم به موارد بالا اضافه کن.
فقط می مونه بحث نوع داده که اونهایی که عدد هستند رو وادار کنی که عدد باشند

mehran_337
یک شنبه 26 خرداد 1387, 17:32 عصر
ممنون آقا وحید!
پس کافیه همین سه خط رو در ابتدای برنامه و بعد از اتصال قرار بدم.
دیگه به صورت عادی بنویسم $a = $_POST[aa] کفایت می کنه؟؟؟
یعنی همه پستهام از فیلتر رد می شن یا باید در هر پستی مجدد این سه خط و وارد کنم.
بعدش در مورد این سه خط لطفا توضیح می دین چه اتفاقی می افته که همه خطرات احتمالی رو پیش گیری می کنه؟

Bahram0110
یک شنبه 26 خرداد 1387, 21:37 عصر
نه عزيز
مشكل xss
كه خيليا بهش توجهي نمي كنن وجود داره
تو نت جستجو كن يه تابع واسش بياب!

البته تابعي كه آقا وحيد فرمودند فكر كنم فقط رو php5 جواب مي ده
و نمي دونم واسه همه نوع حمله! جواب مي ده يا نه
من خودم از تركيب چنتا تابع استفاده مي كنم تا الان هم جواب خودشو خوب پس داده

Bahram0110
یک شنبه 26 خرداد 1387, 21:44 عصر
يادم رفت عرض كنم
شما بدون استثنا در هر بار دريافت اطلاعات از كاربر (GET,‎ POST) بايد ورودي رو فيلتر كنيد
مي تونيد يه تابع همه كاره واسش بنويسيد

اينم عرض كنم كه اكه اين مواردو رعايت كنيد سايتتون تقريبا نفوذ ناپذير مي شه منم قبلا خيلي رو اين مساله وسواس داشتم ولي الان ... :لبخند:

yaqubian
یک شنبه 26 خرداد 1387, 22:52 عصر
دوست عزیز Mehran
سیستم آموزش الکترونیک moodle رو دیدید. واسه validation فرم هاش از تکنیک AJAX استفاده کرده که خیلی خیلی جالبه. می تونید روی وب دنبال تکنیک AJAX واسه Validation بگردید. ضرری نداره. مثلا در DREAmWEAVER CS3 این امکان رو گذاشته منظورم validation داخل یه زبانه به اسم spry
موفق باشید

mehran_337
دوشنبه 27 خرداد 1387, 07:59 صبح
با تشکر از همه دوستان عزیز !


من خودم از تركيب چنتا تابع استفاده مي كنم تا الان هم جواب خودشو خوب پس داده
آقا بهرام شما که همیشه در جواب دادن دست و دلباز هستید و بنده هم به نوبه خود از راهنمائیهای شما استفاده کرده ام . اگر براتون مقدوره همون تابعی که جوابشو پس داده رو می تونید به ماهم بدید ؟:خجالت:
چون این تا قبل از این فقط فرم ورودی داشتم و اتصال اما از وقتی با این فروم و مطالب بچه ها مواجه شدم تمام فرمهامو بستم چون واقعا تازه متوجه شدم که چه نکاتی را باید رعایت کرد و من نادیده گرفتمشون.
حالا هم دنبال تابعی هستم که واقعا جوابشو پس داده باشه .
دست ما و کرم شما ...

Bahram0110
دوشنبه 27 خرداد 1387, 13:53 عصر
سلام

تو اولين فرصت مي فرستم به اي ميلتون

البته من ادعايي واسه كدم ندارم. به نظر خودم و با توجه به تجربه هايي كه باهاش داشتم جلوي خيلي از حملات از جمله xss‏ (كه باز هم به نظر من خيلي خطرناك نيست (براي سايت من)) وايساده!

Bahram0110
دوشنبه 27 خرداد 1387, 14:02 عصر
هنوز يه مشكل مونده
اونم خطرات استفاده از include‏ هست
كه بسيار بسيار بسيار بسيار بسيار بسيار... خطرناكه
و هر روز سايت هاي بسياري از طريق همين ضعف ديفيس مي شن
تو اولين فرصت مشكلات و نحوه ي ايمن ماندن در مقابلشون رو عرض خواهم كرد

vahid4134
سه شنبه 28 خرداد 1387, 11:54 صبح
دوست عزیز برای اینکه اطلاعات بیشتر و بهتری داشته باشید به سایت
http://phpsec.org/
مراجعه کنید. اطلاعات بسیار مفید و ایده های خیلی خوبی داده و نیازتون رو برطرف می کنه