|
|
|
| <?php
@mysql_connect("localhost", "root", "");
@mysql_select_db("zadachi");
$q=@mysql_query("select * from news");
if(!$q) die();
echo "<html><head><title>Test page</title></head>
<body>
<center><h1> WELCOME TO THE HOMEPAGE";
echo "<p><a href=Registration.php>РЕГИСТРАЦИЯ</a>
<a href=http://localhost/8115/index.html>PHP</a>
<hr>
<p><b> SITE NEWS</b><body>";
while($r=mysql_fetch_object($q))
{
echo "<body textcolor=#C0F0F0>
<a href=news.php?id=$r->id>$r->title</a><br><br>
</body>";
}
echo ("
</html>
<p><hr>
<center><i> WASHINGTON 2006 </i></center>
<body bgcolor=#C0C0C0>
</body>
<html>");
?>
<?php
$id=addslashes($_GET['id']);
@mysql_connect("localhost", "root", "");
@mysql_select_db("zadachi");
$q=@mysql_query("select * from news where ($id=$GET_id)");
if(!$q) die();
if($r=mysql_fetch_object($q))
{
echo "
<html><head><title>$r->title</title></head>
<body>
<b>$r->title</b><br><br>
$r->body
</body>
</html>
";
}
?> | |
|
|
|
|
|
|
|
для: ZHUR
(23.11.2007 в 22:39)
| | И ??? | |
|
|
|
|
|
|
|
для: ddhvvn
(23.11.2007 в 22:57)
| | На страницу добавляются новости из базы данных News. Вижу, что вывод происходит(Washington смещается вниз), но новостей самих не видно! | |
|
|
|
|
|
|
|
для: ZHUR
(23.11.2007 в 22:39)
| | тег BODY не выводят в цикле. | |
|
|
|
|
|
|
|
для: Trianon
(23.11.2007 в 22:59)
| | Да и без <body> в цикле не фурычит. | |
|
|
|
|
|
|
|
для: ZHUR
(23.11.2007 в 23:06)
| |
$q=@mysql_query("select * from news where ($id=$GET_id)");
|
А здесь всё правильно? | |
|
|
|
|
|
|
|
для: morkovkin
(23.11.2007 в 23:15)
| | Ну вроде да. | |
|
|
|
|
|
|
|
для: ZHUR
(23.11.2007 в 23:19)
| | ну если да, то где у Вас хоть что-нибудь присваивается переменной $GET_id ? | |
|
|
|
|
|
|
|
для: ZHUR
(23.11.2007 в 23:19)
| |
$q=@mysql_query("select * from news where id=$id");
|
может Вы хотели, что-то типо этого? | |
|
|
|
|
|
|
|
для: morkovkin
(23.11.2007 в 23:24)
| | Скрипт должен принимать и обрабатывать Get- параметр id для реализации sql-inj. | |
|
|
|
|
|
|
|
для: morkovkin
(23.11.2007 в 23:15)
| | where id=".$_GET['id'] А вообще не понятно зачем открывать два раза одно соединение?!!! :) | |
|
|
|
|
|
|
|
для: afdm
(23.11.2007 в 23:31)
| | А я что написал? Там же чуть выше он обработал гет-параметр:
$id=addslashes($_GET['id']);
|
| |
|
|
|
|
|
|
|
для: morkovkin
(23.11.2007 в 23:42)
| | 1 result set(s) not freed. Use mysql_free_result to free result sets which were requested using mysql_query() in Unknown on line 0 | |
|
|
|
|
|
|
|
для: ZHUR
(23.11.2007 в 23:49)
| | Добавьте в конец:
mysql_free_result ( $q );
Но проблема врятли в этом..
Посмотрите в php.ini параметр:
mysql.trace_mode = off | |
|
|
|
|
|
|
|
для: morkovkin
(23.11.2007 в 23:55)
| | Ты был прав, но проблема не исчерпана. Попрежнему пусто. | |
|
|
|
|
|
|
|
для: ZHUR
(24.11.2007 в 00:02)
| | Блин, мой минус, что я не "учебник", а всё делаю методом тыка, и здесь трудно потыкать... но попробуй:
$q=@mysql_query("select * from news where (id = $id)");
|
А вообще, может какая то не совместимость мускула с пхп... | |
|
|
|
|
|
|
|
для: morkovkin
(24.11.2007 в 00:05)
| | И так и так уже пробовал. Ничего пока не получается! | |
|
|
|
|
|
|
|
для: ZHUR
(24.11.2007 в 00:12)
| | может имеет смысл @ убрать? | |
|
|
|
|
|
|
|
для: ZHUR
(24.11.2007 в 00:12)
| |
<?php
mysql_connect("localhost", "root", "");
mysql_select_db("zadachi");
$id=addslashes($_GET['id']);
$q=mysql_query("select * from `news` where `id` = ".$id."");
if($r=mysql_fetch_array($q))
{
echo "<html><head><title>".$r['title']."</title></head><b>".$r['title']."</b><br><br>".$r['body']."</html>";
}
?>
|
| |
|
|
|
|
|
|
|
для: morkovkin
(24.11.2007 в 00:18)
| | $id=addslashes($_GET['id']);
$q=mysql_query("select * from `news` where `id` = ".$id."");
Ваш код содержит уязвимость, поскольку само значение, которое Вы обработали addslashes() не обрамлено кавычками/апострофами. А вообще для числовых значений как тут лучше принудительно приводить к integer или float. | |
|
|
|
|
|
|
|
для: Unkind
(24.11.2007 в 00:31)
| | Согласен :) Для начала хотелось бы услышать ответ автора о работоспособности у него кода... а про только числовое значение, хотел позже ему сказать.. | |
|
|
|
|
|
|
|
для: morkovkin
(24.11.2007 в 00:33)
| | я немножко облегчил себе задачу, вместо fetch_object использовал fetch_array и всё получилось | |
|
|
|
|
|
|
|
для: ZHUR
(24.11.2007 в 00:41)
| | Ну я тож в приведенном выше коде использовал Аррэй..
А по поводу защиты запроса, т.к. используются только числовые значения, можно обезопасить себя примерно так:
<?php
mysql_connect("localhost", "root", "");
mysql_select_db("zadachi");
if(preg_match("/[0-9]/",$_GET['id'])) // Разрешаем только числа
{
$q=mysql_query("select * from `news` where `id` = ".$id."");
if($r=mysql_fetch_array($q))
{
echo "<html><head><title>".$r['title']."</title></head><b>".$r['title']."</b><br><br>".$r['body']."</html>";
}
}
else
{
echo "Не балуй!";
}
?>
|
| |
|
|
|
|
|
|
|
для: morkovkin
(24.11.2007 в 00:50)
| | > preg_match("/[0-9]/",$_GET['id'])
Опять же уязвимость. Взломщику достаточно употребить хоть одну цифру в injection, чтобы это обойти. Нужно выделять начало и конец в паттерне: "/^\d+$/". | |
|
|
|
|
|
|
|
для: Unkind
(24.11.2007 в 00:59)
| | Согласен. | |
|
|
|
|
|
|
|
для: ZHUR
(24.11.2007 в 01:01)
| | ZHUR, а Вы кто? | |
|
|
|
|
|
|
|
для: Unkind
(24.11.2007 в 01:04)
| | Я курсант военного института. Сейчас ищу тему на диплом. Постоветовали углубиться в web-технологии, а именно реализовать программно автоматический поиск и эксплуатацию уязвимости SQL-injection. Как вы, наверное, поняли, я-начинающий web-программист. Буду рад дружескому совету! | |
|
|
|
|
|
|
|
для: Unkind
(24.11.2007 в 00:59)
| | Забодали :))) Мы же не яндекс пишем.. Хотя спасибо, что подправляете :) | |
|
|
|
|
|
|
|
для: morkovkin
(24.11.2007 в 01:05)
| | Не Вы ли говорили, что работаете на mamba.ru, или я что-то путаю? :) | |
|
|
|
|
|
|
|
для: Unkind
(24.11.2007 в 01:07)
| | Я пошутил, что там работаю :) Мне просто предложили :) Но я преуспевающий эколог, на данный момент мне это более интересно :) И более оплачиваемее, чем программист :)
p.s. А мамбовцы, что не люди чтоли? Они ж не ходячие словари.. | |
|
|
|
|
|
|
|
для: morkovkin
(24.11.2007 в 01:10)
| | > А мамбовцы, что не люди чтоли? Они ж не ходячие словари
Ммм. Не понял. При чем тут словари? :) | |
|
|
|
|
|
|
|
для: Unkind
(24.11.2007 в 01:16)
| | Ну как бы выражение :) Словари, буквари, книжки, учебники, мануалы :)))
Типо тоже ошибаются :) | |
|
|
|
|
|
|
|
для: morkovkin
(24.11.2007 в 01:17)
| | Ну http://mamba.ru/, кажется, один из самых популярных систем знакомств в СНГ. Допустить там ошибку может дорогого стоить... | |
|
|
|
|
|
|
|
для: Unkind
(24.11.2007 в 01:19)
| | А вы чем занимаетесь? | |
|
|
|
|
|
|
|
для: ZHUR
(24.11.2007 в 01:26)
| | ZHUR, я Вас с кое кем перепутал. :) Поэтому спросил. | |
|
|
|
|
|
|
|
для: Unkind
(24.11.2007 в 01:19)
| | Безусловно, но я не вижу там ничего революционного, чтобы чем-то рисковать. Всё, что там реализовано, проверено "веками". А за 5 лет существования можно залатать любые дыры...
p.s. Блин, не могу выразить мысль, мозг заснул уже :) Работают только пальцы и глаза... | |
|
|
|
|
|
|
|
для: morkovkin
(24.11.2007 в 01:29)
| | НУ Что ВСЕМ сПАСИБО И ДО ЗАВТрА. Новый день - новые проблемы!! | |
|
|
|
|
|
|
|
для: ZHUR
(24.11.2007 в 01:38)
| | И тебе удачи :) | |
|
|
|
|
|
|
|
для: morkovkin
(24.11.2007 в 01:29)
| | Ну раз им нужны PHP-программисты, то, возможно, но и создают что-то новое. | |
|
|
|
|
|
|
|
для: morkovkin
(24.11.2007 в 01:29)
| | Антифлад добавлять так и не хотят... | |
|
|
|
|
|
|
|
для: Unkind
(24.11.2007 в 01:39)
| | Если и создают что-то новое, то я бы посчитал это бесполезным. Да, не спорю, это будет пользоваться популярностью, может даже бешенной, но если ВКонтакте будет существовать и развиваться в том же темпе, то никакие сайты знакомст не нужны. ВКонтакте намного всё удобнее и просто приятнее. А сайты знакомств для "бедных" людей, которым трудно подойти к девушке\парню на улице.. никогда их не понимал... | |
|
|
|