نمایش نتایج: از شماره 1 تا 5 , از مجموع 5

موضوع: استفاده از ماژول Secure Link در Nginx

  1. #1
    عضو انجمن
    تاریخ عضویت
    Sep 2017
    نوشته ها
    102
    تشکر تشکر کرده 
    90
    تشکر تشکر شده 
    24
    تشکر شده در
    22 پست

    Question استفاده از ماژول Secure Link در Nginx

    سلام و درود

    قصد دارم با استفاده از ماژول secure_link لینک هایی با مدت زمان اعتبار معلوم ایجاد کنم ولی کلا 403 میگیرم.
    کد:
    server {
        listen  80;
        server_name sub.domain.xyz;
        
        location / {
            alias /home/www;
            secure_link $arg_md5,$arg_expires;
            secure_link_md5 "$secure_link_expires$uri$remote_addr MySecret";
    
    
            if ($secure_link = "") {
                return 403;
            }
    
    
            if ($secure_link = "0") {
                return 410;
            }
        
        }
    }

    کدهای فوق مربوط به کانفیگ nginx هست و لینک هم توسط کد PHP زیر ایجاد میکنم.
    کد:
    <?php
    
    
    
    
    /**
     * @param $baseUrl - non protected part of the URL including hostname, e.g. http://example.com
     * @param $path - protected path to the file, e.g. /downloads/myfile.zip
     * @param $secret - the shared secret with the nginx server. Keep this info secure!!!
     * @param $ttl - the number of seconds until this link expires
     * @param $userIp - ip of the user allowed to download
     * @return string
     */
    function buildSecureLink($baseUrl, $path, $secret, $ttl, $userIp)
    {
        $expires = time() + $ttl;
        $md5 = md5("$expires$path$userIp $secret", true);
        $md5 = base64_encode($md5);
        $md5 = strtr($md5, '+/', '-_');
        $md5 = str_replace('=', '', $md5);
    
    
    
    
        return $baseUrl . $path . '?md5=' . $md5 . '&expires=' . $expires;
    }
    
    
    
    
    // example usage
    $secret = 'MySecret';
    $baseUrl = 'http://sub.domain.xyz';
    $path = '/path/to/file.zip';
    $ttl = 120; //no of seconds this link is active
    $userIp = '195.99.99.99'; // normally you would read this from something like $_SERVER['REMOTE_ADDR'];
    
    
    
    
    echo buildSecureLink($baseUrl, $path, $secret, $ttl, $userIp);


    ممنون میشم عنایت بفرمایید.
    ویرایش توسط esi20 : July 24th, 2020 در ساعت 22:40

  2. # ADS




     

  3. #2
    عضو دائم T.Toosi آواتار ها
    تاریخ عضویت
    Jun 2015
    نوشته ها
    1,071
    تشکر تشکر کرده 
    278
    تشکر تشکر شده 
    2,936
    تشکر شده در
    1,329 پست

    پیش فرض پاسخ : استفاده از ماژول Secure Link در Nginx

    باسلام

    کد:
    $secret = 'the_secret_key_configured_in_nginx';
    جایگزین :

    کد:
    $secret = 'MySecret';

  4. تعداد تشکر ها ازT.Toosi به دلیل پست مفید


  5. #3
    عضو انجمن
    تاریخ عضویت
    Sep 2017
    نوشته ها
    102
    تشکر تشکر کرده 
    90
    تشکر تشکر شده 
    24
    تشکر شده در
    22 پست

    پیش فرض پاسخ : استفاده از ماژول Secure Link در Nginx

    نقل قول نوشته اصلی توسط T.Toosi نمایش پست ها
    باسلام

    کد:
    $secret = 'the_secret_key_configured_in_nginx';
    جایگزین :

    کد:
    $secret = 'MySecret';
    درود بر شما

    عذر میخوام اشتباه گذاشته بودم کد PHP رو.
    در واقع در حالی که سکرت MySecret هست لینک رو ایجاد میکنم که بازم 403 میده.

  6. #4
    عضو دائم T.Toosi آواتار ها
    تاریخ عضویت
    Jun 2015
    نوشته ها
    1,071
    تشکر تشکر کرده 
    278
    تشکر تشکر شده 
    2,936
    تشکر شده در
    1,329 پست

    پیش فرض پاسخ : استفاده از ماژول Secure Link در Nginx

    نقل قول نوشته اصلی توسط esi20 نمایش پست ها
    درود بر شما

    عذر میخوام اشتباه گذاشته بودم کد PHP رو.
    در واقع در حالی که سکرت MySecret هست لینک رو ایجاد میکنم که بازم 403 میده.
    باسلام، یک پارامتر اشتباه هست (میتونه آیپی، path یا ... باشه) با آزمون و خطا مشکل را پیدا کنید. به صورت مثال فقط expire را بررسی کنید :

    Nginx

    کد:
    secure_link_md5 "$secure_link_expires MySecret";
    PHP

    کد:
    $md5 = md5("$expires $secret", true);

  7. تعداد تشکر ها ازT.Toosi به دلیل پست مفید


  8. #5
    عضو انجمن
    تاریخ عضویت
    Sep 2017
    نوشته ها
    102
    تشکر تشکر کرده 
    90
    تشکر تشکر شده 
    24
    تشکر شده در
    22 پست

    پیش فرض پاسخ : استفاده از ماژول Secure Link در Nginx

    نقل قول نوشته اصلی توسط T.Toosi نمایش پست ها
    باسلام، یک پارامتر اشتباه هست (میتونه آیپی، path یا ... باشه) با آزمون و خطا مشکل را پیدا کنید. به صورت مثال فقط expire را بررسی کنید :

    Nginx

    کد:
    secure_link_md5 "$secure_link_expires MySecret";
    PHP

    کد:
    $md5 = md5("$expires $secret", true);
    سپاسگزارم از پیگیریتون.
    ظاهرا اون متغییر uri انجین ایکس انکود شده نیست و حتما باید path رو انکود نشده فرستاد که md5 درست در بیاد.

اطلاعات موضوع

کاربرانی که در حال مشاهده این موضوع هستند

در حال حاضر 1 کاربر در حال مشاهده این موضوع است. (0 کاربران و 1 مهمان ها)

موضوعات مشابه

  1. ایجاد Secure Link روی لینکهای دانلود شبیه تاینی موویز
    توسط mgt1234 در انجمن درخواست خدمات کانفیگ سرور و وب سایت
    پاسخ ها: 0
    آخرين نوشته: March 3rd, 2017, 01:31
  2. سرعت فوق العاده اینترنت 4 جی ایرانسل با استفاده از مودم های رومیزی tp-link
    توسط zartosht در انجمن اتصالات به اینترنت و ارایه دهندگان پهنای باند
    پاسخ ها: 11
    آخرين نوشته: May 25th, 2016, 11:40
  3. تایموت زیاد در هنگام استفاده از TP-Link-TL-WA5210G
    توسط hadisko در انجمن سوالات و مشکلات
    پاسخ ها: 7
    آخرين نوشته: December 5th, 2013, 19:07
  4. استفاده از Hot link در htaccess
    توسط SaynaServer در انجمن مباحث و منایع آموزشی
    پاسخ ها: 0
    آخرين نوشته: April 6th, 2012, 12:18
  5. پاسخ ها: 0
    آخرين نوشته: May 11th, 2011, 01:31

مجوز های ارسال و ویرایش

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