הוסטס - פורום אחסון האתרים הגדול בישראל

הוסטס - פורום אחסון האתרים הגדול בישראל (https://hosts.co.il/forums/index.php)
-   תכנות - מדריכים, code snippets (https://hosts.co.il/forums/forumdisplay.php?f=68)
-   -   [מדריך] PHP - הגנה על דף באמצעות HTTP_AUTH (https://hosts.co.il/forums/showthread.php?t=19245)

null 07-04-06 07:39

[מדריך] PHP - הגנה על דף באמצעות HTTP_AUTH
 
כמו תמיד, נתחיל עם הקוד ואז נפרט :)
רק שהפעם, יש דוגמא לצפיה: צפה בדוגמא

PHP קוד:

<?
function auth_user() {
  
$realm "Protected Page";
  
header('WWW-Authenticate: Basic realm="['.$realm.'] ID:"');
  
header('HTTP/1.0 401 Unauthorized');
  die(
"Unauthorized access forbidden!");
}

if(isset(
$_GET['logout'])) {
  
auth_user();
}
if (!isset(
$_SERVER['PHP_AUTH_USER']) || !isset($_SERVER['PHP_AUTH_PW'])) {
  
auth_user();
}

if(
$_SERVER['PHP_AUTH_USER'] == "protected" && $_SERVER['PHP_AUTH_PW'] == "page")
{
echo 
"Im Protected Content<br />";
}
else
{
auth_user();
}
    
  if(
$_SERVER['PHP_AUTH_USER'] == "logout") {
    
// message for firefox
    
die("You have successfully logged out.");
  }

if (
ereg("MSIE"$_SERVER['HTTP_USER_AGENT'])) {
  
// Use basic logout
  
echo "<a href=\"".$_SERVER['PHP_SELF']."?logout=y\">Logout</a>";
} else {
  
// use other logout for Firefox and other browsers
  
echo "<a href=\"http://logout:logout@".
$_SERVER['SERVER_NAME']."/".$_SERVER['PHP_SELF']."\">Logout</a>";
}
?>


בואו נתחיל לתת הסברים |קורץ|

PHP קוד:

function auth_user() {
  
$realm "Protected Page";
  
header('WWW-Authenticate: Basic realm="'.$realm.'"');
  
header('HTTP/1.0 401 Unauthorized');
  die(
"Unauthorized access forbidden!");



הפונקציה שתשמש אותנו רבות.
מה שהיא בעצם עושה שלבקש מהדפדפן להקביץ חלון עם בקשה לשם משתמש וסיסמה.
אם המשתמש לוחץ על CANCEL זה מציג לו הודעה בהתאם (ראה die(); ).

PHP קוד:

if(isset($_GET['logout'])) {
  
auth_user();
}
if (!isset(
$_SERVER['PHP_AUTH_USER']) || !isset($_SERVER['PHP_AUTH_PW'])) {
  
auth_user();



אם אפשרות היציאה מופעל, צא, ובקש שם משתמש וסיסמה מחדש.
אם לא הוקש שם משתמש או סיסמה, בקש אותם שוב.

PHP קוד:

if($_SERVER['PHP_AUTH_USER'] == "protected" && $_SERVER['PHP_AUTH_PW'] == "page")
{
echo 
"Im Protected Content<br />";
}
else
{
auth_user();



אם השם משתמש שווה ל- protected והסיסמה שווה ל- page הראה את התוכן המוסתר.
(להלן: Im Protected Content)
אם השם משתמש לא שווים למה שצוין, בקש אותם שוב.

PHP קוד:

  if($_SERVER['PHP_AUTH_USER'] == "logout") {
    
// message for firefox
    
die("You have successfully logged out.");
  }

if (
ereg("MSIE"$_SERVER['HTTP_USER_AGENT'])) {
  
// Use basic logout
  
echo "<a href=\"".$_SERVER['PHP_SELF']."?logout=y\">Logout</a>";
} else {
  
// use other logout for Firefox and other browsers
  
echo "<a href=\"http://logout:logout@".
$_SERVER['SERVER_NAME']."/".$_SERVER['PHP_SELF']."\">Logout</a>";



קטע היציאה, מותאם לרוב הדפדפנים.

הקוד בצורה נוחה:
קוד:

<?
function auth_user() {
  $realm = "Protected Page";
  header('WWW-Authenticate: Basic realm="['.$realm.'] ID:"');
  header('HTTP/1.0 401 Unauthorized');
  die("Unauthorized access forbidden!");
}

if(isset($_GET['logout'])) {
  auth_user();
}
if (!isset($_SERVER['PHP_AUTH_USER']) || !isset($_SERVER['PHP_AUTH_PW'])) {
  auth_user();
}

if($_SERVER['PHP_AUTH_USER'] == "protected" && $_SERVER['PHP_AUTH_PW'] == "page")
{
echo "Im Protected Content<br />";
}
else
{
auth_user();
}
   
  if($_SERVER['PHP_AUTH_USER'] == "logout") {
    // message for firefox
    die("You have successfully logged out.");
  }

if (ereg("MSIE", $_SERVER['HTTP_USER_AGENT'])) {
  // Use basic logout
  echo "<a href=\"".$_SERVER['PHP_SELF']."?logout=y\">Logout</a>";
} else {
  // use other logout for Firefox and other browsers
  echo "<a href=\"http://logout:logout@".
$_SERVER['SERVER_NAME']."/".$_SERVER['PHP_SELF']."\">Logout</a>";
}
?>


*תודה לבניה על הרעיון.
*כל הזכויות שמורות לקובלנקו איגור.

תהנו!

תגובות, שאלות, הערות יתקבלו בברכה. :)

SyPhEx 07-04-06 09:05

אתה יכול לבוא אליי למסנג'ר
אני צריך לשאול אותך בקשר למדריך הזה שרשמת..

אחלה מדריך :) תודה

yNaxon 07-04-06 09:10

אחלה מדריך :P

Shay 07-04-06 10:28

אחלה מדריך איגור-בהצלחה!
ישר כוח!

null 07-04-06 10:30

תודה ;P
למישהו יש שאלות? תגובות?

mlnn 07-04-06 11:19

מדריך מעולה, תודה :)

Try2Guess 07-04-06 18:51

פשש, חידשת שלי =]

amirs_5 07-04-06 19:34

תודה אחי, חידשת לי ....

null 07-04-06 19:38

בבקשה לשניכם.
תבחרו את השיטה שאתם רוצים.
אפשר לעשות עוד שטויות באבטחת מידע. :)

* אלעד אתה קורא את זה שלח ה"פ [ eLad ]

חבר|94 07-04-06 22:59

לא הבנתי איפו אני מגדיר שזה יוביל לדף שאני רוצה?


כל הזמנים הם GMT +2. הזמן כעת הוא 22:02.

מופעל באמצעות VBulletin גרסה 3.8.6
כל הזכויות שמורות ©
כל הזכויות שמורות לסולל יבוא ורשתות (1997) בע"מ