اذهب إلى المحتوى

السؤال

نشر

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

بالاضافة الى خاصية على الملفات لمنع المستخدم من تحميل جميع الملفات مثال(يوجد 5 ملفات فقط يستطيع تحميل ملف او 2 ) الباقي يقوم بتصفحه بشكل عادي 

وفي حال وجود مثال او تطبيق لما ذكرته سابقا ارجو ان يتم ارفاقه وشكرا

1.png

Recommended Posts

  • 0
نشر

الإجابة باختصار هي: لا يمكن، مادام أنه على المتصفح فالعميل يمكنه تحميله والحصول عليه بأي طريقة. ولذلك فإن الطريقة الوحيدة لمنع تحميله والحصول عليه بشكل كامل هي بمنعه من جهة الخادم، وعدم ارساله إلى العميل أساسا.

بعض الطرق التي قد تستعمل لهذا الغرض على مستوى العميل هي فقط بغرض تصعيب مهمة التحصل على هاته الملفات على تطبيق العميل، وخصوصا العملاء الغير تقنيين، من مثل: 

  • عرض الملف ضمن iframe واضافة طبقة شفافة فوق عنصر iframe لكي يمنع الوصول إلى الملف بشكل مباشر. يمكن وضعها بشكل مطلق absolute هي والـ iframe ضمن حاوية تمتلك الوضعية النسبية relative.
  • منع فتح قائمة السياق context menu للإطلاع على الشيفرة المصدرية للموقع والتحصل على رابط الملف من هنالك.
  • استخدم خوارزمية تشفير معينة لتشفير الملفات المرسلة من الخادم وفك شفرتها على تطبيق العميل، قم بعد ذلك بتشويش شيفرة جافاسكربت الخاصة بك.
  • 0
نشر

لا يُمكنك ذلك، بما أن الملف متاح للعميل بالمتصفح يُمكنه تحميله بطريقة أو بأخرى مهما قمت بتصعيب المهمة عليه، بدلا من ذلك يُمكنك منع وصول الملف إلى العميل (المُتصفح) من الأساس، يمكنك من الخادم إستخدام مكتبة أو طريقة بلغة البرمجة التي تستخدمها لقراءة الملف و تحويله إلى html و عرضه عندما يطلبه العميل (أي عرض صفحة ال Html أو محتوى الملف على شكل html)

إن كنت ترغب في إتباع هذه الطريقة عليك البحث من خلال الإنترنت عن مشاريع أو مكتبات مفتوحة المصدر باللغة التي تستخدمها للقيام بمهمة تحويل الملف من PDF إلى HTML، شخصياً إحتجت في مشروع للقيام بالعكس أي تحويل HTML إلى PDF.

و كحل لتصعيب المهمة على المستخدم  يُمكنك إستخدام الطرق التي ذكرها المُدرب عدنان في الأعلى، كما يُمكنك إستخدام مكتبة PDF.js و تخصيصها.

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...