Форум администраторов игровых серверов

Форум администраторов игровых серверов (https://forum.zone-game.info/TT.php)
-   Движки сайтов (CMS) (https://forum.zone-game.info/forumdisplay.php?f=47)
-   -   Скрипт L2top (https://forum.zone-game.info/showthread.php?t=4473)

Aldarions 16.08.2009 19:22

Скрипт 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>';

}

?>


Goodday 01.09.2009 12:16

Ответ: Скрипт L2top
 
mysql_escape_string(); - хватает.


Текущее время: 16:13. Часовой пояс GMT +3.

Powered by vBulletin® Version 3.8.6
Copyright ©2000 - 2021, Jelsoft Enterprises Ltd. Перевод: zCarot