PDA

View Full Version : کاربرد تابع هدر



habibvafapour
شنبه 30 دی 1391, 20:25 عصر
سلام دوستان کسی میتوانه بگه کاربرد این متد هدر با این پارامتر چی هست ؟

<?php
header('WWW-Authenticate: Negotiate');
header('WWW-Authenticate: NTLM', false);
?>
ممنون از کمک های فراوان

mtchabok
شنبه 30 دی 1391, 20:50 عصر
سلام
این لینک رو ببینید
http://cxf.apache.org/docs/client-http-transport-including-ssl-support.html

habibvafapour
شنبه 30 دی 1391, 22:01 عصر
اگر بخواهیم برای امنیت صفحه ای از تابع هدر با پارامتر های مشخص شده استفاده کنیم
باز هم هکرها راهی برای رسیدن به سورس کد مورد نظر دارن ؟
اصلا اگر بخواهیم در صفحه مشخصات دیتابیس رو وارد کنیم از تابع هدر برای باز نشدن صفحه استفاده کنیم کافی است ؟

habibvafapour
شنبه 30 دی 1391, 23:39 عصر
این تابع header سه تا پارامتر داره که نه توی سایت خود php ونه سایت w3 چیزی درست و حسابی دربارش پیدا میکنی هرجا هم که دیدم فقط location استفاده میکردن
:ناراحت:

mtchabok
یک شنبه 01 بهمن 1391, 00:09 صبح
عزیزه من اول لینک منبع رو ببین
http://php.net/manual/en/function.header.php
خوب حالا توضیح این تابع :
ارگومنت اول که یک رشته هست و مربوط به دستور ارسالی از سمت سرور به کلاینت .
آرگومنت دوم مربوط به جایگزین شدن دستور هست به این منظور که اگه دستور یا همون آرگومنت اول قبلا ارسال شده دستور جدید رو جایگزین دستور قبلی کنه در صورتیکه شما این آرگومنت رو مقدار true بدید . به صورت پیشفرض true هست .
آرگومنت سوم هم برای ارسال کد پاسخ به کلاینت هست که باید از نوع عدد صحیح باشه مثلا همون کد معروف 404 خودمون که میگه فایل مورد نظر وجود نداره .

mtchabok
یک شنبه 01 بهمن 1391, 00:22 صبح
اگر بخواهیم برای امنیت صفحه ای از تابع هدر با پارامتر های مشخص شده استفاده کنیم
باز هم هکرها راهی برای رسیدن به سورس کد مورد نظر دارن ؟
اصلا اگر بخواهیم در صفحه مشخصات دیتابیس رو وارد کنیم از تابع هدر برای باز نشدن صفحه استفاده کنیم کافی است ؟
برای رسید به سورس کد فقط دو راه وجود داره و اونم هک سرور و یا تزریق فایل به هاست .
شما با احراز هویت توسط استاندارد http فقط می تونید نحوه نمایش صفحه رو مدیریت کنید که به چه کاربری چه چیزهای نمایش داده بشه . این قابلیت امکان مدیریت فایل بر روی سرور رو نمیده . این چیزی شبیه به همون کاربری در سایت هست .

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


header('location: login.php');
echo 'important string';

همونطوریکه گفته شد هدر اسکریپت رو خاتمه نمیده و در مثالمون هم تغییر آدرس و هم محتویات مهم ما برای کاربر ارسال میشه در صورتیکه ما میخواستیم فقط کاربر به صفحه login.php بره
می بایست به صورت زیر عمل کرد


header('location: login.php');
exit;
echo 'important string';

که با اینکار خودمون اسکریپت رو خاتمه میدیم تا اطلاعات مهممون برای کاربر ارسال نشه .

habibvafapour
یک شنبه 01 بهمن 1391, 19:05 عصر
header('location: login.php');
exit;
echo 'important string';
وقتی از این کد استفاده میکنم location مستقیماا صفحه را به جای دیگر هدایت میکنه و اطلاعات اصلی من به اجرا در نمی آید
حال اگر در صفحه شماره 1اطلاعاتی وجود دارد که نمیبایست به سورس کد آن دسترسی وجود داشته باشد ولی در صفحه ای دیگر این اطلاعات صفحه 1 توسط اینکلودها استفاده میشود
در این صورت میشه تابع header را جوری تنظیم کرد که با ورود به صفحه 1 انتقال کاربر خودکار انجام شود و دستورات زیر هدر همچنان به کار خود ادامه دهند؟(( یعنی زیر هدر تابعی دارم که میخواهم حفظ باشد و دسترسی به آن غیر ممکن باشد ))

mtchabok
یک شنبه 01 بهمن 1391, 21:31 عصر
برای اینکار میتویند از تعریف ثابت در اولین صفحه استفاده کنید .
مثلا ما صفحه index.php داریم که میخواهیم فایل function.php رو درش لود کنیم ، از این شیوه استفاده می کنیم .

index.php

define('SECURE', true);
include 'function.php';


function.php

if(!defined('SECURE')){
header('location: index.php');
exit;
}

habibvafapour
یک شنبه 01 بهمن 1391, 22:12 عصر
کد
<?php
function h1 ()
{
echo "set";
}
header("location: error.php");
exit;
?>
صفحه اصلی
<?php
include("function.php");
h1();
?>
الان دارم از این نوع دستور استفاده میکنم زمانی که صفحه index رو باز میکنم مستقیم من رو به صفحه error هدایت میکنه یعنی نه دستورات صفحه function اجرا میشود و نه index

mtchabok
دوشنبه 02 بهمن 1391, 03:23 صبح
خوب فایلهارو به صورت زیر ویرایش کردم . نگاهی بندازید :
فایل function.php

<?php
if(!defined('IS_SECURE')){
header("location: error.php");
exit;
}
function h1 ()
{
echo "set";
}
?>


فایل صفحه اصلی

<?php
define('IS_SECURE', true);
include("function.php");
h1();
?>

habibvafapour
دوشنبه 02 بهمن 1391, 10:24 صبح
اره الان این روش خوبی هست ممنون از راهنمایی هاتون