Перейти к контенту

[2.1.x]Продвинутый код безопасности 3.1


Рекомендуемые сообщения

можно подробне про установку на 1.3

как я понял изменения нужно делать в sources/functions.php

но там после

function show_gd_img($content="")

стоит это

{
global $ibforums, $DB;

			flush();

			@header("Content-Type: image/jpeg");

			if ( $ibforums->vars['use_ttf'] != 1 )
			{
					$font_style = 5;
					$no_chars   = strlen($content);

					$charheight = ImageFontHeight($font_style);
					$charwidth  = ImageFontWidth($font_style);
					$strwidth   = $charwidth * intval($no_chars);
					$strheight  = $charheight;

					$imgwidth   = $strwidth  + 15;
					$imgheight  = $strheight + 15;
					$img_c_x	= $imgwidth  / 2;
					$img_c_y	= $imgheight / 2;

					$im	   = ImageCreate($imgwidth, $imgheight);
					$text_col = ImageColorAllocate($im, 0, 0, 0);
					$back_col = ImageColorAllocate($im, 200,200,200);

					ImageFilledRectangle($im, 0, 0, $imgwidth, $imgheight, $text_col);
					ImageFilledRectangle($im, 3, 3, $imgwidth - 4, $imgheight - 4, $back_col);

					$draw_pos_x = $img_c_x - ($strwidth  / 2) + 1;
					$draw_pos_y = $img_c_y - ($strheight / 2) + 1;

					ImageString($im, $font_style, $draw_pos_x, $draw_pos_y, $content, $text_col);

			}

 

тоесть две {{

Ссылка на комментарий
Поделиться на других сайтах

  • Ответы 764
  • Создана
  • Последний ответ

Лучшие авторы в этой теме

Лучшие авторы в этой теме

{

global $ibforums, $DB;

 

flush();

 

@header("Content-Type: image/jpeg");

 

if ( $ibforums->vars['use_ttf'] != 1 )

{

$font_style = 5;

$no_chars = strlen($content);

 

$charheight = ImageFontHeight($font_style);

$charwidth = ImageFontWidth($font_style);

$strwidth = $charwidth * intval($no_chars);

$strheight = $charheight;

 

$imgwidth = $strwidth + 15;

$imgheight = $strheight + 15;

$img_c_x = $imgwidth / 2;

$img_c_y = $imgheight / 2;

 

$im = ImageCreate($imgwidth, $imgheight);

$text_col = ImageColorAllocate($im, 0, 0, 0);

$back_col = ImageColorAllocate($im, 200,200,200);

 

ImageFilledRectangle($im, 0, 0, $imgwidth, $imgheight, $text_col);

ImageFilledRectangle($im, 3, 3, $imgwidth - 4, $imgheight - 4, $back_col);

 

$draw_pos_x = $img_c_x - ($strwidth / 2) + 1;

$draw_pos_y = $img_c_y - ($strheight / 2) + 1;

 

ImageString($im, $font_style, $draw_pos_x, $draw_pos_y, $content, $text_col);

 

}

...

}

 

Ты привел не весь код, у тебя есть редактор с подсветкой синтаксиса? Вот там подсветятся открывающая и закрывающая скобки.

 

а как на фон добавить шумов?

PHP в руки и вперед :D

Ссылка на комментарий
Поделиться на других сайтах

да действительно был невнимателен

 

{
			global $ibforums, $DB;

			flush();

			@header("Content-Type: image/jpeg");

			if ( $ibforums->vars['use_ttf'] != 1 )
			{
					$font_style = 5;
					$no_chars   = strlen($content);

					$charheight = ImageFontHeight($font_style);
					$charwidth  = ImageFontWidth($font_style);
					$strwidth   = $charwidth * intval($no_chars);
					$strheight  = $charheight;

					$imgwidth   = $strwidth  + 15;
					$imgheight  = $strheight + 15;
					$img_c_x	= $imgwidth  / 2;
					$img_c_y	= $imgheight / 2;

					$im	   = ImageCreate($imgwidth, $imgheight);
					$text_col = ImageColorAllocate($im, 0, 0, 0);
					$back_col = ImageColorAllocate($im, 200,200,200);

					ImageFilledRectangle($im, 0, 0, $imgwidth, $imgheight, $text_col);
					ImageFilledRectangle($im, 3, 3, $imgwidth - 4, $imgheight - 4, $back_col);

					$draw_pos_x = $img_c_x - ($strwidth  / 2) + 1;
					$draw_pos_y = $img_c_y - ($strheight / 2) + 1;

					ImageString($im, $font_style, $draw_pos_x, $draw_pos_y, $content, $text_col);

			}
			else
			{
					$image_x = isset($ibforums->vars['gd_width'])  ? $ibforums->vars['gd_width'] : 250;
					$image_y = isset($ibforums->vars['gd_height']) ? $ibforums->vars['gd_height'] : 70;

					$im = imagecreate($image_x,$image_y);

					$white	= ImageColorAllocate($im, 255, 255, 255);
					$black	= ImageColorAllocate($im, 0, 0, 0);
					$grey	 = ImageColorAllocate($im, 200, 200, 200 );

					$no_x_lines = ($image_x - 1) / 5;

					for ( $i = 0; $i <= $no_x_lines; $i++ )
					{
							// X lines

							ImageLine( $im, $i * $no_x_lines, 0, $i * $no_x_lines, $image_y, $grey );

							// Diag lines

							ImageLine( $im, $i * $no_x_lines, 0, ($i * $no_x_lines)+$no_x_lines, $image_y, $grey );
					}

					$no_y_lines = ($image_y - 1) / 5;

					for ( $i = 0; $i <= $no_y_lines; $i++ )
					{
							ImageLine( $im, 0, $i * $no_y_lines, $image_x, $i * $no_y_lines, $grey );
					}

					$font = isset($ibforums->vars['gd_font']) ? $ibforums->vars['gd_font'] : getcwd().'/fonts/progbot.ttf';

					$text_bbox = ImageTTFBBox(20, 0, $font, $content);

					$sx = ($image_x - ($text_bbox[2] - $text_bbox[0])) / 2;
					$sy = ($image_y - ($text_bbox[1] - $text_bbox[7])) / 2;
					$sy -= $text_bbox[7];

					imageTTFtext($im, 20, 0, $sx, $sy, $black, $font, $content);
			}


			ImageJPEG($im);
			ImageDestroy($im);

			exit();

	}

 

но это не изменило положения

при регистрации следущая картинка _http://img91.imageshack.us/img91/7080/voproswa8.jpg

Ссылка на комментарий
Поделиться на других сайтах

Спасибо за помощь - всё работает :D

 

предлогаю добавить в архив следущее )) :

 

IPB 1.3.1

1) -//-

2) Откройте sources/functions.php:

/---------------------------------/
/	  Найти	 	/
/---------------------------------/


function show_gd_img($content="")
{...заменяемая часть...}


/----------------------------------------------/
/  Заменить все содержимое функции! А именно:

			global $ibforums, $DB;

			flush();

			@header("Content-Type: image/jpeg");

			if ( $ibforums->vars['use_ttf'] != 1 )
			{
					$font_style = 5;
					$no_chars   = strlen($content);

					$charheight = ImageFontHeight($font_style);
					$charwidth  = ImageFontWidth($font_style);
					$strwidth   = $charwidth * intval($no_chars);
					$strheight  = $charheight;

					$imgwidth   = $strwidth  + 15;
					$imgheight  = $strheight + 15;
					$img_c_x	= $imgwidth  / 2;
					$img_c_y	= $imgheight / 2;

					$im	   = ImageCreate($imgwidth, $imgheight);
					$text_col = ImageColorAllocate($im, 0, 0, 0);
					$back_col = ImageColorAllocate($im, 200,200,200);

					ImageFilledRectangle($im, 0, 0, $imgwidth, $imgheight, $text_col);
					ImageFilledRectangle($im, 3, 3, $imgwidth - 4, $imgheight - 4, $back_col);

					$draw_pos_x = $img_c_x - ($strwidth  / 2) + 1;
					$draw_pos_y = $img_c_y - ($strheight / 2) + 1;

					ImageString($im, $font_style, $draw_pos_x, $draw_pos_y, $content, $text_col);

			}
			else
			{
					$image_x = isset($ibforums->vars['gd_width'])  ? $ibforums->vars['gd_width'] : 250;
					$image_y = isset($ibforums->vars['gd_height']) ? $ibforums->vars['gd_height'] : 70;

					$im = imagecreate($image_x,$image_y);

					$white	= ImageColorAllocate($im, 255, 255, 255);
					$black	= ImageColorAllocate($im, 0, 0, 0);
					$grey	 = ImageColorAllocate($im, 200, 200, 200 );

					$no_x_lines = ($image_x - 1) / 5;

					for ( $i = 0; $i <= $no_x_lines; $i++ )
					{
							// X lines

							ImageLine( $im, $i * $no_x_lines, 0, $i * $no_x_lines, $image_y, $grey );

							// Diag lines

							ImageLine( $im, $i * $no_x_lines, 0, ($i * $no_x_lines)+$no_x_lines, $image_y, $grey );
					}

					$no_y_lines = ($image_y - 1) / 5;

					for ( $i = 0; $i <= $no_y_lines; $i++ )
					{
							ImageLine( $im, 0, $i * $no_y_lines, $image_x, $i * $no_y_lines, $grey );
					}

					$font = isset($ibforums->vars['gd_font']) ? $ibforums->vars['gd_font'] : getcwd().'/fonts/progbot.ttf';

					$text_bbox = ImageTTFBBox(20, 0, $font, $content);

					$sx = ($image_x - ($text_bbox[2] - $text_bbox[0])) / 2;
					$sy = ($image_y - ($text_bbox[1] - $text_bbox[7])) / 2;
					$sy -= $text_bbox[7];

					imageTTFtext($im, 20, 0, $sx, $sy, $black, $font, $content);
			}


			ImageJPEG($im);
			ImageDestroy($im);

			exit();

/----------------------------------------------/
/  заменить на:


require_once( $ROOT_PATH.'sources/lib/captcha.php' );
$captcha = new KCAPTCHA($content, $ROOT_PATH."style_images/fonts");
exit();


//Примечание: если вы поместили папку шрифтов не в style_images, то
//укажите свою директорию.

3) -//-

4)Включение Расширенной защиты в Админ панели:

Системные настройки -> Безопасность -> Безопасность (Флуд-контроль против скриптов/ботов) -> Включить при регистрации флуд-контроль против скриптов/ботов? -> Расширенный (Требуется установка GD) -> Сохранить изменения

Установка мода завершена. Текст сообщение рядом с кодом вы сможете поменять ЗДЕСЬ:
lang/[your lang]/register.php и там найти нужный текст.

Ссылка на комментарий
Поделиться на других сайтах

Спасибо большое автору. Мод работает отлично.

 

Один вопрос.

Как можно изменить выводимые цифры в сторону улучшения читаемости. То есть пару пользователей жаловались что понять не могут какие цифры на картинке.

Спасибо.

Ссылка на комментарий
Поделиться на других сайтах

Для этого нужно править много кода. Те пользователи могли бы обновить страницу, может следующий набор символов был бы им более понятен :D
Ссылка на комментарий
Поделиться на других сайтах

А где можно прочитать про такого бота, который якобы может разобрать стандартный код безопаности IPB ?

 

Вот тут, чудо 400 у.е. стоит.

Я уверен что именно им (или анлогичным) и спамят

http://www.botmaster.ru/more1/

Ссылка на комментарий
Поделиться на других сайтах

Кстати, мод, который у меня стоит криво, т.е. два числа надо сложить, и 2 картинки не отображаются - работает отлично! За неделю ни одного бота не зарегилось!!!
Ссылка на комментарий
Поделиться на других сайтах

Кстати, мод, который у меня стоит криво, т.е. два числа надо сложить, и 2 картинки не отображаются - работает отлично! За неделю ни одного бота не зарегилось!!!

 

И ни одного пользователя тоже :D

Ссылка на комментарий
Поделиться на других сайтах

Ну почему же, я подписал с боку, что надо 2 числа сложить, а на то, что не отображается не обращать внимания, а боты думают, что там тоже что-то есть, а на самом деле так знак ровно и плюс :D))

 

Из пользователей зарегилось 2 человека ;)

Ссылка на комментарий
Поделиться на других сайтах

У меня на 2.1.7 и стоит, хоть и криво, но зато работает!

 

Для 2,1,7 ктонить пробовал ставить?

 

 

 

На версию 2.1.7 , ставится все прекрасно! :D

Ссылка на комментарий
Поделиться на других сайтах

У кого есть желание, перепишите "для чайников" и отправьте мне. А то не сильно представляю как "примитивно" должен он выглядить.
Ссылка на комментарий
Поделиться на других сайтах

А у меня вот весь спам пропал :D

Сижу не нарадуюсь ;)

 

ЗЫ: Только присылать не надо!

Ссылка на комментарий
Поделиться на других сайтах

Может уже отвечали, но я спрошу. После установки, при проходе на главную страницу форума вылазит сообщение о ошибке в строке 2608. И белая страница. как это исправить?

 

собственно в этой строке содержиться добавленый в ipsclass.php код

Ссылка на комментарий
Поделиться на других сайтах

Прошу помочь !!

 

У меня пример не принимает для восстановления мыла ... (((

 

Код регистрации не соответствует отображенному. Сгенерирован новый код регистрации. Повторите попытку.

 

И хоть об стену бейся ...

 

Там этот пример посчитать нужно или переписать ??? :D

Ни то - ни то не выходит ... ((

Ссылка на комментарий
Поделиться на других сайтах

Слушайте, а правда. Мод то не предназначен, но тем не менее при попытке восстановить пароль я вижу картинку с набором цифр (НЕ пример на сложение), а проверка на защитный код явно берется из того, что в моде намодифицировали, весь блок Защитный код.

Таким образом восстановление пароля поломалось. Как исправить?

Изменено пользователем aridanew
Ссылка на комментарий
Поделиться на других сайтах


×
×
  • Создать...

Важная информация

Находясь на нашем сайте, вы соглашаетесь на использование файлов cookie, а также с нашим положением о конфиденциальности Политика конфиденциальности и пользовательским соглашением Условия использования.