/
  • ارسال فرم بدون اعتبار سنجی

  • ارسال پاسخ   امتیاز موضوع:
    • 0 رأی - میانگین امیتازات: 0
    • 1
    • 2
    • 3
    • 4
    • 5

    حالت موضوعی | حالت خطی ارسال فرم بدون اعتبار سنجی
    نویسنده پیام
    ImanAzadi آفلاین
    عضو مهم
    ****

    ارسال‌ها: 250
    تاریخ عضویت: ۱۳۹۲ اسفند ۲
    اعتبار: 0
    تشکرها : 37
    ( 12 تشکر در 10 ارسال )
    ارسال: #1
    ارسال فرم بدون اعتبار سنجی
    سلام

    دوستان عزیز یک راهنمایی لطفا


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

    [تصویر:  5fm1_er4.png]

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

    کد:
    <!doctype html>
    <html>
    <head>
    <meta charset="utf-8">
    <title>Untitled Document</title>
    </head>
    <body>


    <form action="ser.php"  method="post">


    select item :
    <select name="tbl_a">
    <option value="2">txt2</option>
    <option value="4">txt4</option>
    <option value="3">txt3</option>
    </select>


    <br><br>


    select item :
    <select name="tbl_b" >
    <option value="4">str4</option>
    <option value="3">str3</option>
    <option value="1">str4</option>
    </select>
    <br><br>


    enter count :
    <input type="text" name="count" value="">


    <br><br>
    <input type="submit" value="send" name="" >




    </form>
    </body>
    </html>

    [تصویر:  zo4k_err.jpg]

    کد سمت سرور به شرح زیر است

    کد:
    <?php


    $aa=$_POST['tbl_a'];
    $bb=$_POST['tbl_b'];
    $cc=$_POST['count'];


    if (isset($aa) && isset($bb) && isset($cc))
    {
        
        $pdo=new PDO('mysql:host=localhost;dbname=azm;charset=utf8','root','') ;


        $sql=('insert into tbl_c (id_tblA,id_tblB,count) values(:a,:b,:c) ');
        
        $stmt=$pdo->prepare($sql);
        
        $stmt->execute(array(
                                    ':a'=>intval($aa),
                                    ':b'=>intval($bb),
                                    ':c'=>intval($cc)
                            ));
        
        echo 'the number effect : '.$stmt->rowCount().'<br>';
        
        
    }
    ?>

    1- حالا سوال اگر ما در سمت سرور مقادیر ارسالی این فرم بدون اعتبارسنجی داخل دیتابیس Insert کنیم چه مشکلی پیش میاد ؟؟؟

    2- اگر یک کاربر شیطون بیاد و مقادیر value کمبوباکس ها رو در مرورگر(سمت کاربر) تغییر بده و مقادیری که اصلا یا در جداول وجود نداره و یا اینکه بجای عدد کاراکتر جایگزین کنه و ارسال کنه چه مشکلی پیش میاد ؟؟
    (آخرین ویرایش در این ارسال: ۱۳۹۵ تير ۲۰ ۰۸:۴۸ صبح، توسط ImanAzadi.)
    ۱۳۹۵ تير ۲۰ ۰۸:۴۵ صبح
    یافتن ارسال‌ها پاسخ با نقل قول
     تشکر شده توسط :
    kiarash_kcm آفلاین
    عضو
    ***

    ارسال‌ها: 159
    تاریخ عضویت: ۱۳۹۲ بهمن ۷
    اعتبار: 5
    تشکرها : 12
    ( 48 تشکر در 41 ارسال )
    ارسال: #2
    RE: ارسال فرم بدون اعتبار سنجی
    حالا چرا میخوای اعتبار سنجی نکنیش ؟؟
    __________________________________________________________________________
    [تصویر:  iranphp.jpg]
    ۱۳۹۵ تير ۲۰ ۰۹:۱۵ صبح
    یافتن ارسال‌ها WWW پاسخ با نقل قول
     تشکر شده توسط :
    ImanAzadi آفلاین
    عضو مهم
    ****

    ارسال‌ها: 250
    تاریخ عضویت: ۱۳۹۲ اسفند ۲
    اعتبار: 0
    تشکرها : 37
    ( 12 تشکر در 10 ارسال )
    ارسال: #3
    RE: ارسال فرم بدون اعتبار سنجی
    این مثال بود ، و برنامه اصلی یک وب اپلیکیشن هست و بصورت mvc
    در برنامه اصلی در سمت کاربر ، اطلاعات ورودی مثل بالا از کاربر گرفته میشه ولی ارسال نمیشه ، بلکه بصورت یک رکورد در میاد و در تگ td مخفی در صفحه اضافه میشه و در آخر بعد از اینکه کل data entry توسط کاربر انجام شد با کلیک روی Send کلیه رکوردها توسط جاوااسکریپت از تگ td خونده میشه و در آخر به json تبدیل و بعد ارسال میشه

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

    ولی به هر حال هر سری یه فکری داره شاید چیزی باشه که من بهش برخورد نکرده باشم و باعث بروز مشکلات بعدی بشه واسه همین مطرح کردم
    ۱۳۹۵ تير ۲۰ ۰۹:۳۳ صبح
    یافتن ارسال‌ها پاسخ با نقل قول
     تشکر شده توسط :
    « قدیمی تر | تازه‌ تر »

    ارسال پاسخ
    پرش به انجمن:


    کاربرانِ درحال بازدید از این موضوع: 1 مهمان
    IranPHP.org | تماس با ما | بازگشت به بالا | بازگشت به محتوا | بایگانی | پیوند سایتی RSS