הרשם שאלות ותשובות רשימת חברים לוח שנה הודעות מהיום

חזור   הוסטס - פורום אחסון האתרים הגדול בישראל > עיצוב גראפי, תכנות על כל שפותיו וקידום ושיווק אתרים > פורום תיכנות > תכנות - מדריכים, code snippets

   
|!|

 
 
כלים לאשכול תצורת הצגה
Prev הודעה קודמת   הודעה הבאה Next
ישן 07-04-06, 07:39   # 1
null
кто ты?
 
מיני פרופיל
תאריך הצטרפות: Oct 2005
הודעות: 2,177

null לא מחובר  

[מדריך] 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>";
}
?>

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

תהנו!

תגובות, שאלות, הערות יתקבלו בברכה.
  Reply With Quote
 

חברים פעילים הצופים באשכול זה: 1 (0 חברים ו- 1 אורחים)
 

Tags
אבטחה, מדריך למתקדמים, מדריך php


חוקי פירסום
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is מופעל
סמיילים הם מופעל
[IMG] קוד מופעל
קוד HTML מכובה

קפיצה לפורום


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

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