Голосование. Проблемы

  • Автор темы Valensia
  • Дата начала

Valensia

Guest
Голосование. Проблемы

У меня есть голосование, интересует возможно ли его накрутить? Уж очень подозрительно на сайте возросли голоса... ну и может посоветуете как его улучшить...

Форма:
PHP:
<form name="f" action="golos.php">
<input type="hidden" name="ids" value=<? echo $ids; ?>>
<input type="hidden" name="do" value="golos">
........
<input type="submit" class="input" value=" Голосовать ">
</form>
И код который выполняется при нажатии кнопки проголосовать:
PHP:
if (!isset($_COOKIE["voted"]))
	{
		if(getenv("HTTP_CLIENT_IP")) 
			{ 
				$ip = getenv("HTTP_CLIENT_IP"); 
			} 
		elseif(getenv("HTTP_X_FORWARDED_FOR")) 
			{ 
				$ip = getenv("HTTP_X_FORWARDED_FOR"); 
				if(!strstr($ip, '.'))
					{
						$ip = getenv("REMOTE_ADDR");		
					}
			} 
		else 
			{  
				$ip = getenv("REMOTE_ADDR");
			}	
		$sql="select * from ip where ip='".$ip."'"; 
		$res=db_select($sql);
		$m=mysql_num_rows($res);
		if($m==0)
			{
				$sql="insert into ip values('', '".$ip."')";
				$res=db_select($sql);				
				$start=time();
				$end=mktime(0,0,0,05,15,2005);
				$d=$end-$start;
				@setcookie ("voted","1", $d); 
				$flag=2;
				$kount++;
				$sql="update konk set kount='$kount' where id=".$ids;
				$res=db_select($sql);
			}
		else
			{
				$noo='голос принят раньше';
			}
	}
 

Фанат

oncle terrible
Команда форума
гы.
я, ребята, с вас фигею :)
вы не переводитесь, отважные пинкертоны.
которые упрощают накрутку в разы.
собственными руками
вместо того, чтобы париться с проксями, накрутчик просто подставляет произвольный айпишник в запрос, и твой скрипт радостно его хавает :)
 

Valensia

Guest
Я пробовал подставлять в строку браузера golos.php?
ip=123.43.54.23&ids=2&do=golos но так вроде бы все ок.

Фанат как правильно сделать?
 

Valensia

Guest
А если писать так:?

PHP:
if(getenv("HTTP_CLIENT_IP")) 
            { 
                $afg = getenv("HTTP_CLIENT_IP"); 
            } 
        elseif(getenv("HTTP_X_FORWARDED_FOR")) 
            { 
                $afg = getenv("HTTP_X_FORWARDED_FOR"); 
                if(!strstr($ip, '.')) 
                    { 
                       $afg = getenv("REMOTE_ADDR");         
                    } 
            } 
        else 
            {   
               $afg = getenv("REMOTE_ADDR"); 
            }
Не факт что он подберет имя переменной. Так можно?
 

Фанат

oncle terrible
Команда форума
о господи

-~{}~ 09.04.05 15:14:

Valensia, я сейчас буду объяснять тебе на пальцах. цени.

кроме того, чтобы написать какую-то лажу в адресной строке, есть ещё и другие способы обратиться к твоему скрипту

вся та требуха, которую ты пишешь вмето ремоте_аддр - это просто поля хттп запроса. если тебе известны понятия хттп и хттп запрос.
точно так же, как ты указываешь адрес скрипта и хост при запросе, ты можешь указать и эти заголовки. или форвардед фор или клиент айпи. можно и тот и другой сразу.
поэтому любой сопливый пятиклассник, у которого хватит мозгов скопировать код из пяти строчек в журнале "ксакеп", зафлудит тебя с лёгкостью. Только потому, что ты сам открыл ему дорогу
 

Valensia

Guest
:)
Я серьезно!
Вот еще думаю, а как быть с теми у кого динамический айпи?
 

Valensia

Guest
PHP:
есть ещё и другие способы обратиться к твоему скрипту
Какие? Неужели можно слать скрипту входящие переменные не из браузера?

PHP:
Только потому, что ты сам открыл ему дорогу
$ip = getenv("REMOTE_ADDR"); - тоесть так я дорогу закрываю?
 

DimbIch

Новичок
Valensia
LWP
LWP::UserAgent
LWP::Simple

вот этими модулями можно заслать тебе другие значения переменных на Perl

так же можно

на PHP можно использовать curl

и тд...
а ты говоришь КАК :)
 

fixxxer

К.О.
Партнер клуба
PHP:
<? /* test.php */
echo $_SERVER['HTTP_CLIENT_IP']
?>
telnet localhost 80
GET /test.php HTTP/1.1[enter]
Host: localhost[enter]
Connection: close[enter]
Client-IP: хрен тебе, а не IP-адрес[enter]
[enter]
 

Valensia

Guest
<? /* test.php */
echo $_SERVER['HTTP_CLIENT_IP']
?>

telnet localhost 80
GET /test.php HTTP/1.1[enter]
Host: localhost[enter]
Connection: close[enter]
Client-IP: хрен тебе, а не IP-адрес[enter]
[enter]
Ни хрена себе вариант! А как же правильно писать тогда?
Я теперь использую только REMOTE_ADDR. Он решает этот вопрос?
А что это за прога телнет? Никогда о ней не слышал. Она есть под винду?
 

SiMM

Новичок
> А что это за прога телнет? ... Она есть под винду?
telnet /?
 
Сверху