انجمن ایران پی اچ پی
SQL injection - نسخه قابل چاپ

+- انجمن ایران پی اچ پی
+-- انجمن: پی اچ پی/PHP (https://forum.iranphp.org/Forum-%D9%BE%DB%8C-%D8%A7%DA%86-%D9%BE%DB%8C-PHP)
+--- انجمن: امنیت (https://forum.iranphp.org/Forum-%D8%A7%D9%85%D9%86%DB%8C%D8%AA)
--> +--- موضوع: SQL injection

صفحات 1 2


SQL injection - scooter - ۱۳۸۷ دى ۰۷

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


RE: sql injection - Na3r - ۱۳۸۷ دى ۰۷

تو این لینک کامل در مورد حملات sql injection توضیح داده

http://www.unixwiz.net/techtips/sql-injection.html

راه جلوگیریشم استفاده از همون توابعی هست که میگی
http://ir.php.net/manual/en/function.mysql-escape-string.php

فقط این دستور یه باگ داره که باید چک کنی ببینی که magic_quotes_gpc مقدارش on هست یا نه که با استفاده از این تابع اون مشکل هم حل میشه

کد پی‌اچ‌پی:
<?php
function stripMagicQuotes($var){
    if(
get_magic_quotes_gpc()){
        return 
stripslashes($var);
    }else{
        return 
$var;
    }
}
?>



RE: sql injection - amir.s - ۱۳۸۷ دى ۰۸

سلام

این توابع تست شدست . اما اگه دوست دارید که سایت رو از نظر امنیتی چک کنید، می تونید از اسکنر های سایت استفاده کنید.

نرم افزارهای زیادی دراین مورد وجود داره که باید جستجو کنی . یکی رو تهیه کن و برنامه رو با اون از لحاظ امنیت به ویژه SQL Injection بررسی کن ! Blush

اما راه حل دیگه ای هم وجود داره . من کلیات رو میگم و شما به جزئیات بپرداز .
شما در زمنیه امنیت و راه های نفوذ تحقیق کن . در برابر تمام این روش ها می تونید به راه های مبارزه با اون دست پیدا کنید . اصولا با قواعد خاصی انجام میشه . مثلا همین SQL Injection رو نگاه کن راه جلوگیری ازش با " \ " انجام میشه . خوب به سادگی میتونی تابع رو تست کنی و یا حتی خود سایت رو ....


RE: sql injection - scooter - ۱۳۸۷ بهمن ۲۷

الان من اینو استفاده کردم اما وقتی مثلا می نویسم d'd این ارور رو میده
نقل قول: no qusYou have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'f','f','5457','s','1','

f
')' at line 1



RE: sql injection - Na3r - ۱۳۸۷ بهمن ۲۷

كوئري كه نوشتي رو بزار بببينيم


RE: SQL injection - scooter - ۱۳۸۷ بهمن ۲۸

کد پی‌اچ‌پی:
$sql="INSERT INTO up(filename,filework,fileadd,address,fileos,filecomm) values ('$uname','$uwork','$newname','$ulname','$uos','$uall')" ;
$result=mysql_query($sql) or die ("no qus".mysql_error()); 



RE: SQL injection - molana - ۱۳۸۷ بهمن ۲۸

خوب ننوشتی که کجا این آپدیت انجام بشه
کد پی‌اچ‌پی:
    $sql="INSERT INTO up(
                        filename,
                        filework,
                        fileadd,
                        address,
                        fileos,
                        filecomm
                ) values (
                        '
$uname',
                        '
$uwork',
                        '
$newname',
                        '
$ulname',
                        '
$uos',
                        '
$uall') 
                WHERE `id` =1 " 




RE: SQL injection - scooter - ۱۳۸۷ بهمن ۲۸

ببخشید من متوجه این where نمیشم.یعنی اگه id=1 نبود تکلیف چیه؟


RE: SQL injection - molana - ۱۳۸۷ بهمن ۲۸

نه ببین
شما آی دی رو برابر با آی دی اون ردیفی که می خوای آپدیتش کنی قرار می دی


RE: SQL injection - scooter - ۱۳۸۷ بهمن ۲۹

بازم من متوجه نشدم.من از کجا بدونم الان id اون ردیف چنده؟