Скрипт писал сам, после всех апгрейдов он умеет: - накладывать текст "на лету" (в GET-запросе можно любой текст), - два поля наложения по 18 символов (больше - вылезает за поля), - выбор разных фонов для мема (сейчас 48), - топ последних мемов (9 последних просмотренных), - выдача ссылки для размещения в 4 форматах (прямой путь к картинке, bb-ссылка, html-ссылка, ссылка на страницу).
PHP знаю на базовом уровне, поэтому, видимо, есть проблемы в безопасности. Если видите такие "дыры" - пожалуйста скажите :)
Пара примеров того, что генератор умеет делать:
Заранее большое спасибо за отзывы и баг-репорты! :)
да и вообще, не правильно каждый раз генерировать картинку. я бы сделал генерирование один раз, сохранение на жестком и потом показывать только эту картинку по уникальному ID
Скрытый текст (вы должны войти под своим логином или зарегистрироваться и иметь 30 сообщение(ий)):
У вас нет прав чтобы видеть скрытый текст, содержащийся здесь.
И на главной такая ересь получается. Фильтровать нужно кавычки (или экранировать, если уж они нужны), и всяческие спецсимволы. А у вас получается, что вы напрямую выполняете то, что принимаете от пользователя.
Последний раз редактировалось Crasher69; 06.04.2012 в 18:28.
parserrf, большое спасибо за баг! Но я не знаю, как можно защититься от использования другой картинки.
Сейчас такая конструкция в img.php:
Код:
$img = $_GET['bgpath']; // фоновое изображение
$img = strip_tags($img);
Если не отнимет много времени, parserrf, пожалуйста подскажите, как можно сделать защиту для использования картинок только у себя?
Про перезапись на Главной - это да, но там такой механизм, что циклически последние 9 из базы берутся (текстового файла). Вообще это не очень мешает, т.к. сервис именно для создания нужного мема и публикации его где-то, а на сайте поправлю позже, с защитой от XSS нужно разобраться :)
Crasher69, также огромное спасибо за ценный совет! Перепробовал несколько функций чистки от спецсимволов, потом взял просто сделал preg_match('/[А-Яа-я0-9]/',$string). И все, теперь <alert, XSS, "> и прочие абракадабры не проходят, а если ввести что-то на английском - выдаст предупреждение Это, конечно, полумера, но я PHP практически не знаю, починил, буду разбираться как сделать грамотно.
Просто этой мой первый опыт программирования, хорошо, что сразу выявились ошибки, а Вам, ребята, большое спасибо за профессиональную помощь, очень помогли!
---------- Сообщение добавлено 20:27 ---------- Предыдущее 20:25 ----------
oleg_ug, пожалуйста попробуйте еще раз создать - на этот раз все будет норм. Я просто чинил от атак, правил код, базу чистил от абракадабры, мог в этот момент перезаливать и выскочила ошибка.
---------- Сообщение добавлено 20:29 ---------- Предыдущее 20:27 ----------
Блин, это что-то нереальное!
Я же задал обработку:
Код:
preg_match('/[А-Яа-я0-9]/',$string
А текст "ТАК - > /DEV/NULL" - проходит! Как они это делают? О_О
Неплохой ресурс, была бы возможность настраивать фон и картинку задавать, было бы вообще шикарно! :) з.ы Если ввести знак вопроса или восклицательный знак можно "собирать предметы первой необходимости и никуда не уходить" :)
Последний раз редактировалось zambrotta04; 06.04.2012 в 20:05.