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

نام تاپیک: ارسال مقادیر مهم از طریق متد GET

  1. #1

    Question ارسال مقادیر مهم از طریق متد GET

    سلام

    فرض کنید مجبورید یک یک یا چند متغییر را که قرار هست از مقادیر آنها استفاده کنید و اطلاعاتی را از database استخراج کنید و حتی مجبور باشید برخلاف منطق GET مقداری در بانک اطلاعاتی را مطابق این متغییر ها update کنید
    حالا شما فکر می کنید برای بالا بردن امنیت در چنین سرویسی چی کارهایی می توان انجام داد؟

    مثلا فرض کنید که هم مقادیر عددی و هم رشته ارسال می شود
    آیا استفاده از توابعی چون md5 یا sha1 را پیشنهاد می کنید، تا اینطوری کسی نتواند مقادیر ارسالی را تغییر دهد ؟ ولی در این روش بازیابی اطلاعات به حالت اول به چه صورت انجام می شود؟

    لطفا هر روشی را مناسب می دانید توضیح دهید


    با تشکر

  2. #2
    کاربر دائمی آواتار MSN_Issue
    تاریخ عضویت
    آبان 1388
    محل زندگی
    مشهدالرضا
    پست
    586

    نقل قول: ارسال مقادیر مهم از طریق متد GET

    کلا ارسال اطلاعات مهم با متد GET پیشنهاد نمیشه ... !
    اما اگه مجبورید پیشنهاد میکنم خودتون یه تابع هش بنویسید و ازش استفاده کنید ...

  3. #3

    نقل قول: ارسال مقادیر مهم از طریق متد GET

    میشه بیشتر راهنمایی کنید

    خودتون می تونید یک مثال بزنید؟


    با تشکر

  4. #4

    نقل قول: ارسال مقادیر مهم از طریق متد GET

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

    در این زمینه GET و POST هردو قابل سوء استفاده و خرابکاری هستن. ولی GET راحتتره چون هرکس میتونه بدون هیچ برنامه و کار اضافه ای، پارامترها رو در آدرس بسادگی تغییر بده و تایپ کنه.
    فکر نکنید اگر چیزی رو POST کردید به این معنی هست که کاربر نمیتونه اون رو تغییر بده یا اطلاعات دیگری رو ارسال کنه.

    البته شاید مورد شما چیز دیگری باشه که در اینصورت باید توضیح بیشتر و دقیقتری بدید یا مثال بزنید تا بررسیش کنیم.

  5. #5

    نقل قول: ارسال مقادیر مهم از طریق متد GET

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

    من بیشتر توضیح میدم:

    ببینید فکر کنید من مجبورم چندتا لینک در اختیار تمام کاربرها قرار بدم و هیچکاری به عضویت هم ندارم یعنی از login و session هم خبری نیست و قراره این لینکها از یک سایت و صفحه دیگری کلیک بشن
    حالا شما فرض کنید من این لینک رو به یک عدد 6 رقمی خلاصه کردم (مثلا)
    http://site.com/162223
    حالا این روش چندین اشکال داره که من یک تاپیک دیگه هم برای این موضوع درست کردم
    1- کاربر به راحتی می تونه مقدار رو تغییر بده
    2- می تونه با برنامه یا مثلا javascript بهصورت یک loop هر چند بار بخاد برای این لینک و لینکهای دیگر با عدد مشابه click بفرسته
    حالا من می خوام جلوی این کار رو بگیرم

    شما چه پیشنهاد می کنید؟

    با تشکر

  6. #6

    نقل قول: ارسال مقادیر مهم از طریق متد GET

    خب این لینک چکار میکنه؟ باعث انجام چه عملیاتی میشه؟ هدف شما چیه؟

  7. #7

    نقل قول: ارسال مقادیر مهم از طریق متد GET

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

  8. #8

    نقل قول: ارسال مقادیر مهم از طریق متد GET

    این لینک قراره مطابق با اون شماره صفحه را به یک آدرس دیگری تغییر مسیر دهد
    چه آدرسی مثلا؟ حالا فرضا کاربر عدد رو تغییر بده میره به یه آدرس دیگه، ولی برای چی باید این کار رو بکنه. اگر اون آدرس آدرسی باشه که همهء کاربران بتونن ببینن، پس نیازی نیست محدودش کنیم.

    و در بانک اطلاعاتی مقداری را افزایش دهد
    چه مقداری؟ مقدار چه اطلاعاتی؟

  9. #9

    نقل قول: ارسال مقادیر مهم از طریق متد GET

    ببینید فرض کنید من میخام این لینکها رو به عنوان یک سیستم تبلیغاتی در اختیار کاربرها قرار بدم تا با کلیک بازدید کننده ها هم به آدرس مورد نظر انتقال داده بشند و هم قبل اینکار با ورود به آدرس اولی
    htt://site.com/123454
    اطلاعات صاحب تبلیغات به روز بشه :

    تعداد بازدید
    آخرین دفعه بازدید
    و...

    اما این روش مشکلی که داره اینکه آدرس خیلی واضح هستش و هر کسی می تونه این سیستم رو دور بزنه و چندین کلیک برای این لینکها بفرسته
    حالا میخام بدونم که چطوری هم آدرس سایت رو (سایت دوم - سایت تبلیغات دهنده) از دید کاربر مخفی کنم و اگر این روش عددی که من گفتم خوبه چطوری این عدد رو نامفهوم کنم تا کسی نتونه به راحتی به این سیستم نفوذ کنه و کلا چطور دفعات بازدید را محدود کنم که مشکلی کاربران حقیقی نداشته باشند؟

    با تشکر

  10. #10
    کاربر دائمی آواتار رضا قربانی
    تاریخ عضویت
    خرداد 1389
    محل زندگی
    ܓܨ_| ı̴̴̡ ̡̡͡|̲̲̲͡͡͡ ̲▫̲͡ ̲̲̲͡͡π̲̲͡͡ ̲̲͡▫̲̲͡͡ ̲|̡̡̡ _
    پست
    1,824

    نقل قول: ارسال مقادیر مهم از طریق متد GET

    نقل قول نوشته شده توسط MSN_Issue مشاهده تاپیک
    کلا ارسال اطلاعات مهم با متد GET پیشنهاد نمیشه ... !
    اما اگه مجبورید پیشنهاد میکنم خودتون یه تابع هش بنویسید و ازش استفاده کنید ...
    ممنون می شم یه تابع هش که خودتون درست کردید برامون بذارید

  11. #11

    نقل قول: ارسال مقادیر مهم از طریق متد GET

    سلام

    آقا رضای گل شما خودت پیشنهادی نداری عزیز؟

  12. #12
    کاربر دائمی آواتار MSN_Issue
    تاریخ عضویت
    آبان 1388
    محل زندگی
    مشهدالرضا
    پست
    586

    نقل قول: ارسال مقادیر مهم از طریق متد GET

    نقل قول نوشته شده توسط رضا قربانی مشاهده تاپیک
    ممنون می شم یه تابع هش که خودتون درست کردید برامون بذارید
    توابع هش با توجه به نوع و مکانی که مورد استفاده قرار میگیرند، میتونند متفاوت باشند (برگشت پذیر یا یک طرفه ... )
    مثلا یک تابع هش ساده میتونه اینطوری باشه :

    <?php
    function h1 ($str, $method){
    $res = '';
    $time = ''.Date(U);
    switch($method){
    case 0: $str = $str; break;
    case 1: $str = md5($str); break;
    case 2: $str = md5(hash(md4, $str)); break;
    case 3: $str = md5(substr(md5($str), 10, 20)); break;
    }

    for($i=0; $i<10; $i++){
    $res .= ($str[$i]!=null)?$str[$i]:'';
    $res .= $time[$i];
    }
    return $res;
    }

    ?>

    همین طور که می بینید، متد 0 برگشت پذیر، متد 1 تقریبا برگشت پذیر (!) و متد های 2و3 تقریبا یکطرفه هستند ...
    بسته به نیازتون میتونید هرطور که خواستید این توابع رو طرحی کنید .

    این لینک هم میتونه مفید باشه ...

    موفق باشید...

  13. #13

    نقل قول: ارسال مقادیر مهم از طریق متد GET

    ممنون دوست عزیز

    ولی حالا شما فرض کنید من با همین hash مشکل اولم حل شد یعنی کسی نمی تونه لینک رو تغییر بده یا به لینکهای دیگه دسترسی داشته باشه اما برای کنترل تعداد نمایش لینک چه پیشنهادی دارید مثلا گفتم اگه کسی بخاد این لینک رو با برنامه یا اسکریپتی که خودش نوشته به دفعات زیاد کلیک کنه (هر 3ثانیه یکبار) چطوری باید این مشکل رو حل کرد؟


    با تشکر

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

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

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