Архив метки: багфикс

Grand Forum 2 [BETA] безопастность .

В файлах , которые отвечают за создание форумов и категорий есть дыры , которые не обходимо закрыть . Не достаточная фильтрация данных , таким оброзом можно в названии категории или в описание форума выставить форму для загрузки шелла . Пофиксить легко , достаточно дописать фильтрацию htmlspecialchars() на вывод названия и описания форумов и так же на название категорий .

В Архиве пофиксенные файлы ! forum_fix

Продвинутый профиль пользователя ( by merdox )

В сети уже давно скитается эта модификация с не доработками , но бесплатно . В принципе функционал отличный , хотя имеет ряд неисправностей якобы оставлены специально автором против барыг . Они весьма не критичны , за исключением одной ! Есть дырочка , через которую можно просто поснимать всем пользователям бонусы , и никто не заподозрит Вас в этом злодеянии . Все весьма просто и не составит особого труда навредить конкуренту у которого стоит данный мод . Сделать это можно путем правкой исходника , например через тот же самый Firebug !
Заходим в профиль пользователя , открываем исходник страницы, ищем код кнопки и меняем значение в минус . Как ни странно при нажатии кнопки , у жертвы со счета снимаются бонусы . Таким образом можно опустить на бонусы всю Администрацию и пройтись по пользователям .

Для того что бы предотвратить сие злодеяние , в файле present.php добавляем строку проверки —

     if ($amount<10 || $amount>100)
	die("Бонусы в минус ?? Запрещено !)");

Сразу после :

    if ($from == $to)
        die("Вы не можете дарить бонусы себе.");

Вот и все !
Автор находки и багфикса — VictoRD11

Правильное определение IP из под прокси !

В стандартном движке функция getip() не определят реальный IP если кто то заходит на сайт под прокси .

Вот маленький багфикс ,  который будет передавать верный IP из переменной $_SERVER[‘HTTP_X_FORWARDED_FOR’] .

function getip() {
		if(!empty($_SERVER['HTTP_CLIENT_IP'])) {
			$ip_address = $_SERVER['HTTP_CLIENT_IP'];
		} else if(!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) {
			$ip_address = $_SERVER['HTTP_X_FORWARDED_FOR'];
		} else if(!empty($_SERVER['REMOTE_ADDR'])) {
			$ip_address = $_SERVER['REMOTE_ADDR'];
		} else {
			$ip_address = '';
		}
		if(strpos($ip_address, ',') !== false) {
			$ip_address = explode(',', $ip_address);
			$ip_address = $ip_address[0];
		}
   return $ip_address;
 }