PHP скрипты. Скрипт гостевой книги на PHP

» мы рассмотрели основные возможности и особенности компонента книги отзывов и приступили к обзору его настроек. В этой статье мы закончим рассмотрение опций расширения и поговорим о защите от спама.

Опции, которые оснащены всплывающими подсказками на русском языке, рассматриваться не будут. Будут рассмотрены только наиболее интересные, важные, не совсем понятные, на мой взгляд, настройки.

Просмотр

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

Цифры в списке ниже соответствуют цифрам на рисунке выше. Включая\отключая соответствующие опции, Вы показываете\скрываете те или иные элементы записей и комментариев.

  1. Отображать Имя в сообщении.
  2. Отображать Email в сообщении.
  3. Отображать Website в сообщении.
  4. Отображать Имя в ответах.
  5. Отображать Тему в комментарии.
  6. Отображать Email в ответах.
  7. Отображать Website в ответах.
  8. Отображать дату в ответах.
  9. Выпадающий список.

Рассмотрим оставшиеся опции.

  • Отображать Сообщения. Если данная опция отключена (выбрано Нет ), то в книге отзывов Joomla не будут отображаться никакие записи, а только форма. По сути, книга станет просто формой обратной связи.
  • Показать комментарии. Вы можете полностью скрыть комментарии к записям. Они обведены голубой рамкой на рисунке выше.
  • Разбивка на страницы. Активирует разделение записей книги на страницы, если их много.
  • Нумерация страниц по умолчанию. Указывает на то, сколько записей должно отображаться на одной странице.
  • Постраничное разбиение (Сообщения). Можно задать значения, которые будут появляться в выпадающем списке (на рисунке выше №9). По сути, это настройка пагинации (постраничной навигации).
  • Включить Cache. Если Вы активировали использование кэша в общих настройках Joomla, включив эту опцию, добавите в кэш сайта страницы с записями книги отзывов. Это может снизить нагрузку на сервер и увеличить скорость загрузки страниц у пользователей. Рекомендую использовать данную опцию. Стоит отметить, что кэширование может привести к тому, что записи в гостевой книге будут появляться не сразу после их публикации (зависит от кэша).

Безопасность

Это одна из первых пяти вкладок (рисунок ниже) настроек Phoca Guestbook, посвящённая безопасности (защиты от спама). Она, в основном, направлена на выявление запрещённого содержимого в отзывах гостевой книги Joomla средствами самого компонента и по Вашим правилам.

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

Для некоторых опций доступны такие параметры:

  • Сохранить. Если сообщение содержит что-то запрещённое, оно будет сохранено в базе данных сайта.
  • Опубликовать. Если сообщение содержит что-то запрещённое, оно будет опубликовано на сайте.
  • Премодерация. Если сообщение содержит что-то запрещённое, то оно будет сохранено в базе данных сайта, но не будет опубликовано до его проверки модератором, который примет соответствующее решение.
  • Отклонить. Если сообщение содержит что-то запрещённое, оно не будет сохраняться в базе данных сайта.

Обратите внимание, что возможно «наложение» срабатывания тех или иных опций безопасней в рамках всех настроек компонента. Например, статус публикации может зависеть от опции Премодерация на вкладке Основные .

Опция Включить очистку HTML позволяет автоматически удалять из записей книги отзывов для Joomla 3 все запрещённые\небезопасные HTML-теги.

Проверка содержания

Опции данной вкладки позволяют настроить интеграцию Phoca Guestbook Joomla и антиспам-сервисов Akismet , Mollom . Сервисы анализируют сообщения, которые оставляют пользователи в книге отзывов. Если эти сообщения похожи на спам, будет предпринято одно из действий, которое Вы зададите в опции Блокировать СПАМ (Проверка содержания) . Действия аналогичны одноимённым параметрам, описанным выше в подразделе Безопасность . Если выбрано Нет (Запрещено) , то проверка на спам при помощи этих сервисов производиться не будет.


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

Также стоит отметить, что на 20.09.2015 для бесплатных аккаунтов сервисов есть лимиты:

  • Akismet – до 50000 проверок в месяц. Примерно, по 1666 проверок в сутки.
  • Mollom – до 50 проверок в сутки. Примерно, 1500 проверок в месяц.

На своём сайте я уже более 2-х лет использую Akismet для защиты комментариев . Пока не наблюдал особых проблем.

Учитывайте, что применение этих сервисов может замедлить процесс отправки записи в книгу отзывов, так как сперва сообщение направляется на сервера этих анти-спам сервисов, там оно обрабатывается, и назад отправляется результат проверки. Если соединение между Вашим сайтом и сервисом перегружено, или сам сервис перегружен, то может быть задержка во времени с момента нажатия пользователем на кнопку «Отправить» и до какой-то реакции Вашего сайта.

Проверка IP Адреса

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

  1. Honeypot.

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

Также есть возможность задать список запрещённых IP-адресов вручную – опция Блокировка IP .

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

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

  • На почтовые ящики приходит множество сообщений. Не всегда удобно искать те или иные цепочки писем.
  • Вероятность попадания сообщения в папку «Спам». Были случаи, когда пользователи не находили письма по данной причине.
  • На личные сообщения и комментарии к статьям я реагирую гораздо быстрее по техническо-организационным причинам.
  • Были случаи, когда пользователи удаляли цепочки писем с нужной им информацией.

Вы можете добавить одну или несколько из следующих капчей: reCAPTCHA, EasyCalc, Math Captcha, TTF Captcha, Mollom Captcha, hnCaptcha, капча Joomla по умолчанию. Для некоторых из них есть настройки (рисунок выше). Отмечу, что добавление нескольких капчей – крайняя мера. Особенно для сайтов с низкой посещаемостью и активностью пользователей.

Для использования, например, reCAPTCHA нужны ключи. Их бесплатно можно получить на сайте капчи .

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

  1. Включите ведение логов добавления записей (ведение журнала). Это можно сделать в Phoca Guestbook – Настройки – Logging , активируйте обе опции (Включить Logging, Сохранение лога журнала ). Если появятся проблемы с базой данных, то отключите Сохранение лога журнала . Если не поможет, то отключите и Включить Logging .
  2. Включите предварительную модерацию. Это можно сделать в опция Премодерация .
  3. Включите уведомления администраторов на почту о новых записях. Это можно сделать в Phoca Guestbook – Настройки – Основные опция Отправить Email .
  4. Включите проверку пользователя. Это можно сделать в Phoca Guestbook – Настройки – Основные опция Отключить проверку пользователя .
  5. Проверка содержания .
  6. Настройте интеграцию с одним или несколькими анти-спам сервисами в настройках компонента на вкладке Проверка IP -адреса .
  7. Укажите уникальный суффикс сессии. Это можно сделать в опция Суффикс сессии .
  8. Включите очистку HTML. Это можно сделать в Phoca Guestbook – Настройки – Безопасность опция Включить очистку HTML .
  9. Включите скрытое поле. Это можно сделать в опция Отобразить скрытые поля .
  10. Постоянно анализируйте журнал событий и вносите соответствующие коррективы в защиту сайта.
  11. Постоянно отслеживайте все письма о новых записях, модерируйте их, а на основании модерации вносите соответствующие коррективы в защиту сайта, например, добавляйте в фильтр IP-адреса, слова и так далее.
  12. Задайте список запрещённых слов. Это можно сделать в Phoca Guestbook – Настройки – Безопасность опции Запрещённые слова, Запрет целые слова . Учитывая особенности языка (падежи, склонения, разнообразие нецензурной лексики и т.д.), а также несовершенство данного фильтра (поиск чётких совпадений), на мой взгляд, это не такие уж эффективные опции.
  13. Задайте ограничения на максимальное количество символов сообщения. По умолчанию – 2000. Это можно сделать в Phoca Guestbook – Настройки – Безопасность опция Количество символов .
  14. Ограничьте количество ссылок, отображаемых в сообщении. Это можно сделать в Phoca Guestbook – Настройки – Безопасность опция Maximum Url . Установите «-1» (без кавычек), если не хотите показывать ссылки вообще.
  15. Задайте список слов, идентифицирующих ссылки в записях книги отзывов для Joomla 3. Это можно сделать в Phoca Guestbook – Настройки – Безопасность опция Слова-индификаторы для запрета ссылок .

Обратите внимание, что добавление большого количества значений в такие поля как: Запрещённые слова, Запрет целые слова, Слова-индификаторы для запрета ссылок и так далее, могут увеличить размер таблицы Phoca Guestbook базы данных, замедлить её работу в целом и замедлить процесс отправки записи в книгу. Например, я пробовал добавлять список из нескольких тысяч слов (ненормативная лексика) и добавление комментария длилось очень долго. Это было не с Phoca Guestbook, но, думаю, что и для этого компонента данная проблема тоже может проявиться.

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

  1. Разрешите добавление записей в книгу отзывов только зарегистрированным пользователям. По умолчанию, Phoca Guestbook настроен именно так. Лучше, чтобы при регистрации был капч.
  2. Отключите редактор Javascript. Это можно сделать в Phoca Guestbook – Настройки – Форма опция Включить редактор Javascript .
  3. Добавьте капч (или несколько) к самой форме добавления записи в книгу отзывов. Это можно сделать в Phoca Guestbook – Настройки – Captcha опция Включить Captcha . Включите капч для всех пользователей.
  4. Включите отсчёт времени и блокировку. Это можно сделать в Phoca Guestbook – Настройки – Captcha опции Включить отсчёт времени и Время блокировки .

Обратите внимание, что можно использовать любое сочетание вышеописанных способов.

Также настоятельно рекомендую позаботиться об общей защите Вашего сайта. Если Вам интересна данная тематика, то ознакомьтесь с циклом статей о защите сайта Джумла. Вот первая (из 12) часть. Также подумайте над чем-то наподобие RSFirewall .

Для отображения на сайте (во фронтальной части) отзывов и формы их добавления служит пункт меню Гостевая книга (рисунок ниже). Его можно создать в менеджере меню Joomla, как и любой другой пункт меню.


Все «уникальные» для этого компонента опции, доступные при настройке пункта меню, разделены на пять вкладок. Большинство опций аналогичны тем, что были рассмотрены в этой и предыдущей статье для самого компонента. Рассмотрим самые интересные, на мой взгляд, параметры. Также не будем затрагивать настройки, одинаковые для всех типов пунктов меню Джумла.

  1. Пункт меню.
  2. Параметры. Эти опции были рассмотрены в предыдущей статье .
  3. Форма.
  4. Просмотр. Эти опции были рассмотрены в этой статье выше.

На вкладке Пункт меню (рисунок выше) в спадающем списке Выбор гостевой книги можно указать книгу, которую нужно отображать по нажатию на этот пункт меню. Создание книг рассмотрено в предыдущей статье «Обзор Phoca Guestbook. Гостевая книга Joomla ».

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

Подробнее о различных шаблонах Джумла и работе с ними можете прочесть в этом разделе .


Обратите внимание, что глобальные (общие) настройки Phoca Guestbook Joomla менее приоритетны в случаях, когда для конкретного пункта меню заданы свои собственные (если они отличаются).

Как видите, компонент весьма функционален и гибок в плане настроек. Думаю, что в сочетании с широким выбором опций по защите от спама этот бесплатный компонент книги отзывов для Joomla 3 будет полезен всем, кто ищет подобное расширение.

Забавная комедия положений, в которой герои демонстрируют чудеса изобретательности. Тим – школьный учитель, он помогает воспитанникам постигать азы физики. Около года назад у них с Сэнди родилась дочурка. Девочка беспокойная, и у супруга нет возможности выспаться. После того, как доведенная до истерики Сэнди, орала в окно класса, обзывая мужа мудаком, Тим понял, ей надо отдохнуть и отоспаться. Снял гостевой домик на опушке леса, договорился с родителями, чтобы те побыли с малышкой, и пара отправилась на отдых.
Истерики Сэнди не прекращались и здесь, ей срочно понадобился увлажнитель воздуха. Возвращаясь из магазина, парень увидел на фото милую девушку, приглашавшую в стрип-клуб. Секса у него с женой не было с момента родов, и он решил позволить себе расслабиться. Но надежды не оправдались. В номер его затащила огромная бабища, орудовавшая исключительно ступнями. Удовольствия никакого, хотелось поскорее забыть этот ужас. Не успел Тим подъехать к домику, как будто из ниоткуда возник подросток, предложивший купить кассету с приключениями Тима за 700 баксов, иначе он покажет запись жене. Нашему герою удалось выхватить пленку и растоптать ее, но парнишка не расстроился. Он обещал вскоре вернуться...

For HTML codes, guestbook programming might seem unchallenging at first, and rightly so. When you see a guestbook, basic information is requested and it appears that anyone with a fundamental knowledge of the HTML programming language can write guestbook HTML codes. However, guestbooks, from the best to the worst, require a bit more skill than you think.

What is a Guestbook?

A guestbook is an online way to let visitors to your site comment or request information. Most guestbooks post what is written to the webpage so that everyone can read guest comments. The most common items you see on a guestbook are:

  • Name or Username
  • Where they reside (though you can set the HTML code to hide this fact)
  • Email (again, you can hide this fact and have it sent only to your email for communication purposes
  • Comments
  • Some guestbooks forego a comments section for a quick survey. You can usually find questions like "What did you think of this site: good, decent, bad, awesome" or "Was the information provided: enough, not enough, just right"
  • Options to request a reply or other information
Related Articles

Guestbooks can be programmed to send this information to an email address of your choice so that you don"t have to continually log into the site to view guestbook entries.

Where to Find HTML Codes, Guestbook

Whether you know HTML programming, you are a beginning web designer or you simply want a guestbook on your site, using prewritten HTML codes can save you time. The codes you can find online are typically well-tested and provide the most basic programming needed for easy-to-use guestbooks.

  • The code at HTML Comment Box provides the basic outline of an HTML code guestbook. All you need to do is customize the text to your needs and for your domain name. Instructions are provided at the beginning of the page. The code includes lines for name and address.
  • For a large selection of HTML codes and scripts, visit . With such a varied and large selection, you should be able to find one that works into the website you are creating. You can choose from basic guestbooks to more advanced programming that includes drop down menus and code for Macs and Linux machines. The codes are only 30-day free trials, so if you find a set of codes you like you"ll have to pay for the full use.
  • At Freebok you can input some basic information about what text you want on your guestbook and the website will generate the code for you. Afterwards, you can customize the guestbook even more by creating a template and editing the code in Freebok"s template layout mode. Other instructions are available on the site to help you with certain links you may need. You do need to sign up for an account in order to use Freebok.
  • To quickly add a guestbook with just a comment box, go to Guestbook Code . The initial code is already generated, but there are five options you can check and uncheck in order to alter the code slightly:
    • Collapse Guest Book. This includes a link that can open and close the guestbook on the webpage you insert it on.
    • Put Guest Book At Top. If this is unchecked, the guestbook and comment box will appear below any entries in the list.
    • Show Submission Date of Entries. This will add a date and time. The time will be the user"s local time zone, not yours.
    • Profanity Filter. Deletes any profanities that people may write.
    • You can also change the number of comments that are posted to the page for others to read. Minimum is one and maximum is one hundred. It"s recommended that you set it between five to twenty-five.

1. На бесплатном хостинге есть только то, что дают.
2. Лучше, но совсем не обязательно. Порядочный гость оставит сообщение так как нужно (через мою форму), а хороший хакер все равно обойдет ваши $_GET, $_POST, $_COOKIE и $HTTP_REFERER тоже.
3. Контроль длины производиться, но только неявно, самой БД (единственно, что только само сообщение может быть огромно - до 64Кб).
4. Да, есть, HtmlSpecialChars была использована, не использовал AddSlashes (и это большая ошибка, признаю свою вину, см. ниже). При в ключеной magic_quotes_gpc, данная проблема не столь остра, но дыра в безопасности остается (в панели управления).
5. Да, согласен, можно было бы и вырезать, но имя #$@%#$^%$ ничем не хуже чем AF4ETX09T43 . В e-mail и url есть дырка, можно использовать скрипты.
6. Интересно, что не неинициализировано?

Есть еще ряд интересных приемов, как например защита от автоматического ввода через картинку (как на этом сайте) http://www.сайт/webmast/php/Security-Images-in-PHP/
...

Картинок кажется небыло, зачем усложнять демонстрационный пример. Пока ни разу не встречал гостевой с подобной защитой. Что касается этого сайта, то это не гостевая.

Анатомия межсайтового скриптинга XSS
http://www.woweb.ru/index.htm/id/1073393942

Очень интересно, спасибо.

З.Ы. Если бы Аффтор потрудился бы почитать (и вниктуть) в статьи что на этом же сайте, то понял бы, на сколько его труд непрофессионален. Стоит учитывать опыт предыдущих Авторов и, по крайней мере, уважать их труды - они же для вас писали.

Где есть не уважение? Извините если кого обидел.

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

Да, с точки зрения защиты этот скрипт непрофессионален, и я непрофесионал в области защиты, поэтому в первом абзаце и стоит соответвующая оговорка, которую, к сожалению не все прочли.

PS

Цитата:

Закон "Об авторском праве и смежных правах"
Статья 6. Объект авторского права. Общие положения
1. Авторское право распространяется на произведения науки, литературы и искусства, являющиеся результатом творческой деятельности, независимо от назначения и достоинства произведения, а также от способа его выражения.
Остальное можешь прочесть тут: http://www.febras.ru/~patent/copyright/2_3part2.html
В том числе и Статья 9. п.1
И не тебе решать пользоваться мне моим правом или нет.



Понравилась статья? Поделиться с друзьями: