هش کردن لینک دانلود در php

PHP -
7 ماه پیش
توسط Matthew آپدیت شد
کامران ( 0 تجربه )
3 سال پیش

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

دوستان مطلب هش کردن لینک دانلود در php خیلی واسم جالبه ولی متاسفانه هرچقدر سرچ میکنم نه در سایت های ایرانی و نه در سایت های خارجی منبع خاصی وجود نداره که بشه یاد گرفت !!
ممنون میشم اگه یه راهنمایی در این مورد داشته باشید یا یک منبعی رو معرفی کنید

با تشکر

حسام موسوی ( 365336 تجربه )
3 سال پیش
تخصص : طراح و برنامه نویس

روشی که برای این موضوع اینکه شما میتونید فایل هاتون رو در دایرکتوری قرار بدید که بصورت مستقیم قابل دسترس نیستن و بعد با استفاده از توابع هش کننده یک سری اطلاعات رو در سمت کاربر هش کنید و به url خودتون اضافه کنید و در طرف دیگه اون url رو هش معکوس کنید و ببینید آیا مقدار فرستاده شده درست هست یا نه
به مثال زیر دقت کنید

http://dl4.roocket.ir/download?path=dlv/1396/laravel55/1-laravel55.rar&mac=$2y$10$tSfQ6dfjGbCQNULL/MXf6.tQMLUA2E6AdQ6tXzUEm2ULIYLsmF/R6&t=1507079175

url زیر برای یکی از فایل های سایت هست
همونطور که مشاهده میکنید تنها بخشی از آدرس فایل قرار داده شده و بهمراه این url بخشی بصورت هش شده وجود داره که در بردارنده یک سری اطلاعات هست که زمانی که کاربر این url رو اجرا کنه سمت دیگه این اطلاعات یعنی مقدار هش شده گرفته میشه و دقیقا معکوس باهاش برخورد میشه تا از صحت درستی مقدار هش شده مطمئن بشید اگر کاملا درست بود اون وقت میتونید فایل رو برای دانلود به کاربر بدید
در php با استفاده از header ها میتونید به کاربر فقط همین url رو نشون بدید و فایل دانلود بشه و هیچ وقت نفهمه url اصلی برای دانلود چی هست
اینطوریم میتونید یه سیستم امن برای دانلود داشته باشید
البته این موضوع کمی پیچیده هست من این موضوع رو در دوره لاراول کامل توضیح دادم

کامران ( 0 تجربه )
3 سال پیش

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

با تشکر از شما

none ( 971 تجربه )
3 سال پیش

سلام
شما میتونید از مقاله زیر استفاده کنید
http://concordia.sk/programming/php/135-dynamic-download-link

Matthew ( 21940 تجربه )
7 ماه پیش
تخصص : ساده

@hesammousavi
@khanzadimahdi
امکانش هست در مورد قضیه بالا یکم راهنمایی کنید (با مثال)
کدم اینه من میخوام یک urlرو وقتی داخل دانلود منیجر میندازم دانلود کنه اما نمیشه
لینک اصلی من لینک آپاراته و یک لینک فرعی دارم و urlمن همان لینک فرعی هست

    $path=$head_link;
    header("Pragma: public");
    header("Expires: 0");
    header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
    header('Content-Description: File Transfer');
    header("Cache-Control: public");
    header('Content-Type: application/mp4');
    header('Content-Disposition: attachment; '.$path);//save as IDM
    header('Content-Transfer-Encoding: binary');
    header('Content-Length: ');
    ob_clean();
    flush();
    readfile($path);
برای ارسال پاسخ باید وارد سایت شوید