-
March 31st, 2017, 01:41
#1
چطور از مشاهده مستقیم فایل توسط کاربر جلوگیری کنیم؟(با php)
سلام خوبین؟
مثلا من یک فایل دارم در روت سایت به این نام database.php
که کدهای اتصال به دیتابیسم در اون وارد شده
میخوام که کاربری اگه یک وقت ادرس این فایل رو پیدا کرد و این رو زد در ادرس بار مرورگر پیغام بده مثلا forbidden
ولی وقتی از داخل پروژه require_once می کنم کدها اجرا بشه
یعنی سیستم دسترسی به فایل داشته باشه اما کاربرا نه
ممنون
-
-
March 31st, 2017 01:41
# ADS
-
March 31st, 2017, 01:54
#2
عضو انجمن
پاسخ : چطور از مشاهده مستقیم فایل توسط کاربر جلوگیری کنیم؟(با php)

نوشته اصلی توسط
mojtabakh18
سلام خوبین؟
مثلا من یک فایل دارم در روت سایت به این نام database.php
که کدهای اتصال به دیتابیسم در اون وارد شده
میخوام که کاربری اگه یک وقت ادرس این فایل رو پیدا کرد و این رو زد در ادرس بار مرورگر پیغام بده مثلا forbidden
ولی وقتی از داخل پروژه require_once می کنم کدها اجرا بشه
یعنی سیستم دسترسی به فایل داشته باشه اما کاربرا نه
ممنون
سلام وقت بخیر
فایل های مهم که انکلاد میشن و نیازی نیست کاربر مستقیم ببینه بزارید تو یه پوشه بعد کنار فایل ها یه فایل .htaccess ایجاد کنید کد زیر رو وارد و ذخیره کنید.
در اینصورت فقط سرور میتونه بخونه کاربر نمیتونه به اون پوشه دسترسی داشته باشه
-
تعداد تشکر ها ازomid1991 به دلیل پست مفید
-
March 31st, 2017, 02:03
#3
عضو دائم
پاسخ : چطور از مشاهده مستقیم فایل توسط کاربر جلوگیری کنیم؟(با php)
سلام با php هم میتونید چک کنید اسکریپت از کجا لود شده :
کد PHP:
if( $_SERVER['SCRIPT_FILENAME'] == "database.php" ) exit('!');
-
تعداد تشکر ها ازT.Toosi به دلیل پست مفید
-
March 31st, 2017, 02:29
#4
پاسخ : چطور از مشاهده مستقیم فایل توسط کاربر جلوگیری کنیم؟(با php)
ممنون از دو عزیز
انشاالله فردا تست میکنم خبر میدم
-
-
March 31st, 2017, 02:47
#5
پاسخ : چطور از مشاهده مستقیم فایل توسط کاربر جلوگیری کنیم؟(با php)
htaccess برای هر پوشه کار جالبی نیست. بهترین کار این است که در اجرا کننده سایت خود یک متغیر تعریف کنید و در ابتدای هر فایل php این کد رو بررسی کنید و در صورت عدم وجود محتوا اجرا نشود.
مثال:
کد PHP:
if (!class_exists('MyDatastore', false))
{
exit;
}
در اینجا برنامه نویس در ابتدای فایل خود از حضور یک کلاس اطمینان حاصل میکند. اگر کلاس تعریف نشده باشد پس این فایل اشتباه فراخوانی شده و نیازی به اجرا ندارد.
ویرایش توسط MJmoonwalk : March 31st, 2017 در ساعت 02:49
جشنواره وب ایران یا جشنواره معرفی دوستان!!!
-
تعداد تشکر ها از MJmoonwalk به دلیل پست مفید
-
March 31st, 2017, 03:48
#6
عضو جدید
پاسخ : چطور از مشاهده مستقیم فایل توسط کاربر جلوگیری کنیم؟(با php)

نوشته اصلی توسط
mojtabakh18
سلام خوبین؟
مثلا من یک فایل دارم در روت سایت به این نام database.php
که کدهای اتصال به دیتابیسم در اون وارد شده
میخوام که کاربری اگه یک وقت ادرس این فایل رو پیدا کرد و این رو زد در ادرس بار مرورگر پیغام بده مثلا forbidden
ولی وقتی از داخل پروژه require_once می کنم کدها اجرا بشه
یعنی سیستم دسترسی به فایل داشته باشه اما کاربرا نه
ممنون
خیلی راه ها داره دوست عزیز . من دو نمونشو براتون مثال میزنم انشالله که اگه راه حل های دوستان کمکی نکرد راه حل من مثمر ثمر باشه
اولین راه که بهترین و اصولی ترینشه راه حلیه که دوست عزیزمون آقای omid1991 اعلام کردن
دومین راه حل یه کد نویسی خیلی ساده و کوچولو . داخل فایلی که میخواید database.php رو بارگذاری کنید قبل از کد require یا include یه متغییر تعریف کنید با هر نامی و مقدرشو بزارید فالس . مثل کد زیر :
کد PHP:
$redirect="false";
require_once("database.php");
حالا داخل فایل database.php اول از همه ی کد ها یه شرط بنویسید . به این صورت که اگه متغییر $redirect وجود داشت و مقدارش برابر با فالس بود که هیچی کانتینی بده کدهارو اگر نه ردایرکت بشه به یه آدرس دیگه . این هم نمونه کد که میتونید ازش استفاده کنید یا ویرایشش کنید :
database.php :
کد PHP:
if(empty($redirect) OR (string)$redirect != "false"){
header("Location: http://address_morede_nazar");exit();
}
روش دومی که خدمتتون عرض کردم شاید یکم من در آوردی خود من باشه ولی خب به هیچ طریقی نمیشه دورش زد نه از طریق رکوئست نه از طریق متد و صد در صد امنیتش بالاس . با تشکر
ویرایش توسط phpcoding : March 31st, 2017 در ساعت 04:07
انجام پروژه های:php-c#-c++-java-basic-css-html-javascript-python
مشاوره با مسئول پروژه ها-حامد دعایی:+989901567129
تماس با برنامه نویس-امیرعلی استکی:+989017735378
-
تعداد تشکر ها از phpcoding به دلیل پست مفید
-
March 31st, 2017, 10:51
#7
عضو انجمن
پاسخ : چطور از مشاهده مستقیم فایل توسط کاربر جلوگیری کنیم؟(با php)
سلام
اگه فقط با php فراخوانیش میکنید به نظر من بهترین کار گذاشتن فایل خارج از دایرکتوری public_html هستش که دیگه نیاز به هیچ کدوم از روش های بالا نباشه
-