Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   PHP, PERL, MySQL, JavaScript (https://forum.antichat.xyz/forumdisplay.php?f=37)
-   -   Безопасность движков, запаролить веб страницу (https://forum.antichat.xyz/showthread.php?t=11831)

Romaxa55 17.12.2005 00:54

Безопасность движков, запаролить веб страницу
 
Парни, очень нужна помощ, в php я ноль, тема такая, значит для движка php-fusion, хочу установить пароль, (если вдруг угонят хеш, то в админку злоумышленик не попадет) значит редактирую index.php в директории админцентра, в начало индекеса вставлю вот этот код

PHP код:

$LOGIN "demo";
$PASSWORD "demo";
function 
error ($error_message) {
    echo 
$error_message."<BR>";
    exit;
}
if ( (!isset(
$PHP_AUTH_USER)) || ! (($PHP_AUTH_USER == $LOGIN) && ( $PHP_AUTH_PW == "$PASSWORD)) ) {
    
header("WWW-Authenticate: Basic entrer=\"Form2txt admin\"");
    
header("HTTP/1.0 401 Unauthorized");
    
error("error");
}
?> 

ввожу, ничего не происходит, после трех попыток выдает ошибку, подскажите что нужно дописать
Вот сам код индекса
PHP код:

<?php

require_once "../maincore.php";

require_once 
BASEDIR."subheader.php";

require_once 
ADMIN."navigation.php";



if (!
iADMIN || $userdata['user_rights'] == ""fallback("../index.php");

if (!isset(
$pagenum) || !isNum($pagenum)) $pagenum 1;



$admin_images true;

if (
$page1) { $default 1; }

elseif (
$page2) { $default 2; }

elseif (
$page3) { $default 3; }

elseif (
$page4) { $default 4; }

else { 
fallback("../index.php"); }
page

$pageon 
true;

if (
$pagenum == && !$page1$pageon false;

if (
$pagenum == && !$page2$pageon false;

if (
$pagenum == && !$page3$pageon false;

if (
$pagenum == && !$page4$pageon false;

if (
$pageon == falseredirect("index.php?pagenum=$default");

opentable($locale['200']." - v".$settings['version']);

echo 
"<table align='center' cellpadding='0' cellspacing='1' width='100%' class='tbl-border'>\n<tr>\n";

if (
$page1) {

    echo 
"<td align='center' width='25%' class='".($pagenum == "tbl1" "tbl2")."'><span class='small'>\n";

    echo (
$pagenum == "<b>".$locale['ac01']."</b>" "<a href='index.php?pagenum=1'>".$locale['ac01']."</a>")."</span></td>\n";

}

if (
$page2) {

    echo 
"<td align='center' width='25%' class='".($pagenum == "tbl1" "tbl2")."'><span class='small'>\n";

    echo (
$pagenum == "<b>".$locale['ac02']."</b>" "<a href='index.php?pagenum=2'>".$locale['ac02']."</a>")."</span></td>\n";

}

if (
$page3) {

    echo 
"<td align='center' width='25%' class='".($pagenum == "tbl1" "tbl2")."'><span class='small'>\n";

    echo (
$pagenum == "<b>".$locale['ac03']."</b>" "<a href='index.php?pagenum=3'>".$locale['ac03']."</a>")."</span></td>\n";

}

if (
$page4) {

    echo 
"<td align='center' width='25%' class='".($pagenum == "tbl1" "tbl2")."'><span class='small'>\n";

    echo (
$pagenum == "<b>".$locale['ac04']."</b>" "<a href='index.php?pagenum=4'>".$locale['ac04']."</a>")."</span></td>\n";

}

echo 
"</tr>

<tr>

<td colspan='4' class='tbl1'>\n"
;

$result dbquery("SELECT * FROM ".$db_prefix."admin WHERE admin_page='$pagenum' ORDER BY admin_title");

$rows dbrows($result);

if (
$rows != 0) {

    
$counter 0$columns 4;

    
$align $admin_images "center" "left";

    echo 
"<table cellpadding='0' cellspacing='0' width='100%'>\n<tr>\n";

    while (
$data dbarray($result)) {

        if (
checkrights($data['admin_rights']) && $data['admin_link'] != "reserved") {

            if (
$counter != && ($counter $columns == 0)) echo "</tr>\n<tr>\n";

            echo 
"<td align='$align' width='25%' class='tbl'>";

            if (
$admin_images) {

                echo 
"<span class='small'><a href='".$data['admin_link']."'><img src='".ADMIN."images/".$data['admin_image']."' alt='".$data['admin_title']."' style='border:0px;'><br>\n".$data['admin_title']."</a></span>";

            } else {

                echo 
"<span class='small'><img src='".THEME."images/bullet.gif' alt=''> <a href='".$data['admin_link']."'>".$data['admin_title']."</a></span>";

            }

            echo 
"</td>\n";

            
$counter++;

        }

    }

    echo 
"</tr>\n</table>\n";

} else {

    echo 
"<center><br>\n".$locale['401']."<br><br>\n</center>\n";

}

echo 
"</td>\n</tr>\n</table>\n";

closetable();

tablebreak();

opentable($locale['250']);

echo 
"<table align='center' cellpadding='0' cellspacing='0' width='100%'>\n<tr>\n<td width='33%' class='small'>

"
.$locale['251']." ".dbcount("(user_id)""users""user_status<='1'")."<br>

"
.$locale['252']." ".dbcount("(user_id)""users""user_status='2'")."<br>

"
.$locale['253']." ".dbcount("(user_id)""users""user_status='1'")."<br>

</td>

<td valign='top' width='33%' class='small'>

"
.$locale['254']." ".dbcount("(submit_id)""submissions""submit_type='n'")."<br>

"
.$locale['255']." ".dbcount("(submit_id)""submissions""submit_type='a'")."<br>

"
.$locale['256']." ".dbcount("(submit_id)""submissions""submit_type='l'")."

<td valign='top' width='33%' class='small'>

"
.$locale['257']." ".dbcount("(comment_id)""comments")."<br>

"
.$locale['258']." ".dbcount("(shout_id)""shoutbox")."<br>

"
.$locale['259']." ".dbcount("(post_id)""posts")."

</td>\n</tr>\n</table>\n"
;

closetable();



echo 
"</td>\n";

require_once 
BASEDIR."footer.php";

?>


Nova 17.12.2005 13:10

Сделай так

аунтификацию файлом .htaccess такого сожержания
PHP код:

<files имя файла.php>
authname admin_area
authtype basic
authuserfile 
/абсолютный_путь/.htpasswd
require valid-user
</files

файл .htpasswd думаю найдёш как создать в нём прописываеться логин и пароль к этой аунтификаций

вот пример логин и пароль admin/admin
PHP код:

admin:$apr1$zI5.....$gTUgpZdlFuRl8aKjGCSlg


Rebz 17.12.2005 14:07

может я чего-нить конечно и не понимаю))
но где у тебя в примере сама форма куда должен вводиться логин и пароль?
или за это отвечают переменные $php_auth_user и $php_auth_password?

а что за ошибку выводит?

virgoz 17.12.2005 15:02

Вот это в начало index.php вставь:
PHP код:

$login_check="demo";
$pwd_check="demo";

if(!isset(
$login)&&!isset($pwd))
{
   echo 
"<form method=post>";
   echo 
"<html><head><title></title></head><body>\n";
   echo 
"Ëîãèí: <br>\n";
   echo 
"<input type=text name=login size=48 value=''><br>";
   echo 
"Ïàðîëü: <br>\n";
   echo 
"<input type=text name=pwd size=48 value=''><br>";
   echo 
"<input name=\"Submit\" type=submit value='go' >";
   echo 
"</form>";
   echo 
"</body></html>\n";
   exit;
}
else
{
   if(
$login_check!==$login || $pwd_check!==$pwd){
   echo 
"error";exit;}


Только не забудь $login_check и $pwd_check поменять.

qBiN 17.12.2005 15:49

Цитата:

может я чего-нить конечно и не понимаю))
Так оно и есть,парниша хочет аунтификацировать пользователя через Auth Basic(читаем спецификацию http)
Если в 2 строчках будет что-то типа:
PHP код:

if(!isset($_SERVER['PHP_AUTH_USER'])){header('WWW-Authenticate: Basic realm="Authentication"');header('HTTP/1.0 401 Unauthorized');exit;}
else{if(
$_SERVER['PHP_AUTH_USER']!=="user" || $_SERVER['PHP_AUTH_PW']!=="cool"){die('Error');} echo 'ok';} 


ZaCo 17.12.2005 15:49

2virgoz нее он не то имел ввиду... ромаха юзе гугл:
http://ru.php.net/manual/ru/features.http-auth.php

virgoz 17.12.2005 16:45

2ZaCo понял ;))

Romaxa55 17.12.2005 18:21

Парни спасиб большое, ща папробуююю...

Romaxa55 17.12.2005 18:44

Цитата:

Сообщение от virgoz
Вот это в начало index.php вставь:
PHP код:

$login_check="demo";
$pwd_check="demo";

if(!isset(
$login)&&!isset($pwd))
{
   echo 
"<form method=post>";
   echo 
"<html><head><title></title></head><body>\n";
   echo 
"Ëîãèí: <br>\n";
   echo 
"<input type=text name=login size=48 value=''><br>";
   echo 
"Ïàðîëü: <br>\n";
   echo 
"<input type=text name=pwd size=48 value=''><br>";
   echo 
"<input name=\"Submit\" type=submit value='go' >";
   echo 
"</form>";
   echo 
"</body></html>\n";
   exit;
}
else
{
   if(
$login_check!==$login || $pwd_check!==$pwd){
   echo 
"error";exit;}


Только не забудь $login_check и $pwd_check поменять.

Вот этот код работает, но происходит следубщая херня, у мя стоит php-fusion, и при обращении к индексу админки, идет все номано логи пасс ввожу, иде дальше, и начинается открытие страницы и пишет не верный логин и пасс в самрм php-fusion, и происходит переход на главную страницу. что можно предпринять?

qBiN 17.12.2005 21:49

Цитата:

что можно предпринять?
Использовать мой код =)
Вместо echo "ok"; вставь код админки.


Время: 11:14