سلام دوستان داخل یک پروژه ای که با php خام نوشته میشه بدون استفاده از mvc خب یکسری فایل ها برای قراردادن کلاس ها یا فانکشن ها یا هدر وفوتر سایت و یکسری اطلاعات برای کانفیگ و اتصال به دیتابیس و ... هستند که خب لزومی نداره کاربر با سرچ url در مرورگر بتونع این فایل هارو باز کنه . درسته که نمایش این فایل ها برای کاربر فایده ای نداره (چون کلاس ها در تون ها فقط تعریف شدند و عملا قرار نیست در اون فایل کاری انجام بشه ) ولی به نظر خودم فکر نکنم درست باشه که کاربر بتونه فایل های اصلی پروژه رو بع این راحتی ران کنه برای جلوگیری از چنین مواردی باید چیکار کنیم ؟
یکسری فایل ها برای قراردادن کلاس ها یا فانکشن ها یا هدر وفوتر سایت و یکسری اطلاعات برای کانفیگ و اتصال به دیتابیس و ... هستند که خب لزومی نداره کاربر با سرچ url در مرورگر بتونع این فایل هارو باز کنه
لزومی نداره یعنی چی؟! به هیچ وجه نباید چنین اتفاقی بیفته!!!
و این قضیه میتونه مشکلات امنیتی خیلی جدی ایجاد کنه. پس حتما جدی بگیرید این قضیه رو.
مرسوم ترین روشی هم که بنده میشناسم این هست که شما باید اول از همه پوشه بندی پروژتون رو جوری انجام بدید که صرفا یک پوشه بعنوان روت اصلی پروژه که همه درخواست ها بهش متصل میشن تعریف کنید و الباقی فایل های برنامه تون رو در یک مرحله قبل از اون قرار بدید. مثلا در وردپرس اون پوشه wp-content هست یا در لاراول پوشه public
و در مرحله بعد در تنظیمات وب سرورتون (Apache یا Nginx یا ...) به نحوی کانفیگ رو انجام میدهید که وب ریکوئست های ارسالی فقط به همون پوشه عمومی متصل بشوند و هیچ جوری راه دستیابی به سایر فایل های مرحله قبلش رو نداشته باشند.
دوستان عزیز نظری ندارید؟
@gomnam @abdolrahman @mhyeganeh @juza66 @ajdar9667 @mehranmarandi90 و بقیه دوستان...
یکسری فایل ها برای قراردادن کلاس ها یا فانکشن ها یا هدر وفوتر سایت و یکسری اطلاعات برای کانفیگ و اتصال به دیتابیس و ... هستند که خب لزومی نداره کاربر با سرچ url در مرورگر بتونع این فایل هارو باز کنه
لزومی نداره یعنی چی؟! به هیچ وجه نباید چنین اتفاقی بیفته!!!
و این قضیه میتونه مشکلات امنیتی خیلی جدی ایجاد کنه. پس حتما جدی بگیرید این قضیه رو.
مرسوم ترین روشی هم که بنده میشناسم این هست که شما باید اول از همه پوشه بندی پروژتون رو جوری انجام بدید که صرفا یک پوشه بعنوان روت اصلی پروژه که همه درخواست ها بهش متصل میشن تعریف کنید و الباقی فایل های برنامه تون رو در یک مرحله قبل از اون قرار بدید. مثلا در وردپرس اون پوشه wp-content هست یا در لاراول پوشه public
و در مرحله بعد در تنظیمات وب سرورتون (Apache یا Nginx یا ...) به نحوی کانفیگ رو انجام میدهید که وب ریکوئست های ارسالی فقط به همون پوشه عمومی متصل بشوند و هیچ جوری راه دستیابی به سایر فایل های مرحله قبلش رو نداشته باشند.
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟