Скрипт L2top - Форум администраторов игровых серверов
Форум администраторов игровых серверов StormWall - Защита от DDos атак
Регистрация Мнения Справка Пользователи Календарь Все разделы прочитаны
Вернуться   Форум администраторов игровых серверов > MMO > Lineage II > Движки сайтов (CMS)

Движки сайтов (CMS)
Обсуждения, решения проблем веб обвязок для ява сервера.

Ответ
Опции темы
Непрочитано 16.08.2009, 19:22   #1
Новичок

Автор темы (Топик Стартер) Скрипт L2top

Добрый день подскажите хочу использовать скрипт для голосования на L2top.ru На сколько он будет защищен от SQL иньекций и всякого рода вещей.В скрипте вижу mysql_escape_string Однако хочу уточнить на сколько скрипт безопасный.Зарание спасибо.

PHP код:
<?
if(!isset($_POST['name'])){
$l2top_id=; // Ваш ID в рейтинге L2Top
?>
<div align="center"><b>Здесь вы можете принять участие в акции «Бонус за голосование».<br>

Для этого необходимо:</b><br>

<font color="#CC0000"> 1.  </font>        Проголосовать за наш сервер в рейтинге L2top.ru: <a href="http://l2top.ru/?voteme=<?php echo"$l2top_id";?>">
<img src="banners/l2top.png"></a><br><br>

  <font color="#CC0000"> 2.  </font>         Получить бонус. Для чего необходимо:<br>
Вписать в форму ниже ник вашего чара
(не путайте с названием аккаунта), ну и нажать кнопку :)<br>
После этого вашему чару в инвентарь будет выдано поощрение
«Фестиваль Адена» в количестве 1 шт.<br>
Чтобы получить бонус ваш ник должен быть в <a href="http://l2top.ru/info/<?php echo"$l2top_id?>/"><b>этом списке</b></a><br><br>
<?
echo '<form action="" method="post">';


echo 
'Ник персонажа<br/>
<input type="text" name="name"/><br/><br/>
<input type="submit" value="Получить бонус"/>

</form></div>'
;


}else{

$bonus_id=   ;     // ID предмета-бонуса (по умолчанию Festival Adena)
$cols_for_vote=  ; // Колличество зачисляемых вещей за одно голосование
$id_l2top=  ; // Ваш ID в рейтинге L2Top

$host=''// сервер на котором установлена база данных L2J
$user=''// имя пользователя от базы данный
$pass=''// пароль пользователя от базы данный
$db=''// название базы данных

$mc mysql_connect($host$user$pass);
if(
$mc){
$db mysql_select_db ($db);
}

if(!
$mc || !$db){

echo 
'Нет соединения с базой данных.';

exit;

}

$name=mysql_escape_string($_POST['name']);

$ch=mysql_query("SELECT charId FROM characters WHERE char_name = '$name';");
$chd=mysql_fetch_assoc($ch);

$char_id=$chd['charId'];
$total=0;
$your_ip $_SERVER['REMOTE_ADDR'];
$dip=explode('.',$your_ip);
$your_ip1 $dip[0].'.'.$dip[1].'.'.$dip[2].'.xxx';

$html = @file_get_contents('http://l2top.ru/info/'.$id_l2top.'/');
if (!
$html || !preg_match_all('/<td>([^<]+)<\/td>/'$html$matches))
$error .= '<div align=center>Не удалось получить информацию с L2Top.ru!<br/></div>';
else
{
foreach (
$matches[1] as $id => $nick)
{
if (
strtolower(trim($nick))==strtolower(trim($name))) {
$voters[] = $matches[1][$id-2];
}
}
if (
$voters != array())
{
foreach (
$voters as $time)
{
$result mysql_query("SELECT * FROM `l2top` WHERE `nick` = '".mysql_escape_string($name)."' AND `time` = '".mysql_escape_string($time)."'");
$row mysql_fetch_assoc($result);
if (
$row == array())
{
$result mysql_query("SELECT * FROM `items` WHERE `owner_id` = ".mysql_escape_string($char_id)." AND `item_id` = 6673");
$row mysql_fetch_assoc($result);
if (
$row == array())
{
$result mysql_query("SELECT MAX(`object_id`)+1 AS `id` FROM `items`");
$row mysql_fetch_assoc($result);
$ins_id $row['id'];
$kk=mysql_query("INSERT INTO items (owner_id, object_id, item_id, count, enchant_level, loc, loc_data, time_of_use, custom_type1, custom_type2, mana_left) VALUES('".mysql_escape_string($char_id)."', '$ins_id', '$bonus_id', '$cols_for_vote', '0', 'INVENTORY', '0', NULL, '0', '0', '-1')") or die("FUCK");
}
else
mysql_query("UPDATE `items` SET `count` = `count` + ".$cols_for_vote." WHERE `owner_id` = ".mysql_escape_string($char_id)." AND `item_id` = 6673");
mysql_query("INSERT INTO `l2top` (`nick`, `ip`, `time`) VALUES ('".$name."', '".mysql_escape_string($your_ip1)."', '".mysql_escape_string($time)."')");
$total += $cols_for_vote;
$error .= '<div align=center>Голос за '$time.' зачислен.<br/></div>';
}
else
$error .= '<div align=center>Голос за '$time.' уже был зачислен.<br/></div>';
}
}
else
$error .= '<div align=center>Ваш голос на сайте L2Top.ru не найден.<br></div>';
}

echo 
$error.'<div align=center><br><b>'.$total.'</b> Festival Adena зачислено вашему персонажу!<br/></div>';

}

?>
Aldarions вне форума Ответить с цитированием
Непрочитано 01.09.2009, 12:16   #2
Герой

По умолчанию Ответ: Скрипт L2top

mysql_escape_string(); - хватает.
Goodday вне форума Ответить с цитированием
Ответ


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


© 2007–2024 «Форум администраторов игровых серверов»
Защита сайта от DDoS атак — StormWall
Работает на Булке неизвестной версии с переводом от zCarot
Текущее время: 08:29. Часовой пояс GMT +3.

Вверх