PDA

توجه ! این یک نسخه آرشیو شده میباشد و در این حالت شما عکسی را مشاهده نمیکنید برای مشاهده کامل متن و عکسها بر روی لینک مقابل کلیک کنید : جلوگیری از دسترسی به فایل های php یک پروژه



<?php?>
June 14th, 2016, 16:16
دارم یک cms رو پیاده سازی میکنم .

قسمت admin از پوشه های زیر تشکیل شده :

پوشه class :: که تمام کلاس ها توشه .
پوشه captcha : که کد کپچا توشه .
و تو روت هم فایل های صفحات هست مثل login.php - logout.php ,.....


من میخوام دسترسی به تمامی فایل های پوشه class و پوشه captcha رو ببندم تا هکر بهش دسترسی نداشته باشه . و از طرفی دیگه بتونم تمامی این فایل هارو تو login.php - logout.php ,..... فراخوانی کنم و از classs ها بتنم تو صفحات استفاده کنم . فقط میخوام دسترسی نداشته باشن به class تا تغییرش بدن یا هکش کن . :)

من اومدم از htaccess استفاده کردم و تو پوشه class و captcha برای هرپوشه یک فاسل .htaccess ساختم و این کد رو توشون قرار دادم :




Options –Indexes



حالا به نظرتون کار درستیه؟ تکنیک هایی دیگه هم هست که نتونن دسترسی داشته باشن؟
ممنون از پاسختون

Yas-Host
June 14th, 2016, 16:20
بله کار درستی است.

میتونید دسترسی به فولدر ها را نیز deny کنید (چون کلاس ها توسط یوزر باز نمی شود و فقط توسط php دسترسی پیدا کنند).

همچنین در فولدر ها index.html قرار دهید یا redirect کد تعریف کنید.

iHSG
June 14th, 2016, 16:35
سلام
اگه فایل های php داخل اون پوشه ها فقط توسط php با توابع (include یا require) فراخوانی میشن بهترین کار از نظر من اینه که اون فایل ها رو خارج از پوشه public_html بذارید و به صورت آدرس کامل اینطوری /home/myuser/myfile.php فراخوانیش کنید.البته این در صورتیه که همانطور که گفتم فایل فقط از طریق php فراخوانی بشه وگرنه اگر فایل باید توسط کاربر هم مستقیم اجرا بشه که باید داخل public_html باشه.

shahinmq
June 14th, 2016, 16:52
درود بر شما.

نمی دونم پروژتون چقدر جلو رفته ، اما اگر ابتدای کار هستید توصیه می کنم خودتون یه روتینگ بنویسید.حالا روتینگ چیه ؟

اگر بخوام خیلی خیلی ساده بهتون بگم ، فرض کنید آدرس سایت شما folan.com باشه . حالا هرچیزی جلوی آدرستون اومد به صورت گت(Get) به آدرسی ارسال بشه ، مثلا فرض کنید برای صفحه ی عضویت : folan.com/users/register باشه.

اولا که شما می تونید داخل روتینگتون هر / (اسلش) را جدا کنید ، که ساده ترین راه استفاده از تابع explode هستش و بگید اولین مقدار یعنی (users) رو بگیر و برو داخل فایل کلاس ها و دنبال users.php بگرد و متد(تابع) register را فراخوانی کن.

حال داخل متد register میگید که برای این صفحه فلان قالب بارگذاری بشه و فلان دستورات اجرا بشه.

چند مزیت داره ، اول اینکه آدرسی که شما تولید کردید ، داخل هاستتون اصلا وجود نداره ، یعنی فولدری به نام users اصلا موجود نیست و درواقع مجازی هستش
دومین مزیت در سئو موثر هستش.

اگر نمی تونید روتینگ ایجاد کنید ، ساده ترین راه حل استفاده از فریمورک هستش (فریمورک ها نیز این قابلیت رو دارند)
اگر باز هم نمی تونید از فریمورک خاصی استفاده کنید ، ما یک فریمورک نوشتیم که کار با اون خیلی خیلی سادست ، اگر اصفهان ساکن هستید ، حدود 1 ساعت براتون نحوه ی استفاده از اون رو می تونم توضیح بدم تا کارتون راه بیفته.

برای ایجاد روتینگ باید داخل htaccess این کد رو وارد کنید :



<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?url=$1 [PT,L]
</IfModule>


روش خودتون هم درسته و مشکلی نداره .

miladtnt
June 15th, 2016, 11:03
درود بر شما.

نمی دونم پروژتون چقدر جلو رفته ، اما اگر ابتدای کار هستید توصیه می کنم خودتون یه روتینگ بنویسید.حالا روتینگ چیه ؟

اگر بخوام خیلی خیلی ساده بهتون بگم ، فرض کنید آدرس سایت شما folan.com باشه . حالا هرچیزی جلوی آدرستون اومد به صورت گت(Get) به آدرسی ارسال بشه ، مثلا فرض کنید برای صفحه ی عضویت : folan.com/users/register باشه.

اولا که شما می تونید داخل روتینگتون هر / (اسلش) را جدا کنید ، که ساده ترین راه استفاده از تابع explode هستش و بگید اولین مقدار یعنی (users) رو بگیر و برو داخل فایل کلاس ها و دنبال users.php بگرد و متد(تابع) register را فراخوانی کن.

حال داخل متد register میگید که برای این صفحه فلان قالب بارگذاری بشه و فلان دستورات اجرا بشه.

چند مزیت داره ، اول اینکه آدرسی که شما تولید کردید ، داخل هاستتون اصلا وجود نداره ، یعنی فولدری به نام users اصلا موجود نیست و درواقع مجازی هستش
دومین مزیت در سئو موثر هستش.

اگر نمی تونید روتینگ ایجاد کنید ، ساده ترین راه حل استفاده از فریمورک هستش (فریمورک ها نیز این قابلیت رو دارند)
اگر باز هم نمی تونید از فریمورک خاصی استفاده کنید ، ما یک فریمورک نوشتیم که کار با اون خیلی خیلی سادست ، اگر اصفهان ساکن هستید ، حدود 1 ساعت براتون نحوه ی استفاده از اون رو می تونم توضیح بدم تا کارتون راه بیفته.

برای ایجاد روتینگ باید داخل htaccess این کد رو وارد کنید :



<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?url=$1 [PT,L]
</IfModule>


روش خودتون هم درسته و مشکلی نداره .

اینم چیز خوبیه قبلا هم گفته بودم بقکر روتینگ باشید(وقتی پروژتونو شروع میکردین)

htaccess تنها بدی که داره برای سرعت مناسب نیست برای همینم nginx کنارش گذاشته

eliyaomid
June 16th, 2016, 04:21
اینم چیز خوبیه قبلا هم گفته بودم بقکر روتینگ باشید(وقتی پروژتونو شروع میکردین)

htaccess تنها بدی که داره برای سرعت مناسب نیست برای همینم nginx کنارش گذاشته
😁😁😁😁😁😁😁