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

Форум АНТИЧАТ (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=38412)

Doom123 20.04.2007 14:44

помогите сделать конкурс
 
Привет... я не програмист но хочу создать конкурс на сайте

вот написал самую простейшию логин форму помогите сделать её более безопасной но также чтоб могли узнать логин и пароль

PHP код:

<?php
if ($cook 3) {echo "<center><h1>ОШИБИТСЯ МОЖНО ТОЛЬКО 4 РАЗА!!!</h1></center>";} else {
$eror 0;
$cook 0;
$b "Проверка ваших знаний";
if (isset(
$_REQUEST['do'])) do {
if (
$_REQUEST['nm'] != "somename") { $eror 1; break; }
if (
$_REQUEST['ps'] != "somepass") { $eror 1; break; } 
header'refresh: 3; url=/Troy.php' );
echo 
'<h1>Редирект на строницу с трояном через 3 секунды...</h1>';
exit();
}
while (
0);
if (
$eror) {
$b "Вы ниче не знаете блин";
if (isset(
$_COOKIE['cook'])) $cook $_COOKIE['cook'];
$cook++;
setcookie("cook"$cook0x7fffffff"/"); }
?>
<html>
<center><font color="red" size=4><b><? echo $b?></b></font><br>
<form action="<?=$_SERVER['REQUEST_URI']?>" method=post>
Имя:    <input type=text name="nm"><br>
пароль: <input type=password name="ps"><BR>
<input type=submit name="do" value="Давай">
</form></center>
</html>
<?}?>

если говорю глупости пните меня по бошке))

Rebz 20.04.2007 14:49

чтобы могли узнать логин и пароль.. юзай JavaScript
quest.antichat.net - 20 levels
возможно то, что тебе нужно ;)

je0n 20.04.2007 14:55

короче вот скрипт, который я сам все время для таких целей юзаю. Пароль и логин хранятся в БД. Подключаюсь к БД я через
PHP код:

require("db.php");    //просто подключение к БД и все 

а куки ставлю и убираю через JavaScript. Пароли в БД храняться в md5. Корочь вот весь код:
PHP код:

<?php
require("db.php");
if((isset(
$_POST['login']))&&($_POST['login']!="")&&(isset($_POST['password']))&&($_POST['password']!=""))
{
    
$login=mysql_escape_string($_POST['login']);
    
$password=md5(mysql_escape_string($_POST['password']));
    
$query="select * from users where (login='$login' && password='$password');";
    
$db=mysql_query($query);
    if((
$db) && (mysql_num_rows($db)==1))
    {
        
$val=mysql_fetch_assoc($db);
        if(
$val['activate']!="activated")
        {
            echo 
"
            <script language='JavaScript'>
            alert('Ожидается подтверждение регистрации');
            document.location='index.php?r';
            </script>
            "
;
        }
        else 
        {
            echo 
"
            <script language='JavaScript'>
            document.cookie='uid=
$val[uid]';
            document.cookie='pass=
$val[password]';
            alert('Вы успешно вошли в систему аукциона');
            document.location='index.php?r';
            </script>
            "
;
        }
    }
    else 
    {
        echo 
"
            <script language='JavaScript'>
            alert('Неправильное имя пользователя или пароль');
            document.location='index.php?r';
            </script>
        "
;
    }
}
?>

Ну а чтобы юзер видел что он активировался в системе проверяй вот такой функцией стоят куки или нет:
PHP код:

require("db.php");

function 
IsLoged()
{
    if((isset(
$_COOKIE['uid']))&&($_COOKIE['uid']!="")&&(isset($_COOKIE['pass']))&&($_COOKIE['pass']!=""))
    {
        
$uid=$_COOKIE['uid'];
        
$password=$_COOKIE['pass'];
        
$query="select * from users where (uid=$uid && password='$password');";
        
$db=mysql_query($query);
        if(
mysql_num_rows($db)==1)
        {
            
$val=mysql_fetch_assoc($db);
            if(
$val['activate']==="activated")return "YES";else return "WAIT_FOR_ACTIVATION";
        }
        else return 
"NO";
    }
    else return 
"NO";


ну а дальше уже сам лезешь в свою БД и отображаешь инфу о юзере

Doom123 20.04.2007 14:59

Спасибо!

DRON-ANARCHY 20.04.2007 15:07

PHP код:

require("db.php");    //просто подключение к БД и все 

опять же... а ниче, если я зарегаюсь как system($_GET['cmd']) или вроде того?

SMiX 20.04.2007 15:46

Дык в том файле просто код подключения к базе - это не база, а просто mysql_connect/pconnect с данными для логина в бд.

je0n 20.04.2007 16:06

ну да, вот что там в db.php:
PHP код:

<?php
$db_user
="root";
$db_host="localhost";
$db_pass="";
$db_name="auction";
if(!
mysql_connect($db_host,$db_user,$db_pass))
{
  echo 
"Не могу подключиться к базе данных. Обратитесь к администратору.";
  exit;    
}
mysql_select_db($db_name);
?>

Извиняюсь, что там везде про аукцион написано :)... Просто сейчас именно его пишу и куски оттуда выдираю :)

nc.STRIEM 20.04.2007 20:10

PHP код:

while (0); 

жесть! это типа попытка обфускации кода?

>>je0n
PHP код:

$password=md5(mysql_escape_string($_POST['password'])); 

здесь mysql_escape_string() впринципе не нужна))

а вот тут:
PHP код:

function IsLoged()
{
    if((isset(
$_COOKIE['uid']))&&($_COOKIE['uid']!="")&&(isset($_COOKIE['pass']))&&($_COOKIE['pass']!=""))
    {
        
$uid=$_COOKIE['uid'];
        
$password=$_COOKIE['pass'];
        
$query="select * from users where (uid=$uid && password='$password');";
        
$db=mysql_query($query);
        if(
mysql_num_rows($db)==1)
        {
            
$val=mysql_fetch_assoc($db);
            if(
$val['activate']==="activated")return "YES";else return "WAIT_FOR_ACTIVATION";
        }
        else return 
"NO";
    }
    else return 
"NO";


какраз надо! sql-inj

je0n 20.04.2007 20:46

спасибо ;) !!!большое!!!

вот бл*ть!!! Почти каждый скрипт был уязвим через куки!

Doom123 21.04.2007 17:02

Цитата:

Сообщение от nc.STRIEM
жесть! это типа попытка обфускации кода?

ну эту часть примера я брал с книжки по программированию на пхп5 написаной создателем проекта денвер...


Время: 02:03