Доброго времени суток , ребят подскажите есть ли в данном скрипте дырка , а то что то подозрения есть , спасибо
PHP код:
<?php
if ($_POST && isset($_POST['action']) && $_POST['action'] === "give")
{
include ("config/config.php");
mysql_query("SET NAMES cp1251");
mysql_select_db($mysql_connect['dbl'], $connect);
$acc = mysql_real_escape_string($_POST['account']);
$pass = mysql_real_escape_string($_POST['password']);
$r = mysql_query("SELECT password FROM `account_data` WHERE name='$acc';");
if (mysql_num_rows($r) > 0){
$row = mysql_fetch_array($r);
if ((base64_encode(pack("H*", sha1(utf8_encode($pass))))) == $row['password']){
mysql_select_db($mysql_connect['dbg']);
$player = mysql_real_escape_string($_POST['player']);
$r = mysql_query("SELECT `id` FROM `players` WHERE `name`='".$player."' AND `account_name`='".$acc."';");
if (mysql_num_rows($r) > 0)
{
$id = mysql_fetch_assoc($r);
$id = $id['id'];
$ip = explode('.', $_SERVER['REMOTE_ADDR']);
$ip = $ip[0] . '.' . $ip[1] . '.' . $ip[2] . '.' . $ip[3];
$file = file($topfile);
$i = 0;
foreach ($file as $line)
{
$parts = explode("\t", $line);
$date = $parts[1];
$name = $parts[3];
$type = $parts[4];
$search_name = (eregi($player, $name));
if(!empty($search_name))
{
$sql = mysql_query("SELECT * FROM `top_vote` WHERE `name` = '".$player."' AND `time` = '".$date."';");
$num_rows = mysql_num_rows($sql);
$check = false;
if ($num_rows == 0) $check = true;
if ($check)
{
$added = false;
if ($type == 2)
{
$count = $top_bonus['count_sms'];
}
else
{
$count = $top_bonus['count_site'];
}
$sql = mysql_query("SELECT `money` FROM `account_data` WHERE `name` = '".$acc."';");
if (mysql_num_rows($sql) > 0)
{
$sql = mysql_query("UPDATE `account_data` SET money=`money`+".$count." WHERE name ='".$acc."';");
$added = mysql_affected_rows();
}
else
{
$ins_id = $char['id'].rand(0,999);
$chk = mysql_fetch_row(mysql_query("SELECT `money` FROM `account_data` WHERE name = '".$acc."';"));
if($chk['0'] != '0') {
$ins_id = $char['id'].rand(0,999);
}
$sql = mysql_query("INSERT INTO `account_data` SET money='".$count."', name='".$acc."';");
$added = mysql_affected_rows();
}
if($added)
{
mysql_query("INSERT INTO `top_vote` VALUES ('".$player."', '".$ip."', '".$date."', '".$type."');");
$i = $i+$count;
}
}
}
$text = "<span style='color:green'>Получено ".$i." поинтов</span><br>";
}
}
else
{
$text = "<span style='color:red'>Персонаж не существует.</span><br>";
}
}
else
{
$text = "<span style='color:red'>Ошибка при авторизации: Вы указали неверный пароль.</span><br>";
}
}
else
{
$text = "<span style='color:red'>Ошибка при авторизации: Такой аккаунт не существует.</span><br>";
}
mysql_close($connect);
}
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Хочу награду за голосование</title>
<link href="css/style.css" type="text/css" rel=stylesheet>
<script src="js/jquery.js" type="text/javascript"></script>
<script src="js/jquery.jNice.js" type="text/javascript"></script>
</head>
<body>
<script type="text/javascript">//<![CDATA[
function isAlphaNumeric(value) {
return value.match(/^[a-zA-Z0-9]+$/_);
}
function checkform(f) {
if (f.account.value == "") {
alert("Не введен аккаунт");
return false;
}
if (!isAlphaNumeric(f.account.value)) {
alert("Некорректный логин! Используйте только символы и цифры!");
return false;
}
if (f.password.value == "") {
alert("Не введен пароль");
return false;
}
if (!isAlphaNumeric(f.password.value)) {
alert("Некорректный пароль! Используйте только символы и цифры!");
return false;
}
if (f.player.value == "") {
alert("Не введено имя игрока");
return false;
}
return true;
}//]]>
</script>
<div id="wrapper">
<div class="tooltip"></div>
<form class="jNice" action="" id="form" method="post" onsubmit="return checkform(this)">
<table cellSpacing="0" cellPadding="3" align="center" width="400px" height="80" border="0">
<tbody>
<tr>
<td align="right" width="100"><strong>Логин</strong>:</td>
<td><input id="account" size=30 name="account" title="Ваш аккаунт"/></td>
</tr>
<tr>
<td align="right"><strong>Пароль</strong>:</td>
<td><input id="password" type="password" size=30 name="password" title="Ваш пароль"/></td>
</tr>
<tr>
<td align="right"><strong>Имя игрока</strong>:</td>
<td><input id="player" size=30 name="player" title="Имя игрока за которого хотите получить бонус"/></td>
</tr>
<tr>
<td><input type="hidden" name="action" value="give"></td>
<td><input id="submit" type="submit" value="Получить" title="Получить ваш бонус за голосование""/>
<input type="reset" value="Сброс" title="Сброс полей"/>
</td>
</tr>
<tr>
<td></td>
</tr>
<tr>
<td colspan="2"><center><?php echo $text ?></center></td>
</tr>
</tbody>
</table>
</form>
<script type="text/javascript">
$("#form :input").tooltip({
position: "center right",
offset: [-2, 10],
effect: "fade",
opacity: 0.7,
tip: '.tooltip'
});
</script>
</div>
</body>
</html>