Добро пожаловать! Это — архивная версия форумов на «Хакер.Ru». Она работает в режиме read-only.
 

Не могу найти баг в скрипте!

Пользователи, просматривающие топик: none

Зашли как: Guest
Все форумы >> [Веб-программинг] >> Не могу найти баг в скрипте!
Имя
Сообщение << Старые топики   Новые топики >>
Не могу найти баг в скрипте! - 2007-06-20 07:04:34.030000   
Zubr1

Сообщений: 55
Оценки: 0
Присоединился: 2007-03-14 12:50:28.693333
Почему не работает?
$_GET['version']=htmlspecialchars($_GET['version']);
If (!$_GET['version']==1) exit('version');
$_GET['sid']=htmlspecialchars($_GET['sid']);
$_GET['lid']=htmlspecialchars($_GET['lid']);
require_once("config.php");

$query="select count(*) from DORP where name='$_GET[sid]' and passs='$_GET[lid]'";
$usr=mysql_query($query);
IF (!$usr) exit();
$total=mysql_result($usr,0);
If ($total>0)
{
$quer="select count(*) from DORP where clickers>0 ";
$usrm=mysql_query($quer);
IF (!$usrm) exit();
$tota=mysql_result($usrm,0);
If (!$tota>0) exit();
$users=mysql_fetch_array($usrm);//chuzhoy
$user=mysql_fetch_array($usr);//nash user
echo $users['page'];
}
Передаешь скрипту параметны он выводит пустую страницу… Хотя есть записи в базе DORP, у челов с именем
name и паролем pass есть clickers типа INT и есть заполненное поле page.Заранее благодарен…
Post #: 1
RE: Не могу найти баг в скрипте! - 2007-06-20 08:30:13.406666   
dx

Сообщений: 337
Оценки: 0
Присоединился: 2006-12-15 13:35:49.700000
Странная строчка… Отрицание $_GET['version'] должно быть равно 1?
quote:

If (!$_GET['version']==1) exit('version');


Эти преобразования не спасут от SQL Injection:
quote:

$_GET['sid']=htmlspecialchars($_GET['sid']);
$_GET['lid']=htmlspecialchars($_GET['lid']);

 
Точно passs или pass?
quote:

…and passs='$_GET[lid]

 
Это ничего не даст, т.к. был выполнен запрос на число не-NULL полей в таблице, удовлетворяющих условию, а не запрос на выборку нужных данных:
quote:

$users=mysql_fetch_array($usrm);//chuzhoy
$user=mysql_fetch_array($usr);//nash user

 
 
И ещё: везде exit'ы не ставь, сделай вывод каких-нибудь предупреждений, чтобы знать, где обламывается программа.
Post #: 2
RE: Не могу найти баг в скрипте! - 2007-06-20 08:52:02.153333   
Zubr1

Сообщений: 55
Оценки: 0
Присоединился: 2007-03-14 12:50:28.693333
$users=mysql_fetch_array($usrm);//chuzhoy
$user=mysql_fetch_array($usr);//nash user
А как подругому переписать?
Post #: 3
RE: Не могу найти баг в скрипте! - 2007-06-20 09:03:02.090000   
dx

Сообщений: 337
Оценки: 0
Присоединился: 2006-12-15 13:35:49.700000
$query="select * from DORP where name='$_GET[sid]' and passs='$_GET[lid]'";
и второй запрос также.
 
И неплохо было бы использовать это:
http://ru2.php.net/manual/ru/function.mysql-real-escape-string.php
или
http://ru2.php.net/manual/ru/function.mysql-escape-string.php
чтобы избежать SQL инъекции.

Post #: 4
RE: Не могу найти баг в скрипте! - 2007-06-20 09:08:59.856666   
dx

Сообщений: 337
Оценки: 0
Присоединился: 2006-12-15 13:35:49.700000
И кстати тогда количество полей будет по-другому вычисляться:
$total=mysql_num_rows($usr);

И если несколько юзеров выбрано будет, то выводить их надо будет в цикле:
while($users=mysql_fetch_assoc($usrm)) { &nbsp; echo $users['page'].'&lt;br&gt;'; }
Post #: 5
RE: Не могу найти баг в скрипте! - 2007-06-21 22:09:37.560000   
AurumZ

Сообщений: 96
Оценки: 0
Присоединился: 2007-04-29 22:08:57.533333
А почему бы от  SQL-инъекций не использовать регулярные выражения? Тем более когда это касается логина и пароля.
Post #: 6
RE: Не могу найти баг в скрипте! - 2007-06-29 12:51:24.810000   
Alexso

Сообщений: 69
Оценки: 0
Присоединился: 2005-06-17 05:44:50
AurumZ, согласен! а лутше делать отдельный клас для работы с базой и там все запросы четко проверять
Post #: 7
Страниц:  [1]
Все форумы >> [Веб-программинг] >> Не могу найти баг в скрипте!







Связаться:
Вопросы по сайту / xakep@glc.ru

Предупреждение: использование полученных знаний в противозаконных целях преследуется по закону.