pari.a
5 سال پیش توسط pari.a مطرح شد
10 پاسخ

انتقال فایل ها به صورت امن در سرور دیگر

سلام
من یه سایتی دارم که هر کاربر کلی اطلاعات مثل عکس دفترچه بیمه کارت ملی و ..... داره .یعنی وقتی میخوام صفحه یه کاربر رو ببینم تقریبا هر کدوم ۱۰ تا عکس لود میکنه . حالا برای امن کردم دسترسی به این عکس ها و کم کردن احتمال هک باید تمام این فایل ها و عکس هارو به سرور دیگه منتقل کنم و حتی لینک ها نباید نمایش داده بشن . من دو تا راه رو تقریبا بلدم. یکی ftp هست که بدون نصب لاراول باشه که البته نمیدونم تو این روش میشه لینک رو مخفی کرد یا نه. یکی دیگه هم نصب لاراول و ارسال عکس با api به صورت رمز گذاری و مخفی کردن لینک عکس هاست که اینم منطقی نیست چون برای گرفتن هر عکس تو یه صفحه باید api بزنه
اما الان نمیدونم دقیقا باید چیکار کنم لطفا راهنمایی کنید
@ali.bayat
@hesammousavi
@Alimotreb
@ali.farmani


ثبت پرسش جدید
علی بیات
تخصص : توسعه دهنده ارشد وب
@ali.bayat 5 سال پیش مطرح شد
0

از Storage لاراول هم میتونید استفاده کنید.
Storage در لاراول دو حالت public و local داره. public که قابل دسترسیه و local نیست.

اصلاعات بیشتر در مقاله زیر:
https://virgool.io/@ali.bayat/%DA%A9%D8%A7%D8%B1-%DA%A9%D8%B1%D8%AF%D9%86-%D8%A8%D8%A7-%D9%81%D8%A7%DB%8C%D9%84%D9%87%D8%A7-%D8%AF%D8%B1-%D9%81%D8%B1%DB%8C%D9%85%D9%88%D8%B1%DA%A9-%D9%84%D8%A7%D8%B1%D8%A7%D9%88%D9%84-qwtzejvtrhk8


pari.a
@pari.a 5 سال پیش آپدیت شد
0

بله روی سرور خودمون هم اینکارو کردم اما چون قراره منتقل بشه اونجا هم باید لاراول نصب کنم؟ ایا منطقیه واسه ده تا عکس تو یه صفحه ده بار api بزنم؟
@ali.bayat


علی بیات
تخصص : توسعه دهنده ارشد وب
@ali.bayat 5 سال پیش مطرح شد
0

می‌تونید فایل‌ها رو روی سرور خودتون قرار بدید و یه endpoint در api بوجود بیارید که هر ۱۰ مورد رو برگردونه. این جوری دیگه مجبور به نصب هم نیستید


pari.a
@pari.a 5 سال پیش مطرح شد
0

متاسفانه باید روی یه سرور دیگه بره
@ali.bayat


علی بیات
تخصص : توسعه دهنده ارشد وب
@ali.bayat 5 سال پیش مطرح شد
0

یه روش قدیمی هست که از تابع base64_encode در PHP استفاده میکنه. مثالش رو براتون قرار می‌دم:


<?php
    // First get your image
    $image = 'path-to-your-picture/image.jpg';
    $picture = base64_encode(file_get_contents($image));
    echo '<img width="100" height="100" src="data:image/jpg;base64,'. $picture .'" />'
    ?>

در این روش آدرسی برای نشون دادن وجود نداره.
همچنین از وب سایت زیر هم برای انکود کردن میتونید استفاده کنید، هر چند خود PHP این کار رو انجام میده
https://www.motobit.com/util/base64-decoder-encoder.asp


pari.a
@pari.a 5 سال پیش مطرح شد
0

ممنون از شما اتفاقا باید لینک رو هم مخفی کنم . اما هنوز به جواب سوالم نرسیدم که رو سرور دیگه باید چیکار کنم . خواهش میکنم کمی بیشتر راهنمایی کنید
@ali.bayat


علی بیات
تخصص : توسعه دهنده ارشد وب
@ali.bayat 5 سال پیش مطرح شد
0

روی سرور دیگه از کد بالا استفاده کنید و آدرس فایل ها رو مخفی کنید
. آدرس واقعی فایل رو در متغیر image$ قرار بدید و به همون صورت که در لاین ۵ می‌بینید... عکس رو نمایش بدید


pari.a
@pari.a 5 سال پیش مطرح شد
0

پس منظورتون اینه که اونور لاراول ایجاد کنم و api بزنم؟
مثل یه پروژه جدا؟
@ali.bayat


علی بیات
تخصص : توسعه دهنده ارشد وب
@ali.bayat 5 سال پیش مطرح شد
1

در روشی که بالا گفتم (base64_encode) .. فقط اسم فایل در واقع مخفی میشه ولی هنوز دسترسی بهش ممکنه.


اگر فقط برای عکسها می‌خواهید یه سرور جدا داشته باشید.. دو کار می‌تونید انجام بدید

  • بدون نیاز به سرور دوم.. می‌تونید از Policy ها در لاراول استفاده کنید و دسترسی رو برای فرد یا افراد خاصی محدود کنید: این جوری فایل‌ها روی همون سرور هستند و هر کسی نمیتونه دسترسی داشته باشه

  • اگر هم می‌خواهید با API کار کنید نیازی نیست API رو روی سرور جدا در نظر بگیرید. روی همین سایت هم می‌تونید یه API کوچک هم راه‌اندازی کنید.


Alimotreb
تخصص : کانفیگ سرور و برنامه نویس
@Alimotreb 5 سال پیش مطرح شد
1

سلام
@amini.parastoo

کلا 2 حالت دارید
به نظر من اگر میخوایید ببرید روی سرور دیگه ، یه اسکریپت براش بنویسید
منظورم API هست
خب درخواست بزنه! چه ایرادی داره
برای هر کاربر درخواست میزنه عکسشم میگیره!
فایل ها هم جای امنی هست دیگه کسی هم جز API دسترسی نداره

اگر هم میخوایید در یک سرور باشه ، که از storage لاراول و policy و گارد ها استفاده کنید برای سطح دسترسی ها!!


برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام