مرجع تخصصی برنامه نویسان

انجمن تخصصی برنامه نویسان فارسی زبان

کاربر سایت

ali

عضویت از 1392/03/25

JQuery Form Data in mvc

  • شنبه 10 تیر 1396
  • 23:11
تشکر میکنم
با سلام می خواستم بدونم چقدر می تونه انتقال داده ها از طریق گزینه jQuery form data در mvc امن باشه؟ یا به طور خلاصه میشه امنیت لازم رو برای این روش تامین کرد؟ با تشکر

پاسخ های این پرسش

تعداد پاسخ ها : 4 پاسخ
کاربر سایت

سهیل علیزاده

عضویت از 1396/04/09

  • شنبه 10 تیر 1396
  • 23:33

داده هایی که میخواید از طریق FormData ارسال کنید را بیان کنید. میخواهید این داده ها را با استفاده از Ajax ارسال کنید ؟

کاربر سایت

ali

عضویت از 1392/03/25

  • یکشنبه 11 تیر 1396
  • 07:59
بله از طریق Ajax و بیشتر به خاطر اینکه چند تا فایل رو همزمان بتونم از طریق Ajax ارسال کنم همراه دیتا های انواع دیگر
کاربر سایت

ali

عضویت از 1392/03/25

  • یکشنبه 11 تیر 1396
  • 08:01
و تا اونجایی که می دونم نباید از گزینه anti foreign در کنترلر استفاده کنم
کاربر سایت

سهیل علیزاده

عضویت از 1396/04/09

  • یکشنبه 11 تیر 1396
  • 08:37

خیر با استفاده نکردن از Anti Forgery Token دچار حمله CSRF می شوید، زمانی که بخوایم به صورت Ajax داده ها را ارسال کنیم token مورد نظر ارسال نمی شود و باید به صورت دستی عمل کنیم.

Ajax

     var form = $('#CreateProfileForm');
     var token = $('input[name="__RequestVerificationToken"]', form).val();

     var fileData = $("#Image").prop("files")[0];
     var fd = new FormData();

     fd.append("__RequestVerificationToken", token);
     fd.append("image", fileData);

     $.ajax({
             url: '@postUrl',
             method: "POST",
             contentType: false,
             processData: false,
             data: fd
         })
         .done(function () {
             window.location = "/";
         });

Controller


        [HttpPost, ValidateAntiForgeryToken]
        public virtual async Task<ActionResult> CreatePrfile(MyModel viewModel  )
        {}

کاربرانی که از این پست تشکر کرده اند

هیچ کاربری تا کنون از این پست تشکر نکرده است

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

با ما تماس بگیرید تا در این مسیر همراهتان باشیم :)