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

نام تاپیک: ارسال اطلاعات به کوئری بدون استفاده از تگ input

  1. #1

    Question ارسال اطلاعات به کوئری بدون استفاده از تگ input

    بعد از سالیان سال درود

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

    چطور ممکنه بدون هیچ تگ input و بدون hidden field بشه این مقدار رو به کوئری post کرد؟

    سپاس ویژه

  2. #2

    نقل قول: ارسال اطلاعات به کوئری بدون استفاده از تگ input

    سلام

    هر دیتایی که از سمت کاربر ارسال بشه قابل تغییر است. مگر اینکه
    1. دیتا را با یک اندیس رندم در سشن ذخیره کنید و فقط اندیس آن را در فیلد مخفی قرار دهید.
    2. یا اینکه دیتای داخل فیلد هیدن را امضا کنید مثلا از jwt استفاده کنید. ( در این روش دیتا برای کاربر قابل نمایش است اما به انتهای دیتا یک عبارت به عنوان امضا اضافه شده است که در سمت سرور قابل بررسی است در صورت تغییر داده این امضا اعتبار خود را از دست می دهد)
    3. دیتا را با یک الگوریتم معین کد کنید و در فیلد هیدن قرار دهید و در سمت سرور دیکد کنید.

  3. #3
    کاربر دائمی آواتار cpuram
    تاریخ عضویت
    اسفند 1389
    محل زندگی
    آمل
    پست
    671

    نقل قول: ارسال اطلاعات به کوئری بدون استفاده از تگ input

    نقل قول نوشته شده توسط MohammadGh2011 مشاهده تاپیک
    بعد از سالیان سال درود

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

    چطور ممکنه بدون هیچ تگ input و بدون hidden field بشه این مقدار رو به کوئری post کرد؟

    سپاس ویژه
    برای چه موردی دارید استفاده میکنید؟

  4. #4

    نقل قول: ارسال اطلاعات به کوئری بدون استفاده از تگ input

    نقل قول نوشته شده توسط ali_sed مشاهده تاپیک
    سلام

    هر دیتایی که از سمت کاربر ارسال بشه قابل تغییر است. مگر اینکه
    1. دیتا را با یک اندیس رندم در سشن ذخیره کنید و فقط اندیس آن را در فیلد مخفی قرار دهید.
    2. یا اینکه دیتای داخل فیلد هیدن را امضا کنید مثلا از jwt استفاده کنید. ( در این روش دیتا برای کاربر قابل نمایش است اما به انتهای دیتا یک عبارت به عنوان امضا اضافه شده است که در سمت سرور قابل بررسی است در صورت تغییر داده این امضا اعتبار خود را از دست می دهد)
    3. دیتا را با یک الگوریتم معین کد کنید و در فیلد هیدن قرار دهید و در سمت سرور دیکد کنید.
    درود بر شما
    من میخوام کلا فیدن فیلد نباشه دیگه ، وقتی کد هم بکنم باز میتونه هیدن فیلد رو در بیاره و مقدار دیگه ای رو بفرسته به سمت سرور
    من جای هیدن فیلد متغیر گذاشتم ولی فراخوانی نمیشد. session گذاشتم نشد
    لطفا با کد توضیح بدید ببینم
    ممنون

  5. #5

    نقل قول: ارسال اطلاعات به کوئری بدون استفاده از تگ input

    نقل قول نوشته شده توسط cpuram مشاهده تاپیک
    برای چه موردی دارید استفاده میکنید؟
    درود بر شما
    بنده تو صفحه اطلاعات جدول رو از تیبل میخونم بعد یک سری تغییرات داخلش انجام میدم و سپس با فشردن باتن اون اطلاعات تغییر کرده insert میشه در یک تیبل دیگه

  6. #6

    نقل قول: ارسال اطلاعات به کوئری بدون استفاده از تگ input

    خب ... ؟!!

  7. #7

    نقل قول: ارسال اطلاعات به کوئری بدون استفاده از تگ input

    input hidden استفادش چیه ؟
    اگه می خواید تغییری روی بخشی از اطلاعات انجام نشه اصلا چرا همه ی داده هایی که کاربر می فرسته رو داخل جدول جدیدتون درج می کنید می تونید از همون جدولی که الان دارید می خونید اطلاعاتی که باید تغییر نکنه رو بخونید و درج کنید

  8. #8

    نقل قول: ارسال اطلاعات به کوئری بدون استفاده از تگ input

    نقل قول نوشته شده توسط peymang مشاهده تاپیک
    input hidden استفادش چیه ؟
    اگه می خواید تغییری روی بخشی از اطلاعات انجام نشه اصلا چرا همه ی داده هایی که کاربر می فرسته رو داخل جدول جدیدتون درج می کنید می تونید از همون جدولی که الان دارید می خونید اطلاعاتی که باید تغییر نکنه رو بخونید و درج کنید
     if (isset($_POST['btn_add'])) {

    $query_insert = "INSERT INTO All_Orders(id_Customer,Flname_Customer, )
    VALUES (N'$_POST[id_Hidden]', N'$_POST[flname_Hidden]' )";

    mysqli_query($db, $query_insert
    }




    کد HTML:
     <form method="post" >
    <input type="hidden" name="id_Hidden">
    <input type="hidden" name="flname_Hidden">
     <button type="submit" class="btn btn-danger "  name="btn_add"    </button>
    </form
    درود بر شما
    ببین عزیز مثلا کد بالا ، من دارم یک سری تغییرات رو فیلدها توسط فیلدهای دیگه انجام میدم و مقدارش ریخته میشه تو هیدن فیلد و سپس POST میشه بالا که Insert شه. حالا نمیخوام از هیدن فیلد استفاده کنم که از طریق inspect قابل تغییر باشه
    راه حل چیه؟

    لطفا نمونه کد برام بیار ممنون

  9. #9

    نقل قول: ارسال اطلاعات به کوئری بدون استفاده از تگ input

    متوجه منظورم شدید؟

  10. #10
    کاربر دائمی آواتار sara_aryanfar
    تاریخ عضویت
    فروردین 1390
    محل زندگی
    جایی در ایران
    پست
    1,507

    نقل قول: ارسال اطلاعات به کوئری بدون استفاده از تگ input

    خب دوست گرامی یه المنت با خاصیت هیدن زمانی کاربرد داره که ما دیتایی رو در حد یک کلید می خواهیم در اون بزاریم تا موقت برای ما نگهش داره نه اینکه دیتا های حساس ما رو نگه داری کنه برای نگهداری موارد حساس بهتره از سشن استفاده کنید به نظرم نباید فرد بتونه با تغییر در این فیلد به ما آسیب بزنه از طرف دیگه شما باید و باید هر دیتایی که از سمت کاربر میاد رو چک کنید مهم نیست اونو رمز کرده باشید یا هر کار دیگه باید و باید اون رو یک بار از نظر وجود موارد مشکل دار چک کنید

  11. #11
    کاربر دائمی آواتار plague
    تاریخ عضویت
    آبان 1388
    محل زندگی
    اهواز
    پست
    2,360

    نقل قول: ارسال اطلاعات به کوئری بدون استفاده از تگ input

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

  12. #12

    نقل قول: ارسال اطلاعات به کوئری بدون استفاده از تگ input

    درود بر شما

    @plague
    بزرگواران من خودم میدونم که نباید بریزم تو هیدن که اومدم اینجا
    شما فقط لطف کنید بمن بفرمائید جای هیدن فیلد تو کدی که گذاشتم چی باید بزارم
    برنامه ای رو فرض کن مثل ماشین حساب که طرف اعداد با علائم محاسباتی رو انتخاب میکنه و در نهایت حاصل بدست اومده باید در دیتابیس ذخیره بشه این حاصل بدست اومده رو چطور میشه در همون صفحه که محاسبات انجام میشه پاس داد به کد sql


    @sara_aryanfar
    عزیز سشن زدم نشد و نمیشناسه لطفا یک مثال بزنید رو کدی که قرار دادم و سشن رو پاس بدید به کد insert
    همچنین متغیر هم تعریف کردن در قسمت هیدن فیلد اما جواب نمیده

  13. #13

    نقل قول: ارسال اطلاعات به کوئری بدون استفاده از تگ input

    الان بازم مشکلی هست تو طرح سوال؟

  14. #14

    نقل قول: ارسال اطلاعات به کوئری بدون استفاده از تگ input

    فرض می کنیم وقتی کاربر دکمه سابمیت را کلیک می کند محاسبات انجام میشود و محتوای فرم با متد آجاکس ارسال می شود. می توانید از روش زیر استفاده کنید:
    توجه: کدها تست نشده اند.

    کد HTML:
    <form method="post" action="/test.php" >
        <input type="text" name="other-field1">
        <input type="text" name="other-field2">
        <input type="text" name="other-field3">
        <input type="submit" class="btn btn-danger "  name="btn_add" value="submit" />
    </form>
    
    <script>
    $("form").submit(function( event ) {
        event.preventDefault();
        var url = form.attr("action");
        var formData = $(form).serializeArray();
        
        //calculate hidden values
        hiddenValue1 = calculateHiddenValue1();
        hiddenValue2 = calculateHiddenValue2();
        
        formData.push({hiddenValue1: hiddenValue2, hiddenValue2: hiddenValue2});
        
        $.post(url, formData)
        .done(function (response) {
            alert(response);
        })
        .fail(function() {
            alert( "error" );
        });
    });
    </script>
    به شما توصیه می کنم محاسبات را سمت سرور انجام دهید تا مطمئن شوید دیتا دستکاری نشده است. شما میتوانید فیلد هیدن را حذف کنید و به روش دیگری دیتا را ارسال کنید ولی باز هم کاربر میتواند با تغییراتی در برنامه محتوای متغییر را تغییر دهید.

  15. #15

    نقل قول: ارسال اطلاعات به کوئری بدون استفاده از تگ input

    نقل قول نوشته شده توسط ali_sed مشاهده تاپیک
    فرض می کنیم وقتی کاربر دکمه سابمیت را کلیک می کند محاسبات انجام میشود و محتوای فرم با متد آجاکس ارسال می شود. می توانید از روش زیر استفاده کنید:
    توجه: کدها تست نشده اند.

    کد HTML:
    <form method="post" action="/test.php" >
        <input type="text" name="other-field1">
        <input type="text" name="other-field2">
        <input type="text" name="other-field3">
        <input type="submit" class="btn btn-danger "  name="btn_add" value="submit" />
    </form>
    
    <script>
    $("form").submit(function( event ) {
        event.preventDefault();
        var url = form.attr("action");
        var formData = $(form).serializeArray();
        
        //calculate hidden values
        hiddenValue1 = calculateHiddenValue1();
        hiddenValue2 = calculateHiddenValue2();
        
        formData.push({hiddenValue1: hiddenValue2, hiddenValue2: hiddenValue2});
        
        $.post(url, formData)
        .done(function (response) {
            alert(response);
        })
        .fail(function() {
            alert( "error" );
        });
    });
    </script>
    به شما توصیه می کنم محاسبات را سمت سرور انجام دهید تا مطمئن شوید دیتا دستکاری نشده است. شما میتوانید فیلد هیدن را حذف کنید و به روش دیگری دیتا را ارسال کنید ولی باز هم کاربر میتواند با تغییراتی در برنامه محتوای متغییر را تغییر دهید.
    درود بر شما
    غیر از اجکس راه حل دیگتون چیه
    مثلا ذخیره در متغیر یا همین سشن ها
    لطفا از اینها هم مثال بیارید
    سپاس فراوان از شما

  16. #16

    نقل قول: ارسال اطلاعات به کوئری بدون استفاده از تگ input

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

    کد HTML:
      $("#form").submit( function(eventObj) {
          $("<input />").attr("type", "hidden")
              .attr("name", "something")
              .attr("value", "something")
              .appendTo("#form");
          return true;
      });

تاپیک های مشابه

  1. تغییر استایل input شماره 1 وقتی که ما روی input شماره 2 focus کنیم
    نوشته شده توسط abbas3zaar در بخش طراحی وب (Web Design)
    پاسخ: 1
    آخرین پست: سه شنبه 10 فروردین 1395, 07:09 صبح
  2. استفاده از ورودی یک input در جای دیگر
    نوشته شده توسط alireza1375 در بخش PHP
    پاسخ: 1
    آخرین پست: شنبه 11 بهمن 1393, 22:14 عصر
  3. آپلود عکس از src تگ img بدون استفاده از تگ input
    نوشته شده توسط krasus در بخش jQuery
    پاسخ: 1
    آخرین پست: دوشنبه 28 مهر 1393, 10:05 صبح
  4. سوال: استفاده از مقدار وارد شده در input box
    نوشته شده توسط dehqhani در بخش ASP.NET Web Forms
    پاسخ: 10
    آخرین پست: یک شنبه 08 تیر 1393, 07:02 صبح
  5. پاسخ: 2
    آخرین پست: دوشنبه 29 آبان 1391, 12:03 عصر

برچسب های این تاپیک

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

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