Zimbra: проверка авторизации пользователей в LDAP с помощью PHP

LDAP сервер работающий в составе с Zimbra может быть отличным способом авторизоваться в различных вспомогательных проектах. Для проверки работы авторизации подойдет простой скрипт на PHP:

( Читать дальше )
  • +6
  • 26 августа 2010, 14:02
  • Sergei_T
  • 2

Видеотелефоны Grandstream GXV3000. Часть 1 - Показываем погоду на экране.

Для начала уточню Grandstream GXV3000 = RTVC VXP-100 (да-да, это мы их так продаём).
Про саму спецификацию телефонов можете почитать на ссылкам выше. Телефоны телефонами, но нас интересует его функционал. Из спецификации, да и настроек выходит что:
1. Он умеет/должен показывать на экране погоду;
2. Он умеет/должен показывать на экране RSS новости;
3. Он умеет/должен загружать адресную книгу.

НО! Я нигде не нашёл информации о формате файлов по первому и второму пунктам. Да, да, даже RSS у него какой-то свой, узкоглазый наверно . Поэтому надеюсь кому-нибудь моя статья ещё пригодится.


( Читать дальше )
  • +3
  • 02 февраля 2010, 11:28
  • Mihael
  • 2

Плагин печати для WordPress - WP-Print

WP-Print — отличный плагин для WordPress — добавляет кнопку печати страницы, выводит на печать страницы без лишнего оформления:



wordpress.org/extend/plugins/wp-print

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

PHP: форматируем код

Иногда исходники на PHP бывают в довольно неаккуратном виде. Неплохой скрипт на PHP неплохо справляется с форматированием кода:

shadsplace.org/beautify-php
shadsplace.org/beautify-php/beautify.php.gz

До:

После:


Запуск:

beautify.php bad.php > good.php

VertrigoServ - Бесплатный web-комплекс для Win

VertrigoServ — это высокопрофессиональный и простой в установке набор, состоящий из Apache (HTTP веб-сервер), PHP (скриптовый язык программирования), MySQL (многопоточная, многопользовательская СУБД), SQLite (встраиваемый движок баз данных), SQLiteManager (многоязычная веб-утилита для управления БД SQLite), PhpMyAdmin (утилита, написанная на PHP для администрирования БД MySQL) и Zend Optimizer (который увеличивает производительность запущенных процессов на 40для платформы Windows. C помощью удобного инсталлятора «всё-в-одном» все компоненты устанавливаются в одну директорию и работают сразу же после того как установка закончена. Деинсталлятор позволяет удобно удалять VertigoServ с жесткого диска. Всё это спроектировано так, чтобы занимать как можно меньше места и быть максимально гибким, поэтому отлично подходит для распространения по сети Интернет. VertigoServ хорош как для начинающих так и для более опытных пользователей.



( Читать дальше )

Массовое переименование таблиц базы данных MySQL

Полезный скрипт на php:

<?php  
$db_server = "localhost";    // hostname MySQL server  
$db_username = "username";   // username MySQL server  
$db_password = "password";   // password MySQL server  
$db_name = "database";       // database name  
  
$pattern = "pattern_";          // search string  
$new_pattern = "new_pattern_";  // replacement string,   
                                // can be empty  
 
// login to MySQL server  
$link = mysql_connect( $db_server, $db_username, $db_password);  
  
if (!$link)  
{  
  die('Could not connect: ' . mysql_error());  
}  
  
// list all tables in the database containing the search pattern  
$sql = "SHOW TABLES FROM `" . $db_name . "`";  
$sql .= " LIKE '%" . $pattern . "%'";  
  
$result = mysql_query ( $sql, $link );  
if (!$result)  
{  
  die("Invalid query: " . mysql_error( $link ));  
}  
  
$renamed = 0;  
$failed = 0;  
  
while ( $row = mysql_fetch_array ($result) )  
{  
  // rename every table by replacing the search pattern   
  // with a new pattern  
  $table_name = $row[0];  
  $new_table_name = str_replace ( $pattern, $new_pattern, $table_name);  
  
  $sql = "RENAME TABLE `" . $db_name . "`.`" . $table_name . "`";  
  $sql .= " TO `" . $db_name . "`.`" . $new_table_name . "`";  
  
  $result_rename = mysql_query ( $sql, $link );  
  if ($result_rename)  
  {  
    echo "Table `" . $table_name . "` renamed to :`";  
    echo $new_table_name . "`.\n";  
    $renamed++;  
  }  
  else  
  {  
    // notify when the renaming failed and show reason why  
    echo "Renaming of table `" . $table_name . "` has failed: ";  
    echo mysql_error( $link ) . "\n";  
    $failed++;  
  }  
}  
  
echo $renamed . " tables were renamed, " . $failed . " failed.\n";  
  
// close connection to MySQL server  
mysql_close( $link );  
?>


Нашел здесь.

Укрепляем капчу LiveStreet

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

Поменял CAPTCHA на более сложную, отличное описание здесь:
http://livestreet.ru/blog/tips_and_tricks/2414.html

Капча выглядит так:

Воюем с ModSecurity 2

ModSecurity – модуль Apache, добавляющий возможности обнаружения и предотвращения вторжения на Web сервер. Модуль подобен IDS системе, которую вы бы использовали для анализа сетевого трафика, за исключением того, что mod_security работает только на HTTP уровне. Модуль позволяет вам анализировать действия, обычные с точки зрения HTTP протокола, но трудные для анализа классическими IDS системами.


Модуль имеет довольно-таки суровые правила и зачастую вполне безобидные скрипты после включения этого модуля перестают работать.

Так произошло, например, с движком LiveStreet. Перестала работать отправка комментариев, опубликование топиков и некоторый интерактив.

Так как у меня есть доступ к редактированию настроек виртуального хоста, я добавил туда следующие строчки:

<IfModule mod_security2.c>
    SecAuditLog /var/log/apache2/mod-security/your-site-audit.log

    # LiveStreet comments troubles
    SecRuleRemoveById 960010
    # LiveStreet topics troubles
    SecRuleRemoveById 950911
</IfModule>


Опция SecRuleRemoveById добавляет исключение, id события можно найти в файле /var/log/apache2/mod-security/your-site-audit.log — какой запрос и почему был заблокирован, например:

Message: Access denied with code 501 (phase 2). Match of "rx (?:^(?:application\\/x-www-form-urlencoded(?:;(?:\\s?charset\\s?=\\s?[\\w\\d\\-]{1,18})?)??$|multipart/form-data<img src="/images/smilies/wink.gif" alt="Wink" />|text/xml)" against "REQUEST_HEADERS:Content-Type" required. [id "960010"] [msg "Request content type is not allowed by policy"] [severity "WARNING"]
  • +3
  • 03 сентября 2009, 14:00
  • Sergei_T
  • 3

Защищаем блог на WordPress от атак


WPIDS — плагин для WordPress, позволяющий использовать систему обнаружения атак PHPIDS. После установки необходимо обязательно обновить файл правил PHPIDS.