برای شروع بد نیست بدانیم SQL Injection چیست و یک مثال ساده ی آن را بررسی کنیم.
SQL Injection عبارتست از وارد کردن اطلاعات مخرب در ساختار دستورات SQL که ممکن است باعث آسیب جدی به ساختار و اطلاعات پایگاه داده ی برنامه شود.

رویکرد ما در بررسی SQL Injection بررسی کدهای نوشته شده به زبان php است و به همین خاطر مثال ها و راهکارهای ارائه شده همگی منطبق با زبان php می باشند. با این وجود می توان گفت مثال ها خیلی متکی به زبان نیستند و با اندکی تغییر قابل تعمیم به هر زبان برنامه نویسی دیگری که به نوعی با پایگاه های داده از خانواده ی SQL در ارتباط است می باشد.
SQL Injection معمولا از طریق دستکاری ورودی فرم های HTML پیاده می شود ولی راه های دیگری نیز برای ورود دستورات مخرب SQL به برنامه های کاربردی تحت وب وجود دارد. به عنوان شروع مثال یک فرم ورود به بخش مدیریت یک وب سایت نوشته شده به زبان php را بررسی می کنیم.
...
$username = $_POST['username'];
$password = $_POST['password'];
$sql = "SELECT * FROM users WHERE username='$username'
AND password = '$password'";
...
کد بالا یک مثال ساده با امنیت بسیار ضعیف است و ممکن است به نظر غیر ممکن برسد که کسی از چنین کدی استفاده کند. با این وجود یک جستجوی ساده در گوگل انبوهی از سایت ها و برنامه های کاربردی تحت وب را نشان می دهد که همگی به همین سادگی در معرض خطر جدی حملات SQL Injection قرار دارند. (بیشتر…)
خیلی ها دوست دارند برای خودشان یک وب سایت شخصی داشته باشند. مثلا نویسنده یا شاعری که قصد دارد قسمتی از آثار خود را به صورت بر خط منتشر کند و یا طراح و گرافیستی که می خواهد از طریق وب سایت شخصی خود نمونه کارهای خود را برای جلب مشتری و یا استفاده ی دیگران روی سایت خود قرار دهد. اما قضیه به این جا ختم نمی شود. خیلی ها حرف های گفتنی زیادی در زمینه ی کار و تخصص و یا علاقه مندی های خود دارند و دوست دارند آن ها را منتشر کنند.
وجه اشتراک بین همه ی این گروه ها این است که اصولا فعالیت اینترنتی آن ها بنا نیست صرفه ی اقتصادی داشته باشد و عمدتا به همین خاطر اکثر آن ها ترجیح می دهند برای مقاصد خود از سرویس های رایگان و بی دردسر وبلاگ استفاده کنند. به این ترتیب هزینه ای برای انتشار مطالب خود نمی پردازند و به علاوه نیازی به وارد شدن به مسائل فنی اینترنت هم ندارند. اما سرویس های وبلاگ هم مشکلات و محدودیت های خاص خود را دارند که بعضا دارندگان و مدیران آن ها را آزار می دهد. در زیر به چند مورد از این موانع اشاره می شود.
- اکثر سیستم های وبلاگ اجازه ی استفاده از نام دامنه ی اختصاصی (www.yourname.com) به کاربران خود نمی دهند. در نگاه اول این که کاربر مجبور نیست برای خریدن نام دامنه پولی بپردازد ممکن است یک نکته ی مثبت تلقی شود ولی با اندکی تامل مشخص خواهد شد که:
- – آدرس وبلاگ طولانی خواهد شد و ممکن است به شکل شفافی بیانگر زمینه ی فعالیت وبلاگ نباشد. به این ترتیب امکان ارائه ی این آدرس به عنوان یک مکمل تبیلغاتی ممکن نخواهد بود به بیان دیگر خود این آدرس طولانی نیاز به معرفی دارد تا مخاطبان از محتوای آن آگاه شوند. در مقابل انتخاب یک نامم دامنه ی مناسب خود به تنهایی می تواند وسیله ای مناسب برای شناساندن یک وب سایت به کاربران اینترنت باشد.
- وقتی وبلاگی از نام دامنه ی سرویس دهنده ی وبلاگ به خصوصی استفاده می کند به شکل تمام و کمال از امکانات موتورهای جستجو استفاده نمی کند. در واقع صفحات وبلاگ کاربر به عنوان زیر صفحات سایت سرویس دهنده در موتورهای جستجو ثبت می شوند. پس مطالب و محتوای منتشر شده روی وبلاگ ها باعث بهبود هر چه بیشتر سایت سرویس دهنده می شود و در بسیاری موارد تاثیری در وضعیت خود وبلاگ در فهرست موتورهای جستجو ندارد.
- اکثر قریب به اتفاق سیستم های وبلاگدهی تنها از متن وبلاگ ها پشتیبانی می کنند و سایر محتوای مورد استفاده در وبلاگ ها مرجع خارجی دارند. این امر نخست باعث کند شدن بارگذاری وبلاگ می شود که به نو به خود بازدیدکنندگان را خسته و دلزده می کند. به علاوه در مواردی ممکن است بعد از مدتی فایل اصلی پاک شده و یا جا به جا شود در حالیکه لینک آن هنوز لینک آن ها روی وبلاگ وجود دارد و تبعات زیر را به همراه دارد.
- در مورد عکس ها باعث می شود عکس ها باز نشده و وبلاگ ظاهری نازیبا به خود بگیرد.
- لینک های قدیمی و از کار افتاده باعث رنجش بازدیدکنندگان می شود.
- از همه بدتر این که وجود چنین لینک هایی که اصطلاحا به آن ها Broken Link گفته می شود برای اعتبار وبلاگ ها نزد موتورهای جستجو بسیار گران تمام خواهد شد.
(بیشتر…)