Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Интернет » Web-программирование » php: защита созданной картинки

Модерирует : Cheery

 Версия для печати • ПодписатьсяДобавить в закладки

Открыть новую тему     Написать ответ в эту тему

Sutar



BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Здравствуйте, вот есть код, который который создает картинку (капч)
 

Код:
<?php
header("Content-type: image/gif");
 
$s = rand(4, 7);
 
$im_bor = imagecreate(1, 1);
imagecolorallocate($im_bor, 255, 255, 255);
 
$im_total = imagecreate((10+($s*7)), 16);
imagecolorallocate($im_total, 211, 211, 211);
 
//часть кода обрезано...
 
imagecopy($im_total, $im_bor, 1, 1, 0, 0, imagesx($im_total)-2, imagesy($im_total)-2);
 
imagegif($im_total);
imagedestroy($im_total);
?>
 

 
этот весть код находится в отдельном файле. После, я на сайте делаю такой вывод:
 

Код:
<img alt="" src="3.php"/>

 
но, эту картинку можно сохранить... с её текущим названием... Я на некоторых сайтах видел, что при сохранение капча, они сохраняются к примеру так "cap.jpg" т.е. название меняется... как это можно осуществить в моем случае?
 
будет актуально, сделать div, фоном которого будет мой капч и сверху прозрачное изображение?

Всего записей: 1150 | Зарегистр. 15-08-2011 | Отправлено: 21:27 07-03-2014 | Исправлено: Sutar, 21:32 07-03-2014
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Sutar
для чего? зачем придумывать то, что ничего не решает и не пригодится?

----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 22:38 07-03-2014
Sutar



BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Cheery
хорошо, ещё такой вопрос, если например для проверки капчи, в js где-то вставить правильный капч для проверки на корректность, это будет менее защищенный способ?
 
капч работает так, что выводит много текста, и указать нужно например тот, который имеет синий цвет, красный или зелёный... т.е. комбинация на картинке и с нужным нам ответом будет не совпадать, т.е. на картинке может быть 2, 5, 8, 9 а условие указать только выделенные символы, то правильный ответ в js будет записан в виде 28.

Всего записей: 1150 | Зарегистр. 15-08-2011 | Отправлено: 22:47 07-03-2014
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Sutar

Цитата:
в js где-то вставить правильный капч для проверки на корректность, это будет менее защищенный способ?

это бессмысленный способ, так как обходится.
проверять нужно только на сервере.
можно, конечно, и там и там, но на сервере - обязательно.
 
ps: на самом деле вот такая задачка, пока что, более интересна для защиты.
Помогите разобраться в чём суть защиты с этим javascript-ом
правда если боты будут мощными и будут запускать js, то и она не поможет

----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 22:49 07-03-2014 | Исправлено: Cheery, 22:50 07-03-2014
Sutar



BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Cheery
действительно, картинки интересная вещь.
но мнеб что-то проще...
 

Код:
например сделать уровнение 2+?=15
и ответ будет 13...

Всего записей: 1150 | Зарегистр. 15-08-2011 | Отправлено: 22:55 07-03-2014 | Исправлено: Sutar, 23:03 07-03-2014
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Sutar

Цитата:
но мнеб что-то проще...  

ну делайте как вам будет удобно..  
но проверка все равно должна идти на сервере.
+ Защита форм от роботов (скрипт)

----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 22:59 07-03-2014
Sutar



BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Какой принцип работы того кода что вы показали? я читаю сейчас, и не много не понимаю...

Всего записей: 1150 | Зарегистр. 15-08-2011 | Отправлено: 23:03 07-03-2014
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Sutar

Цитата:
Какой принцип работы того кода что вы показали?

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

----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 23:06 07-03-2014
Sutar



BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Cheery
А если сделать защиту такой?
есть текст "Добавить комментарий" - например, при нажатие на него, идет "подкачивание формы" с сервера с помощью js - http.open с post.
в php идет генерирования всей формы и в конце появилась форма для заполнения... такой метод будет хорошим?

Всего записей: 1150 | Зарегистр. 15-08-2011 | Отправлено: 23:13 07-03-2014 | Исправлено: Sutar, 23:17 07-03-2014
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Sutar

Цитата:
в php идет генерирования всей формы и т.д.

еще раз - все зависит от целенаправленности "атаки" на конкретный сайт.
если просто бот, то там обычного javascript с элементарными вещами хватит (описано в теме по ссылке выше). если же целенаправленно, то есть анализируя что и откуда подгружается, то это не поможет.

----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 23:19 07-03-2014
Sutar



BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Cheery
Ещё такой вопрос, у меня есть изображение png, в нем есть некоторые части есть прозрачными.
В PHP, я создаю фон, и накладываю ту картинку на созданный фон, но при накладывание прозрачные части накладываемой картинки, остаются прозрачными.
 
Как можно наложить так, чтоб прозрачные части были заполнены определённым цветом?
 

Код:
<?php
 
$im_bor = imagecreate(1, 1);
$im_total = imagecreate(120, 55);
$im = imagecreatefrompng("2.png"); // картинка
 
imagecolorallocate($im_bor, 243, 231, 134);
imagecolorallocate($im_total, 000, 000, 000);
 
imagecopy($im_total, $im_bor, 2, 2, 0, 0, imagesx($im_total)-4, imagesy($im_total)-4);
imagecopy($im_total, $im, 1, 1, 0, 0, imagesx($im), imagesy($im)); //накладываем картинку
 
header("Content-type: image/png");
 
imagepng($im_total);
imagedestroy($im_total);
?>

 
 

Всего записей: 1150 | Зарегистр. 15-08-2011 | Отправлено: 17:08 08-03-2014 | Исправлено: Sutar, 17:09 08-03-2014
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Sutar

Цитата:
Как можно наложить так, чтоб прозрачные части были заполнены определённым цветом?

сделать прямоугольник под размер картинки, залить фоном, наложить поверх картинку с прозрачностью. а потом уже лепить этот прямоугольник куда хочется.

----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 22:44 08-03-2014
Sutar



BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Cheery

Код:
$im3 = imagecreatefrompng("2.png");
$im2 = imagecreate(imagesx($im3), imagesy($im3));
imagecolorallocate($im2, 0, 0, 0);
 
imagecolorallocatealpha($im2, 255, 0, 0, 50);
imagecopy($im2, $im3, 0, 0, 0, 0, imagesx($im3), imagesy($im3));
imagepng($im2);
imagedestroy($im2);

 
чтото не получается...

Всего записей: 1150 | Зарегистр. 15-08-2011 | Отправлено: 23:42 08-03-2014
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Sutar

Цитата:
imagecolorallocatealpha($im2, 255, 0, 0, 50);  

зачем?? сами же сказали, что прозрачность не нужна.

----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 23:46 08-03-2014
Sutar



BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Cheery

Цитата:
зачем?? сами же сказали,


Цитата:
наложить поверх картинку с прозрачностью

или я чтото не так понял?
 
вот полный код:

Код:
<?php
$im3 = imagecreatefrompng("2.png");
$im2 = imagecreate(imagesx($im3), imagesy($im3));
 
imagecolorallocate($im2, 0, 0, 0);
imagecopy($im2, $im3, 0, 0, 0, 0, imagesx($im3), imagesy($im3));
 
$im_bor = imagecreate(1, 1);
$im_total = imagecreate(120, 55);
 
imagecolorallocate($im_bor, 243, 231, 134);
imagecolorallocate($im_total, 000, 000, 000);
 
imagecopy($im_total, $im_bor, 2, 2, 0, 0, imagesx($im_total)-4, imagesy($im_total)-4);
imagecopy($im_total, $im2, 1, 1, 0, 0, imagesx($im3), imagesy($im3));
 
header("Content-type: image/png");
 
imagepng($im_total);
imagedestroy($im_total);
?>

 
результат такой-же

Всего записей: 1150 | Зарегистр. 15-08-2011 | Отправлено: 23:48 08-03-2014
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Sutar
картинки выложите и подробно что хочется в конце.

----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 23:53 08-03-2014
Sutar



BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Cheery
Файл: http://www.putit.ru/MjIzMDk0NjkwNTM5
В результате должно быть такое:  
 
 

Всего записей: 1150 | Зарегистр. 15-08-2011 | Отправлено: 23:58 08-03-2014
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Sutar

Код:
$im3 = imagecreatefrompng("2.png");  
$im2 = imagecreatetruecolor(imagesx($im3), imagesy($im3));  
$fill = imagecolorallocate($im2, 255, 255, 0);
imagefill($im2, 0, 0, $fill);
 
imagecopy($im2, $im3, 0, 0, 0, 0, imagesx($im3), imagesy($im3));  
imagepng($im2);  
imagedestroy($im2);


----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 00:08 09-03-2014 | Исправлено: Cheery, 00:09 09-03-2014
Sutar



BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Cheery
Спасибо.

Всего записей: 1150 | Зарегистр. 15-08-2011 | Отправлено: 00:14 09-03-2014
Открыть новую тему     Написать ответ в эту тему

Компьютерный форум Ru.Board » Интернет » Web-программирование » php: защита созданной картинки


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru