PDA

View Full Version : سوال: HTTP Authentication (basic realm)



Trinitro
جمعه 13 فروردین 1389, 05:28 صبح
سلام من متوجه نشدم که امنيت صفحات مرتبط چه طور تامين مي شود.
برخلاف چیزی که تو کتاب نوشته، به نظر ميرسه که اين کار به وسيله basic realm انجام نميشه. من از کد زير استفاده کردم و در نتيجه براي دو صفحه realm متفاوتي داشتم ولي بازهم با ورود به يک صفحه، صفحه دوم هم من را مي شناخت.



<?php
$un='username';
$pwd='the password';
if (!isset($_SERVER['PHP_AUTH_USER']) ||
!isset($_SERVER['PHP_AUTH_PW']) ||
$_SERVER['PHP_AUTH_USER']!=$un ||
$_SERVER['PHP_AUTH_PW']!=$pwd)
{
header('http/1.1 401 unathorized');
header('www-authenticate: basic realm="'.$_SERVER['PHP_SELF'].'"');
exit('<center><strong><h1>ACCESS DENIED</h1></strong></center>');
}
?>

امیـرحسین
شنبه 14 فروردین 1389, 00:51 صبح
من الان تست کردم دیدم که user و pass که وارد می کنیم ذخیره میشه و وقتی ذخیره بشه، تا وقتی user و pass رو عوض نکنید (در IF)، مجددا شناسایی انجام نمیشه. مشکل اینجاست که توسط مرورگر ذخیره میشه یه چیزایی خوندم که توسط خالی کردن cache و کوکی میشه مثل اینکه. ولی تنها نمونه موفق ظاهرا لینک زیره که اینکار رو با Perl کرده ولی با Perl فقط یه header مشخص کرده. اصل روش با htaccess هست:
htaccess logout works. (http://www.webmasterworld.com/forum13/3147.htm)

Trinitro
یک شنبه 15 فروردین 1389, 06:16 صبح
سلام
البته منظور من تامین امنیت صفحات مرتبط به هم بود. یعنی وقتی مثلا من تو Index وارد شدم در صفحات دیگر هم شناسایی بشم (چون این کد را به صورت مشترک استفاده می کنم).
در کتاب O'REILLY خونده بودم که این کار به وسیله realm انجام میشه، یعنی صفحات مرتبط به هم باید realm یکسانی داشته باشند تا با یکبار ورود و Log-in کردن کافی باشه.
ولی با کدی که من آزمایش کردم و در آن realm را با PHP_SELF مقدار دادم تا مقادیر متفاوتی برای صفحات مختلف ایجاد بشه ولی بازهم با یکبار وارد شدن به صفحه مثلا 1 در صفحه 2 هم شناسایی می شدم و احتیاجی به ورود مجدد نبود. (این کد در یک فایل دیگر است و در صفحات مورد نظر require شده )
یعنی شما میگین این کار به basic realm هیچ ارتباطی نداره؟ (ظاهرا هم همینطوری)
ممنون

امیـرحسین
یک شنبه 15 فروردین 1389, 21:32 عصر
من با این روش آشنایی زیادی ندارم ولی ظاهرا میگفتند که این روش چون از cache مرورگر استفاده می کنه، زیاد امن نیست....