امنیت, تجزیه تحلیل باگها, تست نفوذ

تجزیه و تحلیل باگ Sql Injection

 

Sql Injection چیست ؟

یک روش برای تست نفوذ می باشد که نفوذگر از عدم فیلترینگ مناسب سایت در قسمت فراخوانی اطلاعات از دیتابیس سوءاستفاده کرده و با وارد کردن دستورات خود که اصطلاحاً به آن Exploit گویند، اطلاعات مورد نظر خود را فراخوانی میکند !

 

چگونه بفهمیم یک سایت باگ Sql Injection دارد ؟

ساده ترین روش برای فهمیدن اینکه سایت ما دارای این باگ هست یا خیر استفاده از ‘ در اخر چنین آدرسی در سایت هست :

 

وقتی در سایت چنین ادرسی ?id=number پیدا کردیم احتمال اینکه سایت مورد نظر ما دارای باگ Sql Injection باشد هست، اما این تنها راه فهمیدن این باگ نیس و راهای دیگری هم دارد مانند استفاده از اسکنرها تشخصیص باگ (مثال : Acuntix, Nesus ,…)

 

راه حل رفع این باگ :

بهترین روش جلوگیری از این باگ فیلترگذاری در قسمت فراخوانی اطلاعات از دیتابیس هست..

 

برای این منظور مثلا Php توابعی را در اختیار ما گذاشته :

mysql_real_escape_string

sqlite_escape_string

 

اما استفاده از این توابع کاملا مشکل را حل نمیکند برای مثال در این سایت www.site.com/index.php?id=12 میتوان برای id مشخص کرد که value ورودی ما باید حتما از نوع عددی (int) باشد با تابع intval یا is_numberic !

 

همچنین در قالب نویسی وردپرس توابعی برای رفع این مشکل هستند که اصطلاحا به آن Sanitize میگویند، این عمل یک روش برای بررسی نوع ورودی های وارد شده هست به این ترتیب  نفوذ گر نمیتواند کدهای مخصوص به خود را وارد کند..!

 

sanitize_text_field

 

پست های مرتبط

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *