XSS и ошибки разработчиков на веб-сервисах

      Комментарии к записи XSS и ошибки разработчиков на веб-сервисах отключены

Сначала разберем, что такое XSS и его виды.   XSS — Cross-Site Scripting — Одна из множества уязвимостей веб приложений, которая позволяет внедрить вредоносный код, на страницу. Есть 2 типа XSS:   Активная — XSS, которая статично находится на странице Пассивная — XSS, которая динамично отображается на странице, при определенном запросе   За несколько лет работы в сфере информационной безопасности, я смог набраться опыта и могу рассказать о некоторых нетипичных видах XSS. Данные типы уязвимостей довольно распространены на современных веб-сервисах, но к сожалению из-за своей необычности, они скрылись в тени. Начнем с ошибочных представлений разработчиков:   Разработчик думает, что XSS — это инъекция только в HTML-сущность и только. Данное ошибочное мнение складывается изо дня в день. На самом же деле, XSS могут быть не только в HTML, они могут быть почти везде, к примеру даже в картинке. Разработчик уверен, что отфильтровав спец символы, можно защититься от XSS. Данные мнение частично… Читать далее »

get_site_url()

      Комментарии к записи get_site_url() отключены

get_site_url() с версии 3.0 get site url Получает URL сайта. Функция возвращает опцию siteurl: get_option(‘siteurl’). Также устанавливает протокол сайта: https — если срабатывает is_ssl() или http. Можно принудительно указать протокол в параметре $scheme. Указывая адрес блога, мы может переместить все файлы WordPress в отдельный каталог. Делается это для удобства, когда пользователю мешают файлы WordPress в основном каталоге и их хотелось бы убрать в подкаталог основного каталога. Как это сделать читайте здесь. Используйте эту функцию, когда нужно получить URL адрес WordPress, а не URL адрес сайта (см. Общие настройки). Для получения адреса сайта, используйте функцию home_url(). Используется в: site_url(), get_admin_url().✈ 1 раз = 0.000067с = очень быстро | 50000 раз = 2.20с = быстро Хуки из функции: return apply_filters( ‘site_url’, $url, $path, $scheme, $blog_id ); Возвращает ссылку на сайт. Использование Шаблон использования $site_url = get_site_url(); $blog_id(число) ID блога. По умолчанию: текущий блог (null) $path(строка) Пусть к странице сайта, который будет добавлен… Читать далее »

Как добавить в шаблон WordPress собственную область для вывода виджетов

      Комментарии к записи Как добавить в шаблон WordPress собственную область для вывода виджетов отключены

Виджеты — достаточно удобная технология при работе с шаблонными сайтами. С помощью виджетов вы можете из панели администратора без знания каких-либо языков программирования наполнять нужную области на сайте различными эффектами, текстом, изображениями и т.д. Чаще всего данную технологию используются при заполнении боковых колонок и практически все новые шаблоны WordPress и других CMS пользуются виджетами. Время от времени, используя самописный или скачанный шаблон, приходиться что-то видоизменять и добавлять собственные области для вывода виджетов и WordPress позволяет осуществить это быстро и безбоязненно. В ниже приведенном примере, будет показано как с помощью минимальных знаний php и структуры шаблона WordPress добавить те самые виджеты в теме места, где мы хотим их видеть. Добавим в right sidebar сайта область для наполнения различными типами виджетов: Зарезервируем новую область для наших виджетов в системном файле function.php. Наполняем область виджета нужными нами модулями скаченными с интернета в панели управления. Выводим нашу область в самом шаблоне сайта. Резервация области для виджета происходит с помощью специальной функции register_sidebar. register_sidebar( array(… Читать далее »

Особенности свойства height в процентах

      Комментарии к записи Особенности свойства height в процентах отключены

В чем же особенности свойства height в процентах ? Из практики свойство height, если указать его в процентах, покажет высоту относительно родительского блока. Но на самом деле не все так красиво и просто. Естественно для произвольного div элемента height в процентом соотношении работать не будет! Сейчас наша цель – получить вёрстку такого вида: При этом блок в которой находиться левая стрелка должен быть отдельным элементом внутри контейнера. Данный способ удобен для дальнейшей работы с JS, чтобы принимать на нём клики мыши. То есть, HTML-код требуется примерно такой: <div class=»container»> <div class=»arrow»> <!— стрелка влево при помощи CSS, ширина фиксирована —> </div> <div class=»content»> …Текст… </div> </div> Как же это реализовать? Есть много разных вариантов, но, вероятнее всего, вы решились сдвинуть .arrow влево, при помощи функции float:left (учитывая то что он фиксированной ширины) и увеличить высоту до 100%, чтобы он занимал всё свободное пространство по вертикали. Но и тут есть свой подвох. Смотрим то, что будет происходить… Читать далее »

Скрыть элемент при клике за его пределами Jquery

      Комментарии к записи Скрыть элемент при клике за его пределами Jquery отключены

Как же cкрыть элемент при клике за его пределами Jquery? Благодаря этого способа можно использовать для создании прототипа потери фокуса к блочным элементам на вашей веб-странице (прототип события blur который по сущности своей не распространяется на все блочные элементы в определенных видах браузеров). Рассмотрим такой пример, что у нас на странице имеется элемент с class = white, обратной формой для пользователя. И данный элемент должен пропасть, если пользователь кликнет мышью по любому месту в черном блоке страницы, за исключением самого данного элемента с классом white. Данную задачу можно решить обработкой клика мыши на элементе black. А в самом обработчике, нужно будет проверить, не является ли источником события наш элемент с class = white или не является одним из его потомков: $(function(){ $(«.black»).click(function(event) { if ($(event.target).closest(«.white»).length) return; $(«.black»).css(«display»,»none»); event.stopPropagation(); }); }); Продемонстрируем данный пример на рабочем примере: <!DOCTYPE html><br /><br /> <html><br /><br /> <head><br /><br /> </head><br /><br /> <body></p><br… Читать далее »

Как добавить сайт в поисковики бесплатно

      Комментарии к записи Как добавить сайт в поисковики бесплатно отключены

Как же добавить сайт в поисковики бесплатно? Для того чтобы попасть в поисковики больших манипуляций не требуется. Поисковые роботы обычно сами находят новые сайты и делают всю работу за вас, но если на них есть внешние ссылки. А когда после четырех – восьми недель сайт не появился в поисковой системе, тогда стоит самостоятельно и совершенно бесплатно добавить сайт в поисковики сделав не большие манипуляции. Перед тем как добавить сайт в поисковую систему, следует убедиться, что ресурс готов к индексации. Все страницы ресурса должны быть заполнены контентом, оптимизированы, желательно заполнены ключевыми словами и разрешены к индексации, и не запрещены файлом robots.txt. Для того чтобы упростить и ускорить процесс добавления сайта в поисковую систему, нужно заранее приготовить текстовый документ, в котором будут заполнены поля, наиболее часто встречающиеся при регистрации в поисковиках. Поля которые чаще всего используются при регистрации сайта в своей системе предоставлены ниже: URL-адрес сайта Название сайта Краткое описание сайта Контактное лицо (владельца сайта)… Читать далее »

Скрыть запись определенных рубрик с основной страницы

      Комментарии к записи Скрыть запись определенных рубрик с основной страницы отключены

Как же скрыть запись определенных рубрик? После того как вы публикуете новую запись на сайте она появляется на главной странице в списке постов в блоге. Заметим то что на главной  обычно выводятся записи всех рубрик, но иногда это делать не желательно. При разработке одного из сайтов я столкнулся с подобной проблемой, перерыв кучу материала в интернете наткнулся на статью как это сделать и решил продублировать пример на своем сайте чтобы в дальнейшем было быстро и удобно его использовать. Для удаления рубрики с главной страницы wordpress существует большое количество плагинов. Один из них — это Frongpage Category Filter. Но не всегда хочется загружать сайт не желательными плагинами, поэтому попробуем скрыть наши посты с помощью функции . Рассмотрим найденную функцию подробнее: // фильтр скрытых рубрик function hidecategory($query) { if ( $query->is_home ) { $query->set(‘cat’,’-1,-7′); } return $query; } add_filter(‘pre_get_posts’, ‘hidecategory’); Данный код необходимо разместить в самый низ файла functions.php, без пустых строк после него (иначе… Читать далее »

Работа с AJAX в WordPress

      Комментарии к записи Работа с AJAX в WordPress отключены
Работа с AJAX в WordPress

Как же правильней осуществляется работа с AJAX в WordPress AJAX — достаточно полезна и удобна в работе с html страницами. С помощью нее реально создавать понастоящему красивые визуальные приложения. Если проще, то с его помощью  возможно создавать всевозможную передачу данных “без обновления страницы”: загрузку новых или дополнительных записей без обновления страницы, сохранение в базу комментариев WordPress без обновления страницы и т.д. У WP создан свой достаточно удобный интерфейс при работе с AJAX. Нам требуется только написать функцию и обратиться к ней с помощью ajax. Сделать это можно так: add_action(‘wp_ajax_send’,’action_send’); Где send — имя нашего хука, а action_send — имя функции, которую мы будем вызывать. В данном случае эта запись будет отработывать только при авторизованном пользователи, но если требуется использовать данную функцию для всех пользователей сайта то выглядит это вот так: add_action(‘wp_ajax_send’, ‘action_send’); add_action(‘wp_ajax_nopriv_send’,’action_send’); Для использования самого AJAX запроса можно воспользоваться встроенной функцией в jQuery. $.ajax({ url: «/wp-admin/admin-ajax.php», //url, к которому… Читать далее »

WordPress и сессия ($_SESSION)

      Комментарии к записи WordPress и сессия ($_SESSION) отключены

WordPress и сессия  или как заставить работать session_start в WP как и на чистом php. Создавая шаблон на WordPress через какое-то время, я понял, что стандартный session_start() в WP не хочет работать. И как оказалось это не является багом движка, сессии в самом движке (как и практически дургие переделанные функции в WordPress) отсикаются специально, но все равно данное ограничение можно обойти. Открываем наш шаблон и создаем новый или открываем уже существующий файл function.php (данная темадолжна быть включена как активная в админке сайта). function.php обязан находиться в корне нашего шаблона (wp-content/themes/<название самой темы>) куда добавим наш код: add_action(‘init’, ‘omyblog_init_session’, 1); if ( !function_exists(‘omyblog_init_session’)): function omyblog_init_session() { session_start(); } endif; В первой строчке указываем на повышенный приоритет нашей созданной функции, и поэтому вызов нашего кода будет происходить для всего шаблона. После данных не хитрых манипуляции можно пользоваться $_SESSION, как на простом чистом php.

Cookie в JQuery.

      Комментарии к записи Cookie в JQuery. отключены

Для простоты, легкости работы при чтении, удалении и записи coockie используем плагин JQuery. jquery.cookie   Установка Вначале подключаем библиотеку JQuery, после чего запускаем наш скрипт (если вы не осуществляете упаковку скриптов как — то еще): <script src=»/path/to/jquery.cookie.js»></script>   Применение плагина: Создаем coockie сессию: $.cookie(‘name’, ‘value’); Создадим сессию с сроком хранения 7 дней с момента ее создания: $.cookie(‘name’, ‘value’, { expires: 7 }); Создадим сессию с сроком хранения, действующую на всем сайте: $.cookie(‘name’, ‘value’, { expires: 7, path: ‘/’ }); Получение данных из cookie: $.cookie(‘name’); // => «value» $.cookie(‘nothing’); // => undefined Получить все доступные значения cookie: $.cookie(); // => { «name»: «value» } Удаляем cookie: // Возврнем true, если cookie был успешно удален, в противном случае false $.removeCookie(‘name’); // => true $.removeCookie(‘nothing’); // => false // Используем только одни и те же атрибуты (путь, домен), как в том cookie что было написано ранее $.cookie(‘name’, ‘value’, { path: ‘/’ }); //… Читать далее »