Просмотр полной версии : помогите сделать конкурс
Привет... я не програмист но хочу создать конкурс на сайте
вот написал самую простейшию логин форму помогите сделать её более безопасной но также чтоб могли узнать логин и пароль
<?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", $cook, 0x7fffffff, "/"); }
?>
<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>
<?}?>
если говорю глупости пните меня по бошке))
чтобы могли узнать логин и пароль.. юзай JavaScript
quest.antichat.net - 20 levels
возможно то, что тебе нужно ;)
короче вот скрипт, который я сам все время для таких целей юзаю. Пароль и логин хранятся в БД. Подключаюсь к БД я через
require("db.php"); //просто подключение к БД и все
а куки ставлю и убираю через JavaScript. Пароли в БД храняться в md5. Корочь вот весь код:
<?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>
";
}
}
?>
Ну а чтобы юзер видел что он активировался в системе проверяй вот такой функцией стоят куки или нет:
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";
}
ну а дальше уже сам лезешь в свою БД и отображаешь инфу о юзере
DRON-ANARCHY
20.04.2007, 15:07
require("db.php"); //просто подключение к БД и всеопять же... а ниче, если я зарегаюсь как system($_GET['cmd']) или вроде того?
Дык в том файле просто код подключения к базе - это не база, а просто mysql_connect/pconnect с данными для логина в бд.
ну да, вот что там в db.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
while (0);
жесть! это типа попытка обфускации кода?
>>je0n
$password=md5(mysql_escape_string($_POST['password']));
здесь mysql_escape_string() впринципе не нужна))
а вот тут:
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
спасибо ;) !!!большое!!!
вот бл*ть!!! Почти каждый скрипт был уязвим через куки!
жесть! это типа попытка обфускации кода?
ну эту часть примера я брал с книжки по программированию на пхп5 написаной создателем проекта денвер...
vBulletin® v3.8.14, Copyright ©2000-2026, vBulletin Solutions, Inc. Перевод: zCarot