برگزیده های پرشین تولز

برای سایتم یک سیستم عضوگیری ساختم ولی

hooya

کاربر تازه وارد
تاریخ عضویت
1 اکتبر 2003
نوشته‌ها
66
لایک‌ها
0
سلام دوستان
من برای سایتم یک سیستم عضوگیری ساختم ولی مشکلی که داره اینه یک فرد خرابکاری توانسته علاوه بر ثبت نام , تمام اطلاعات تمام افرادی رو که قبلا ثبت نام کردند رو عوض کنه !!! . از نام و نام خانوادگی گرفته تا ایمیل:wacko: :wacko: :wacko: :wacko: :wacko:

لطفا بگید من چکار کنم تا جلوی اینکار گرفته بشه؟:blink:
از اونجا که من تشنه یادگیری هستم خجالت رو می گذارم کنار و نام سایتم رو می گم
آدرس :
www.yassg.com
منتظر جوابهای شما هستم دوستان:happy: :happy:
 

PersianPC

کاربر فعال صفحات داینامیک
کاربر فعال
تاریخ عضویت
9 فوریه 2005
نوشته‌ها
583
لایک‌ها
1
سن
34
محل سکونت
Tehran
لطفا کد های مروبط به اون بخش رو بزارید تا مشکل رو بتونیم تشخیص بدیم.
 

hooya

کاربر تازه وارد
تاریخ عضویت
1 اکتبر 2003
نوشته‌ها
66
لایک‌ها
0
سلام
شما دوباره نمی تونی log in کنی چون همین الان یک نفر دیگه اطلاعات تموم اعضاء رو عوض کرده :wacko: :wacko:
من تا چند لحظه دیگه تموم کد رو می ذارم اینجا ولی تا اون موقع شماها لطف کنید بگید چطوری خرابکارها می تونند از طریق این جور فرمها تو دیتابیس نفوذ کنند ؟
 

shankimout

Registered User
تاریخ عضویت
17 می 2004
نوشته‌ها
1,524
لایک‌ها
3
محل سکونت
ساری . . . . . . . . . . . . . . Permanently Bann
اگر تو input ها ( فرم ها ) از strip_tags و htmlspchars استفاده نکنی در صورتی که اطلاعات ورودی را echo کنی کاربر میتونه از تگ های html و php استفاده کنه . شما قبل از اینکه برنامتو واسه دانلود بزاری به چند نفر نشون می دادی تا باگ هاشو بگیرن
 

Shahed

کاربر قدیمی پرشین تولز
تاریخ عضویت
30 ژوئن 2003
نوشته‌ها
7,270
لایک‌ها
34
محل سکونت
mt.cgi
به نقل از shankimout :
اگر تو input ها ( فرم ها ) از strip_tags و htmlspchars استفاده نکنی در صورتی که اطلاعات ورودی را echo کنی کاربر میتونه از تگ های html و php استفاده کنه . شما قبل از اینکه برنامتو واسه دانلود بزاری به چند نفر نشون می دادی تا باگ هاشو بگیرن
یکم بیشتر توضیح میدی اینو؟
نمونه ای چیزی دم دستت هس؟
 

hooya

کاربر تازه وارد
تاریخ عضویت
1 اکتبر 2003
نوشته‌ها
66
لایک‌ها
0
سلام دوستان
چیزهایی که فرمودید تقریبا رعایت کرده بودم. کد زیر رو لطفا ملاحظه کنید:
کد:
if(isset($_POST['user_reg']) && $_POST['user_reg']=='reg'){

    if($_SESSION['CAPTCHAString'] != $_POST['usr_captcha']){
    $mes= "<div class=err>شما کلمه نوشته شده درون عکس را نادرست وارد کرده اید.</div>";

}
else{

    $chk_fields = 1;
    if(strlen(trim($_POST['usr_name']))> 0){
        $usr_name = htmlspecialchars(trim($_POST['usr_name']));
        $chk_fields *= 1;
    }
    else
        $chk_fields *= 0;

    if(strlen(trim($_POST['usr_ibin']))> 0){
        $usr_ibin = htmlspecialchars(trim($_POST['usr_ibin']));
        $chk_fields *= 1;
    }
    else
        $chk_fields *= 0;

    if(strlen(trim($_POST['usr_fname']))> 0){
        $usr_fname = htmlspecialchars(trim($_POST['usr_fname']));
        $chk_fields *= 1;
    }
    else
        $chk_fields *= 0;

    if(strlen(trim($_POST['usr_lname']))> 0){
        $usr_lname = htmlspecialchars(trim($_POST['usr_lname']));
        $chk_fields *= 1;
    }
    else
        $chk_fields *= 0;

    if(strlen(trim($_POST['usr_email']))> 0){
        $usr_email = htmlspecialchars(trim($_POST['usr_email']));
        $chk_fields *= 1;
    }
    else
        $chk_fields *= 0;

    if($chk_fields==0){
        $mes= "<div class=err>شما باید تمامی فیلدها را پر کنید .<p>بازگشت خودکار در 6 ثانیه</div>";
    }
    else{

        $site_news = isset($_POST['site_news']) ? 'yes' : 'no';

        if(!IsValidEmail($usr_email)){
           //-- گزارش خطا در صورت معتبر نبودن Email--
       }
       else{
          // بررسی تکراری نبودن کدکاربری و Email کاربر 


          $sql_chk_mail = new Cdb($host,$dbname,$username,$password);
          $sql_chk_mail -> query("SELECT email FROM membership WHERE email='$usr_email'");


          $sql_chk_username = new Cdb($host,$dbname,$username,$password);
          $sql_chk_username -> query("SELECT username FROM membership WHERE username='$usr_name'");


          if($chk_mail != 0 || $chk_username !=0){
                    // اگر کدکاربری و Email کاربر تکراری بود . 
          }
          else{
                    $len_pass = 7;
                    $random_password = makeRandomPassword($len_pass);
                    $db_password = md5($random_password); 

                    $sql_insert = new Cdb($host,$dbname,$username,$password);
                    $insert = $sql_insert -> query("INSERT INTO membership VALUES(NUll ,......., '$usr_name', '$db_password', ....., '$usr_email', ......)");
                    if($insert){
                           اگر اطلاعات وارد دیتابیس شد یک  email به کاربر بفرست . 
                    }
          }
       }
    }
  }
}
 

iransbs

کاربر تازه وارد
تاریخ عضویت
3 می 2005
نوشته‌ها
471
لایک‌ها
0
محل سکونت
ایران، مازندارن، ساری
ببین من دارم دانلود می کنم
راستی من بجای تو بودم به اون خراب کار می گفتم دوست عزیز چون اگر اون نبود و اگر یه وقتی این برنامه رو میفروختی اون وقت بود که برات بد می شد نه الان که هیچ کسی نفهمیده
فعلا هم سایت رو ببند نزار کسی دانلودش کنه
 

iransbs

کاربر تازه وارد
تاریخ عضویت
3 می 2005
نوشته‌ها
471
لایک‌ها
0
محل سکونت
ایران، مازندارن، ساری
ای بابا باز اشتباه شد


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

hooya

کاربر تازه وارد
تاریخ عضویت
1 اکتبر 2003
نوشته‌ها
66
لایک‌ها
0
سلام
شما کد ساده تر اگه دارید بذارید تا ملت استفاده کنند.
متشکرم.
در ضمن من دارم مرتب برنامه رو ارتقاء می دم تا مشکلی نداشته باشه. اگه کسی دانلود کرد و ایراد داشت حتما مطرح کنه
باز هم متشکرم از همه دوستان
 

hooya

کاربر تازه وارد
تاریخ عضویت
1 اکتبر 2003
نوشته‌ها
66
لایک‌ها
0
قربون جیگر بشی! مشکل برطرف شد. هر که هک بلده بیاد امتحان کنه.
 

shankimout

Registered User
تاریخ عضویت
17 می 2004
نوشته‌ها
1,524
لایک‌ها
3
محل سکونت
ساری . . . . . . . . . . . . . . Permanently Bann
به نقل از iransbs :
نه عزیز ربطی به اون نداره
مگه جدیدا کد های پی اچ پی توی input ذخیره می شه عزیز اون استرینگه

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


عزیز دل برادر . شما در محلتون به محتویات یک فرم چی میگید ( GET , POST ) ??

یکم رفتیم ساده صحبت کنیم . گفتیم اینپپوت ....

ببین اگر توی یک محتویات فرم تگ های html یا php باشه میشه همه اونا رو با strip_tags از بین برد و اگر بخاهید بصورت کاراکتر های ( اسمشو یادم رفت &lt gt &) در بیاد از htmlspchars استفاده کن
 
بالا