Blog. Just Blog

Быстрый поиск

Введите фрагмент названия статьи для поиска

Исследование защиты программы MavorsGuard

11.03.2014 | Категория: Темная сторона Силы | Автор: ManHunter

Скриншот программы MavorsGuard

Программа MavorsGuard предназначена для защиты PHP-скриптов от изучения и модификации. Достигается это путем шифрования исходного текста с последующей его расшифровкой непосредственно во время выполнения. За все это требуется выложить некоторую сумму денег.

Читать статью целиком »
Просмотров: 5876 | Комментариев: 6

Как узнать статус ICQ на PHP

21.10.2013 | Категория: Web-мастеру и не только | Автор: ManHunter

Как узнать статус ICQ на PHP

Для получения статуса ICQ на сайтах обычно используется штатная возможность сервиса, а именно ссылка вида:

http://status.icq.com/online.gif?icq=XXXXXXXXX&img=N

Где XXXXXXXXX - номер проверяемой аськи, а N - стиль отображаемой иконки (число от 0 до 27). В ответ приходит картинка статуса с соответствующим стилем. Такой код обычно ставят на сайты, в подпись на форуме и тому подобное. Картинка отображается, все нормально. А как получить статус ICQ в автоматическом режиме? Например, на сервере по планировщику запускается скрипт, который должен отправить некие данные человеку в аську, но только в том случае, если он находится он-лайн. Или надо автоматически контролировать время работы техподдержки, отмечая когда они вышли в онлайн и когда ушли в оффлайн. Или ни одна из предлагаемых стандартных иконок с сервера ICQ не подходит под дизайн вашего сайта, а отображать статус оператора все равно надо. Или для незарегистрированных посетителей ресурса надо скрыть реальные номера ICQ пользователей (их легко узнать из ссылки на картинку статуса), но при этом хочется показать их статус. Это лишь несколько примеров, при желании варианты применения можно придумать еще.

Читать статью целиком »
Просмотров: 6106 | Комментариев: 3

Генерация последовательности уникальных кодов на PHP

12.10.2013 | Категория: Web-мастеру и не только | Автор: ManHunter
Иногда возникает задача генерации последовательности уникальных кодов по определенному формату. Это могут быть какие-нибудь одноразовые токены, коды лотерейных билетов, серийные номера, scratch-карты, да мало ли чего. Простое использование ГСЧ в этом случае не дает 100% гарантии, так как выдаваемые им значения могут повторяться, а при большом количестве кодов количество повторений будет только расти. Предлагаю вам следующее решение:
  1. // Набор символов для генерации кодов
  2. $str='1234567890ABCDEF';
  3. // Длина кода без учета разделителей
  4. $code_length=16;
  5. // Нужное количество кодов
  6. $codes_count=300000;
  7. // Позиции разделителя (0 - не надо)
  8. $code_separartor=4;
  9.  
  10. $tmp=array();
  11. $str_length=strlen($str)-1;
  12.  
  13. // Цикл до заполнения массива
  14. while (count($tmp)<$codes_count) {
  15.     // Сгенерировать индекс массива
  16.     $code='';
  17.     for ($i=0$i<$code_length$i++){
  18.         // Разделитель можно не добавлять
  19.         if ($i>&& $code_separartor>&& $i%$code_separartor==0) { $code.='-';}
  20.         $code.=substr($strmt_rand(0,$str_length), 1);
  21.     }
  22.     // Или в массив добавится новый элемент, или
  23.     // перепишется поверх уже имеющийся
  24.     $tmp[$code]=1;
  25. }
  26. // Теперь в массиве $codes уникальные коды
  27. $codes=array_keys($tmp);
Коды генерируются гарантированно уникальные (в пределах одной сессии). Это достигается за счет того, что в качестве кода сперва используются ключи массива, а не значения. Даже если какой-либо код будет сгенерирован повторно, то просто перезапишется уже имеющийся элемент массива, а не добавится новый. Отсутствие проверок типа in_array значительно повышает скорость работы генератора. Главный недостаток этого алгоритма в том, что для генерации больших объемов данных потребуется много оперативной памяти. Для особо критичных случаев при выборе символов, составляющих код, лучше использовать не программный ГСЧ, а какой-нибудь аппаратный, чтобы обеспечить максимальную непредсказуемость данных.

Читать статью целиком »
Просмотров: 11551 | Комментариев: 6

Загрузка файлов перетаскиванием в окно браузера

21.09.2013 | Категория: Web-мастеру и не только | Автор: ManHunter

Загрузка файлов перетаскиванием в окно браузера

Практически все современные web-сервисы предлагают пользователям такую фичу, как загрузку файлов простым перетаскиванием их в браузер. Это действительно очень удобно, когда надо загрузить сразу несколько файлов, поле загрузки может иметь произвольный вид и форму, т.к. не подвязано на стандартные элементы формы, и еще множество других плюсов. Как же это сделано? Очень просто. Мы уже рассматривали в одной из статей прием и отправку текстовых данных при помощи технологии AJAX, загрузка файлов выполняется не намного сложнее.

Читать статью целиком »
Просмотров: 25784 | Комментариев: 17

Подсветка результатов поиска на странице

05.02.2013 | Категория: Web-мастеру и не только | Автор: ManHunter
Сложно представить современный web-сайт без поиска. И хорошим тоном считается не просто выводить все страницы, на которых был найден запрошенный результат, но и как-нибудь выделять искомые слова в тексте. Если контент сайта представляет собой обычный текст без html-разметки, то тут все просто, достаточно использовать что-то типа str_replace. А как быть, если на странице имеются html-теги, и надо выделить только тот текст, который не заключен внутри тегов? Например, нам надо выделить слово "поиск" в такой тестовой строке:
  1. Для поиска и просмотра <a href="/search" title="Результаты поиска">результатов
  2. поиска</aпройдите по поисковой ссылке.
После простой замены она превратится в нечто чудовищное:
  1. Для <b>поиск</b>а и просмотра <a href="/search" title="Результаты <b>поиск</b>а">
  2. результатов <b>поиск</b>а</aпройдите по <b>поиск</b>овой ссылке.
Как видите, текст в атрибутах title нарушен. Это простейший пример, на деле это может привести к полному развалу верстки, а то и еще хуже. При правильно сформированных поисковых запросах злоумышленники смогут даже внедрить в код страницы вредоносные скрипты. Для решения этой проблемы воспользуемся регулярными выражениями:
  1. // Искомая строка для подсветки на странице
  2. $search 'html';
  3. // Создаем строку для регулярного выражения
  4. $pattern "/((?:^|>)[^<]*)(".$search.")/si";
  5. // Подсвеченная строка
  6. $replace '$1<b style="color:#FF0000; background:#FFFF00;">$2</b>';
  7. // Заменяем
  8. $html preg_replace($pattern$replace$html);
Код также немного упрощен для удобства восприятия. В реальных проектах при составлении регулярного выражения $pattern надо обязательно экранировать в искомой строке все служебные символы, которые могут быть использованы в регулярных выражениях.

Читать статью целиком »
Просмотров: 12676 | Комментариев: 7

01 ... 13 14 15 16 17 18 19 ... 25
Наверх
Powered by PCL's Speckled Band Engine 0.2 RC3
© ManHunter / PCL, 2008-2025
При использовании материалов ссылка на сайт обязательна
Время генерации: 0.07 сек. / MySQL: 3 (0.0056 сек.) / Память: 4.5 Mb
Наверх