Java: كيفية إخفاء الموارد الثابتة مثل HTML ، صور من المستخدم على JBoss Platfrom؟

StackOverflow https://stackoverflow.com/questions/1768819

سؤال

لقد قمت بتطوير تطبيق الويب Java 1.4. يتم نشر التطبيق على JBoss (Tomcat).

لنفترض أن هيكل المجلد الخاص بي

   mainfolder(contains subfolders and jsp pages)
        images(contains all of images files)
        headerfiles(header files)
        javascript(javascript files)

url لصفحة تسجيل الدخول إلى موقع الويب

     mywebsite.com/mainfolder/login.jsp

إذا كانت أنواع المستخدمين تكمل عنوان URL لبعض الموارد الثابتة

     mywebsite.com/mainfolder/images/myimage.jpeg

ثم يمكنه عرض الصورة على عنوان URL هذا.

أريد إيقاف المستخدم لعرض هذه الموارد. ماذا أفعل؟

هل هناك طريقة لنمط الأسماء المحددة لأسماء الملفات التي لا أريد أن يراها المستخدم. في هذه الحالة ، يمكنني تحديد نمط *.ssi للاختباء.

هل كانت مفيدة؟

المحلول

إذا تم استخدام هذه الصور في صفحاتك ، فسيتعين على المستخدم أن يكون قادرًا على تنزيلها لرؤيتها.

هذا هو HTTP الأساسي. إذا كنت ترغب في تنزيل مورد ، فأنت بحاجة إلى الوصول إليه.

منع المستخدمين من الوصول mywebsite.com/mainfolder/images/myimage.jpeg سيعني أنك لن تتمكن من استخدام هذه الصورة في HTML أو CSS.

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

نصائح أخرى

أي شيء يضع تحت webapp WEB-INF لا يمكن الوصول إلى الدليل مباشرة بواسطة المتصفح.

أريد إيقاف المستخدم لعرض هذه الموارد. ماذا علي أن أفعل؟

بصراحة ، هذا لا معنى له. كيف يمكن للعميل أن يتمكن من الحصول على البيانات الثابتة؟ يمكنك وضع تلك الملفات في /WEB-INF (مجلد غير منشور) لإخفائها من الوصول المباشر ، ولكن لا يمكنك استخدامها أبدًا في صفحات JSP الخاصة بك ، ببساطة لأن العميل لم يعد قادرًا على الوصول إليه مباشرة.

أعتقد أن أكبر عدد من الأمور هنا هو أنك لم تدرك أن كل صورة ، ملف CSS ، ملف JS ، إلخ. يعتبر كل منهما طلب HTTP مستقل تمامًا. ليس صحيحًا أن الموقع الكامل قد تم نقله بطلب HTTP واحد.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top