الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

سؤال في سكربت رفع الملفات

مغلق
بدأه zarzor_2010 في 4 يناير 2007 · 5 رد · 825 مشاهدة · في منتدى تطوير المواقع بـ PHP
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

انا اقوم بعمل سكربت لرفع الملفات

و لكن هناك مشكله اريد حلها من فضلكم

انا اقوم بتخزين الملفات المرفوعه في مجلد اسمه uploads و يتم تنزيلها عن طريق ملف download.php

و اريد انه لا يمكن الوصول للملف و تنزيله الا عن طريق ملف ال download.php أي انه اذا كتب احد الاشخاص اسم الملف في مساره في الاكسبلورر فانه لا يتم تنزيله

مثال " اذا كتب احد الاشخاص www.mysite.com/uploads/myfile.zip

لا يتم تنزيله

أنا وجدت في احد السكربتات انه يطلب منه authintication من الاكسبلورر

كيف ذلك ارجوكم

#2

احد الطرق المستخدمة لذلك ... على سبيل المثال لا الحصر هي استخدام $_SERVER و هو عبارة عن متغير معرف مسبقا Predefined Variable ..

وذلك للتاكد من مسار التصفح .. يعني من اين اتى الزائر ...

فاذا كان فعلا قد اتى من صفحة الداونلود download.php يتم تحميل الملف .. واذا كان مسار التصفح غير ذلك ... يعني حصل على الرابط مباشرة ووضعه في المتصفح .. يتم نقله الى صفحة الداون لود مرة اخرى او صفحة اخرى او طلب authorication ..

if($_SERVER['HTTP_REFERER']=='http://site.com/download.php')
{ 
   .
   .
   .
   .
   .
}
else
{

	echo 'Illegal operation.... ';

	header("Location: http://site.com/download.php");

}
#3

اشكرك

و لكن اعتقد ان هذا الكود يعمل فقط في حالة طلب ملف php

و لكن اذا قام احد بكتابة اسم الملف في المتصفح فان الاكسبلورر يقوم بتنزيله مباشرة دون تنفيذ اي اوامر

مثل : www.mysite.com/downloads/myfile.zip

و في المثال فان الاكسبلورر يقوم بتنزيل ملف myfile.zip دون التاكد من او تنفيذ اي اوامر

أنا في انتظار الرد و شكرا لك

#4

ما تراه في مواقع التحميل هو كالتالي .. يكون الرابط مثلا على شكل :

www.site.com/usersarea/browser/file/name.rar

لو دققت قليلا في الكود و حطيته في المتصفح هتلاقيه بيياخدك على صفحة و ليس على تحميل مباشر للملف .. لان اللي انت شايفه في الرابط ده عنوان صفحة وليس ملف و اسم الملف هنا name.rar هو عبارة عن قيمة للمتغير file$

نفس الفكرة مستخدمة في العديد من التطبيقات و منها الويكي و ورد بريس .. و بتستخدم ايضا كحيلة لايهام المستخدم ان الرابط هو عبارة عن مجلدات داخليه و رابط مباشر و هو في الاصل عبارة عن متغيرات وقيم ...

رابط التحميل يكون رابط اخر مخفي.. ستلاحظ ذلك في معظم مواقع تحميل الملفات ..

مثال على ذلك :

http://en.wikipedia.org/wiki/Php

هنا php ليست مجلد في الموقع او سب فولدر و انما هي عبارة عن قيمة لمتغير ما .. قديكون المتغير هو wiki$ أو قد يكون متغير داخلي مخفي (غير مباشر) ...

الفكرة في الاساس تستخدم لزيادة الرانك في محركات اليحث وهي مشروحة هنا : /index.ph...st&p=523239

اما عن فكرة حماية الرابط نفسه وعدد مرات التحيل و زمنه فيتم ذلك عن طريق cgi authorication ..

#5

لم احاول ولم اجرب ، ولكن خطر على بالي htaccess ربما بطريقة او اخرى يمكن من الوصول المباشر الى المجلد

كم تشتكي وتقول انك معدم

والارض ملكك والسما والأنجم

--------------------------

palyesr.gif

شركة بال يس لخدمات الاستضافة والتصميم

www.palyes.com

sales@palyes.com

دائما اونلاين : thesunyangel@hotmail.com

#6

انا جربت طريقة فلحت معي " وهي استخدام session "

دعوة لرسم المستقبل

ASOFT php Programmer

هذا الموضوع مغلق.

مواضيع مشابهة