• 0 رای - 0 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
حفظ امنیت فایل های همراه با سیستم
#1
تویه سیستم ها حتما یه فایل هست که به صورت انلکود میاری تو کار سیستم.
خب مثلا فایلی که میخوایم انکلود کنیم این باشه:
کد پی‌اچ‌پی:
<?php
$masoud 
$db->query('select * from `table`");
?>
خب اگر از آدرس مستقیم این فایل وارد بشی مثلا :
http://site.name/include/query.php
حتما ارور های که حاوی نشناختن کلاس و.. هست ظاهر میشن.
خب من قبلا با سشن و متغییر جلوی ظاهر شدن این ارور ها رو میگرفتم یعنی در پایان لود شدن سایت مقدار سشن رو تغییر میدادم که هیچ وقت به صورت مستقیم سشن اصلی وجود نداشته باشه که طرف بتونه اون سری ارور ها رو ببینه:
کد پی‌اچ‌پی:
<?php
session_start
();
$_SESSION['index']='ok';
include(
'include/query.php');
$_SESSION['index']='no';
?>
و یا با استفاده از چک کردن موجود بودن کلاس ها و توابع
ولی خب دنبال یه راهی هستم که بهتر از اینا باشه(هر چند ارور رپورتینگ رو هم میشه خاموش کرد ولی من میخوام اصلا ارور نده نه اینکه ارور بده ولی مخفی باشه)
طراحی و برنامه نویسی صفحات پویا - Iranveb.net
پورتال جدیدترین اخبار داخل و خارج کشور - Iranveb.com
  پاسخ
تشکر شده توسط :
#2
نقل قول:خب من قبلا با سشن و متغییر جلوی ظاهر شدن این ارور ها رو میگرفتم یعنی در پایان لود شدن سایت مقدار سشن رو تغییر میدادم که هیچ وقت به صورت مستقیم سشن اصلی وجود نداشته باشه که طرف بتونه اون سری ارور ها رو ببینه:
من متوجه نشدم ، سشن چه ربطی به نمایش خطا داشت ؟ Huh

نمی دونم دقیقا چیکار می خوای بکنی اما این یکی از راهاش هست
index.php

کد پی‌اچ‌پی:
<?php

/**
 * @author hidensoft
 * @copyright 2009
 */
define(PATH,__FILE__);

include(
'no-access.php');

?>

no-access.php

کد پی‌اچ‌پی:
<?php

/**
 * @author hidensoft
 * @copyright 2009
 */

if ( ! defined('PATH')) exit('No direct script access allowed'); 

?>

با این کد شما نمی تونید فایل no-access.php رو بصورت مستقیم از طریق URL فراخوانی کنید. می تونی بجای exit از header استفاده کنی و کاربر رو به صفحه که دوست داری هدایت کنی

یکی دیگر از راه های خاموش کردن Error Reporting استفاده از @ در ابتدای خط هست
اینم هدر
کد پی‌اچ‌پی:
header('Location: http://www.example.com/'); 
  پاسخ
تشکر شده توسط : zoghal HiddeN
#3
سشن همراه با دیفاین من به کار میبرم یعنی اگر مقدار سشن اکی نبود یا دیفاین موجود نبود اصلا نگذاره فایل اجرا شه و در ابتدای کد exit رو اجرا کنه.

ولی خب گفتم شاید روش قویتری هم باشه.نسبت به سشن و دیفاین یا متغییر.
متغییر که با register_global دور زده میشه.سشن هم اکسپر یه همچین چیزی فکر کنم میشه.دیفاین رو راه مقابلش رو نمیدونم.

دوستان اگه راه بهتری سراغ دارن پیشنهاد بدن
طراحی و برنامه نویسی صفحات پویا - Iranveb.net
پورتال جدیدترین اخبار داخل و خارج کشور - Iranveb.com
  پاسخ
تشکر شده توسط :
#4
نقل قول:دیفاین رو راه مقابلش رو نمیدونم.
نقل قول:دوستان اگه راه بهتری سراغ دارن پیشنهاد بدن
Define بهترین راه هست
  پاسخ
تشکر شده توسط :


پرش به انجمن:


کاربران در حال بازدید این موضوع: 1 مهمان