نمایش نتایج 1 تا 6 از 6

نام تاپیک: ساخت صفحه لاگین

  1. #1

    Post ساخت صفحه لاگین

    سلام من کد زیر رو در خصوص ساخت صفحه ی لاگین ایجاد کردم دوستان لطف کنن از اونجایی که من تازه کارم ، اشکالاتش و نواقص شو بفرمایند .
    در ضمن اگه باید از کوکی یا سیشن استفاده کنم . یه آموزش هم در این خصوص لینک بدن .
    واقعاً ممنون

    <?php
    include ("config.php");


    $username = $_POST["tfuser"];
    $userpass = $_POST["tfpass"];

    if ($username == '') {
    echo " Enter User name ";
    }
    if ($userpass == ''){
    echo "<br> Enter PASSWORD ";
    }



    $res = mysql_query (" SELECT * FROM user where id='$username' ");

    while ($record = mysql_fetch_assoc ($res))
    {
    $user = $record["id"];
    $pass = $record["pass"];
    $name = $record["name"];
    }

    if ($user != $username){
    echo "<br> Enter Corect username" ;

    }
    if ($pass != $userpass){
    echo "<br> Enter Corect Password";
    }


    ?>

  2. #2
    کاربر دائمی آواتار binyaft
    تاریخ عضویت
    خرداد 1388
    محل زندگی
    سیم مسی
    پست
    1,761

    نقل قول: ساخت صفحه لاگین

    1 : مقادیر ارسالی توسط کاربر رو خام وارد دیتابیس نکن ، اول باید فیلترشون کنی ، mysql_escape_string , و باید یه دستور هم بزاری که مثلا اگر نام کاربر از 30 کاراکتر بیشتر شد جواب نده

    2 : با ی دونه کوئری مقادیر رو چک کن راحت تر و بهتره! ، برای کد بالا نام کاربری و رمز عبور رو با هم وارد دیتابیس کن ;)

    3 : بهتره که نمایش ندی چی درسته چی غلط! ، اگه داده ها اشتباه بود بنویس " نام کاربری یا رمز عبور اشتباه است "

  3. #3
    کاربر دائمی آواتار sargardoon
    تاریخ عضویت
    بهمن 1389
    محل زندگی
    دبی
    سن
    42
    پست
    172

    نقل قول: ساخت صفحه لاگین

    دوست عزیز باید اول اینکه زمانی این کدهای اجرا بشه که دکمه ای کلیک میشه این کدهای رو میتونید به روش زیر بنویسید.

    <?php
    include ("config.php");
    if ($_POST['submit']){
    $username = $_POST["tfuser"];
    $userpass = $_POST["tfpass"];

    if (!empty ($username) && !empty ($userpass) ){
    $res = mysql_query (" SELECT * FROM user where id='$username' ");
    while ($record = mysql_fetch_assoc ($res))
    {
    $user = $record["id"];
    $pass = $record["pass"];
    $name = $record["name"];
    }
    if ($user != $username){
    echo " Enter Corect username" ;

    }

    if ($pass != $userpass){
    echo " Enter Corect Password";
    }
    } else {
    echo "please enter username and password";
    }
    }
    ?>



    موفق باشید

  4. #4

    نقل قول: ساخت صفحه لاگین

    نقل قول نوشته شده توسط binyaft مشاهده تاپیک
    1 : مقادیر ارسالی توسط کاربر رو خام وارد دیتابیس نکن ، اول باید فیلترشون کنی ، mysql_escape_string , و باید یه دستور هم بزاری که مثلا اگر نام کاربر از 30 کاراکتر بیشتر شد جواب نده
    یه مثال ازش میارین . کاربردش چیه ؟

  5. #5

    نقل قول: ساخت صفحه لاگین

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

    اگر کاربر ورودی نا معتبری بده میتونه کوئری شما را تغییر بده و سوء استفاده کنه.

    نمونه :
    الان کوئری شما این هست:
    " SELECT * FROM user where id='$username' "


    اگر کاربر نام کاربری را مثلا amir وارد کنه کوئری شما به شکل زیر میشه:

    " SELECT * FROM user where id='amir' "


    حالا اگر نام کاربری را به شکل زیر وارد کنه ببینید کوئری شما چه شکلی میشه:

    نام کاربری :
    amir' or 1=1 --


    کوئری:
    " SELECT * FROM user where id='amir' or 1=1 --' "


    با این کار تمامی رکوردها انتخاب میشن و دیگه کاری به نام کاربری نداره.
    حالا کافیه یوزر را به شکل بالا وارد کنه و پسوورد را مثلا 123456 ، اگر یک کاربری بود که پسووردش را ساده گذاشته بود به راحتی انتخاب میشه و طرف با نام کاربری اون وارد سایت شما میشه.

    این یک نمونه ساده بود. میشه دستورات بیشتری هم به کوئری شما تزریق کرد.

    حالا اون تابعی که دوستمون معرفی کردند میاد و کاراکتر هایی مثل ' یا " را از متغیر یوزر نیم تغییر میده تا اگر کاربری رشته مشکل داری برای تزریق به دیتا بیس شما وارد کرد نادیده گرفته بشه و مشکلی برای کوئری شما پیش نیاد.

    امیدوارم تونسته باشم به خوبی مفهومش را بیان کنم.
    آخرین ویرایش به وسیله amir001 : یک شنبه 15 اسفند 1389 در 18:11 عصر

  6. #6
    کاربر دائمی آواتار binyaft
    تاریخ عضویت
    خرداد 1388
    محل زندگی
    سیم مسی
    پست
    1,761

    نقل قول: ساخت صفحه لاگین

    $username=mysql_escape_string($username);


    و

    if(strlen($_POST['user'])>30) echo 'bishtar az 30 ta';

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •