Посоветуйте контакты для консультации по серверному софту

Посоветуйте контакты для консультации по серверному софту.

Задача примерно такая.
Хочется писать и читать в большой объем памяти (или диска) в разные его случайные места. Сейчас я сделал это через файл, пишет скрипт пхп, за один проход пишется в около 10к разных коротких записей с разными смещениями. Это занимает секунд 10 вроде, плюс я хочу вместо 10к записей писать больше – и 100к и больше. Этот файлик я сейчас ограничиваю размером в 4Gb, ограничение просто из головы. Не знаю, как он будет вести себя с совсем большими файлами.
Кроме того, нагрузка разная может быть – число таких проходов – вдруг будет больше, чем 1 в 10 сек?
Хочется проработать два варианта, как их делать и вообще –
1. для большой нагрузки и большого числа записей как-то держать постоянно этот файлик в мемори. Или не файлик, а как-то по другому организовать?
2. для нагрузки поменьше оставить жить в виде файлика, но как-то по особенному поиграться всякими настройками фс, блоками, буферизацией и тп.
3. вопросы, которые я не догадался задать. Вообще, нормально ли работать с очень большими файликами? И вообще, поиграться разными фс, разным софтом, который пишет (вдруг в пхп кривизна какая)

Напишите, плз, если есть хорошие контакты, в [email protected]

нужны помощь или советы: побороть медленную заливку в mysql

+ завел тему на серче

Есть много данных, и они заливаются. Но с некоторых пор все стало тормозить. Как бы это побороть?

Что имеется.

* Имеются таблицы, в каждой примерно 1М строк на сейчас, рассчитываю, что будет в разы больше. Но плохо уже сейчас – заливается медленно.

* средняя таблица сейчас:

Данные 436,174 KB
Индекс 79,469 KB

* таблица такая по ключам:

CREATE TABLE `sell_urls` (
`su_id` bigint(20) unsigned NOT NULL auto_increment,
`f_sd_id` bigint(20) NOT NULL default ‘-1’,
`su_url` varchar(255) NOT NULL,
****много полей
PRIMARY KEY (`su_id`),
UNIQUE KEY `f_sd_id` (`f_sd_id`,`su_url`)
) ENGINE=MyISAM DEFAULT CHARSET=cp1251 ROW_FORMAT=FIXED;

* в конфиге mysql, как я понимаю, не должно быть ничего интересного? Key_buffer_size=4G

* mysqld при работе насасывает памяти до 30% (от 24G!!!) – не знаю, важно это или нет.

* заливка происходит из файлов через выполнение команд mysql -u -p dbname < file.sql
В этих файлах лежат запросы вида:

INSERT INTO sell_urls(f_sd_id, su_url, список полей) VALUES (список наборов значений от 1 до 100), (), ()… ON DUPLICATE KEY UPDATE параметр1=IF(параметр2>=VALUES(параметр2),параметр1,IF(параметр1=0,разные значения)), параметр=VALUES(параметр), ….. ;

Много используется этих IF-ов при обновлении.
Т.е. в зависимости от того, что лежит в таблице, происходит перезапись других полей либо нет.
Перезаписываются поля, по которым индексов нет.
Запросы в одном файле полностью относятся к одной таблице, не к разным.
Причем если одни insert, то летает очень быстро, а если update – медленно

* select запросов одновременных к этим таблицам нет вообще.

И все это медленно работает.
Причем на маленьких таблицах работает быстро. Я сначала думал, что это из-за всяких этих IF-ов, но раз на маленьких быстро – наверное, не из-за них?

Сначала еще я сменил ROW_FORMAT на FIXED, потерял на размере, вроде побыстрее стало, но все равно таблицы увеличились и стало медленно.

Что посоветуете сделать?
Разбивать таблицы на маленькие уже не хочется – эта таблица с 1М записей и так одна из 100 после разнесения.

наиболее взламываемые CMS

Яндекс опубликовал немного статистики по топам сайтов вообще и топам взломанных сайтов.
Так-то понятно, что это фактически "взламываемость" в среднем по больнице, только Яндекс постеснялся ее так прямо называть.
Очень жалко, что нет числовых данных. Тогда можно было бы разделить "популярность взломанных" на "общую популярность", чтобы прикинуть отношение.
В комментах попросили учитывать криворукость админов. Понятно, что это не выйдет. Но вместо этого можно было бы учесть айпишники этих самых 10 тыс. топовых сайтов (по топу взлома и популярности). В том смысле, что можно посчитать аналогичную статистику, но с гарантированно разными айпишниками. Это дало бы приближенную к реальности картину по разному железу – более вероятно.
Тогда взломы устойчивых ЦМС через взлом сервера через один из аккаутнов (одну из ЦМС) на сервере – были бы в бОльшей степени исключены.

как я ставил видеосервер RED5 на CentOS 5.3

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

зачем надо – хочется попробовать всякие трансляции делать, про сео, естественно. Может, буду разных людей звать (вас!!!111) и сеошные беседы вести. прикольно же )

вот у Наиля в сеопульт.тв все-таки чересчур большое разнообразие было. Ладно, сеошники кончились, он давай всякие ЦМС звать, хостинги и платежные системы. А что там слушать, в цмс? пусть цмс поддерживает N сеошных пунктов – тогда она подходит, нет – нет. А вместо этого на полчаса разговоров. С хостингом еще жестче, даже разговаривать не о чем. Про контекст тоже… информацию могли бы интересную дать, но шел один пиар.

когда они переименовали это в itvcom.ru и программу еще расширили – получился типичный канал “обо всем” – в переводе “ни о чем”.

***
Короче, хочется попробовать с этими трансляциями поработать.

вот. но платить сторонним сервисам – не наш метод! и заказывать настройку за бабло, понятно, не хочется. да и фиг знает, что как сделают. да и не знаю я, у кого.

***
Почему red5? т.к. 1. бесплатный и 2. тут пишут, на будущее подходит для многопользовательских конференций, а переходить потом неохота будет если что.

Две ссылки по установке – основная, англовариант и еще одна, руссковариант.

Как ставилось:
—————————–
1. скачиваем и ставим java

yum -y install java-1.6.0-openjdk java-1.6.0-openjdk-devel

2. скачиваем и ставим ant (это какая-то непонятная хрень, нужная для дальнейшей сборки red5). от англоварианта пришлось поменять место, откуда качать. и версию ant взять 1.8.2

cd /usr/src
wget http://apache.infocom.ua/ant/binaries/apache-ant-1.8.2-bin.tar.gz
gzip -d apache-ant-1.8.2-bin.tar.gz
tar -xpf apache-ant-1.8.2-bin.tar
rm -f apache-ant-1.8.2-bin.tar
mv apache-ant-1.8.2 /usr/local/ant

3. экспортируем переменные (папки всякие)

export ANT_HOME=/usr/local/ant
export JAVA_HOME=/usr/lib/jvm/java
export PATH=$PATH:/usr/local/ant/bin
export CLASSPATH=.:$JAVA_HOME/lib/classes.zip

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

echo "export ANT_HOME=/usr/local/ant" >> /etc/bashrc
echo "export JAVA_HOME=/usr/lib/jvm/java" >> /etc/bashrc
echo "export PATH=$PATH:/usr/local/ant/bin" >> /etc/bashrc
echo "export CLASSPATH=.:$JAVA_HOME/lib/classes.zip" >> /etc/bashrc

4. для следующего шага неожиданно понадобится svn, а про него в англоварианте забыли. ставим svn.

yum install subversion

5. скачиваем и ставим red5 сервер. из-за переносов а хтмле строку, начинающуюся с svn…red5 я выполнил сначала неправильно как две команды, а надо как одну.

cd /usr/src
svn checkout http://red5.googlecode.com/svn/java/server/trunk/ red5
mv red5 /usr/local/
cd /usr/local/red5
ant prepare
ant dist

последнее долго думает, выдает много строк, в конце пишет что-то типа BUILD SUCCESSFUL (но может и в середине написать)

cp -r dist/conf .
./red5.sh

-две разных команды, вторая – запуск некоего скрипта, после которого может иногда что-то заработать. кажется, после запуска этого скрипта оно начинает висеть и думать о своем, приходится выходить по ctrl-break, хотя и страшно :).

6. ставим автозапускалку всего этого, скачиваем скрипт из файла http://www.sohailriaz.com/downloads/red5.txt , текст в англоссылке приведен.

wget http://www.sohailriaz.com/downloads/red5.txt
mv red5.txt /etc/init.d/red5
chmod 0755 /etc/init.d/red5

в результате /etc/init.d/red5 – этот скрипт
старт (рестарт, стоп) делается так:

/etc/init.d/red5 start

проверка статуса

/etc/init.d/red5 status

в русскоссылке рекомендуют это вставить чтоб запускался при рестарте сервера, но я это пока не делал:

/sbin/chkconfig --add --level 345 red5

И да, после этого или после п.5 я при заходе на http://SERVER_IP:5080/ увидел демку, что типа все работает.

7. тестируем и прочее
после захода на демки http://SERVER_IP:5080/demos/ нужно сперва тыкнуть в ссылку install – http://SERVER_IP:5080/installer и по каждому пункту нажать на инсталл. а то демки работать не станут.

в демках заменяем localhost на свой SERVER_IP

дальше можно в файле настроек /usr/local/red5/conf/red5-core.xml раскомментировать RTMPT зачем-то, для комплекта. я раскомментировал, рестартовал, не помогло – по тесту все равно кажет FAILED. Но т.к. я не знаю, что это такое за RTMPT – пофиг на него.

—————————–

Итог – оно работало. С одного ноута выкладывал с вебкамеры трансляцию, с другого смотрел.

На сервере на ненужном пробовал.
Минусы:
1. не получилось войти в админку 🙁 все пароли, в т.ч и найденные в файлах из /usr/local/red5/*.xml – не подошли. что это за air файл, не знаю.
2. опасаюсь за дырки. вот в svn вроде дырки были. снести ее, может? или уже давно пофиксили?

Кто работал, подскажите – как дальше настраивать? Админка раз, ну и ограничения на выкладывание трансляций. И счетчик подключившихся.

надо помощь по xslt – копирование полностью элемента

Для дальнейшего улучшения кнопки под яндекс-бар нужно.

Очень хочется часто менять кнопку. Индивидуально даже. Сама кнопка делается как дерево XML. Я в качестве исходных данных со своего сервера получаю тоже XML, но не могу взять один из его узлов и чистом виде вывести в кнопку – не поддерживает. Только через применение xslt-преобразования.

Сейчас мне приходится заранее знать, какого рода теги можно использовать.

Нужно примерно следующее – чтобы я применял xslt-преобразование к некоему узлу входящего XML и получал на выходе ровно то же самое.

Могут быть заранее неизвестные теги
Может быть заранее неизвестная вложенность
Могут быть дублирования тегов
Могут быть параметры у самих тегов, их тоже желательно поддерживать.

Возможно ли это? м.б. частично возможно?
Самая простая формулировка задачи – "преобразовать в самого себя".

sweb становится говнохостингом, задолбал

собственно, и раньше народ был им недоволен – с почтой постоянные траблы, но я почтой там не пользуюсь, мне было пофиг.

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

а когда им в суппорт пишешь, там какой-то специальный гандон сидит, который сначала проблему исправляет, а потом отвечает, что типа ничего не было. На момент проверки, типа, все доступно.

Вот как сегодня.

Я, конечно, думаю, что не исправляет он ни хрена, а просто перезагружает сервер. Я уже и жаловаться на него пытался – не реагируют, письмо опять-же в суппорт идет.

Так что сегодня, как и во многие предыдущие разы, апдейт изменений выдачи задерживается. 🙁 Все-таки 5.5 тыс запросов надо пробить.

Уроды. Червертый или пятый раз уже.
Но панелька там удобная 🙁
Кейворды: sweb.ru, spaceweb, Свеб, спейсвеб, уроды, задолбали

XSS запросы – их виды

Нет, понятно, что тема XSS в плане тИЦ умерла, но людям зачем-то это еще надо… Парсят.

На знакомый сайтик, где самодельный счетчик стоит и берет рефререр из яваскрипта как document.referrer, присылают интересные переменные вместо этого рефререра:

1
'
"
'
X S
<>
--
2-1 and 1=1
2 and 1=1
' and '1'='2
" and "1"="1
" and "1"="2
XSS@<xscript>XSS</xscript>.com
XSS@%3cxscript%3eXSS%3c%2fxscript%3e.com
java:xscript(XSS)
myvalue" myattribute="java:xscript(XSS)"
myvalue myattribute=java:xscript(XSS)
myvalue' myattribute='java:xscript(XSS)'
XSS@+xscript-XSS+/xscript-.com
><!--
'><!--
"><!--
\n\nPTHeader: PTValue
/boot.ini
../../../../../../../../../boot.ini
/windows/win.ini
../../../../../../../../../windows/win.ini
/filename.php
/filename.php.
/filename.php
filename.php
filename.php.
filename.php
|id|
`id`
;id;

-(где filename – файл скрипта счетчика).
Мне многое незнакомо (особенно проверка на винды, ведь на сервере не винды), но все же интересно.
Что означают \n\nPTHeader: PTValue? И вот это все: XSS@<xscript>XSS</xscript>.com

Если кто в теме, просветите плз.

XSS (или не xss?) уязвимости

Навеяно этой темой форума searchengines.ru (и еще одной, где о знакомых упоминается :)).
Не знаю уж, называется ли это xss-уязвимостью, или не называется, но. Приведен пример, в котором в поиске спец. строки она вставляется в тайтл, а если туда засунуть теги (закрывающий тег тайтл, например, и хеад, и дальше ссылку), то будет ссылка с выдуманной страницы. Иногда запрос вставляется просто в текст страницы. Если есть проверка на <и> – то можно использовать UTF-7 (но не всегда: когда вставка идет в тайтл и указание кодировки идет далеко) В общем, люди вставили через поиск свои ссылки, которые качают клиентов.

Ту тему почистили, примеры:

1. Ищем в Яндексе $title(+a href http) и идем на 5-6 страницу. Видим кучу страниц, в урлах которых хтмл-код, типа http://www.cci.ru/showall.asp?t_id=1&query=%22%3E%3Ca+href%3Dhttp%3A%2F%2Finterfaks%2Ekiev%2Eua%2F%3E%E0%F0%E5%ED%E4%E0+%EA%EE%F2%F2%E5%E4%E6%E0+%ED%E0+%ED%EE%E2%FB%E9+%E3%EE%E4%3C%2Fa%3E%3Ca+alt%3D%22&page=33 . При вставке в текст страницы они дают ссылки на "клиента". Только осталось их качнуть с доноров.

2. Среди этих сайтов я нашел и сайт, который когда-то делал и продвигал – ultraslim.ru. Ссылки с него люди получают через поиск: $title(+a href http) на сайте: ultraslim.ru . Коллекция из 160 украинских (в основном!) сайтов – акцепторов. В общем, получить тИЦ 90-140 реально за счет этого метода…

3. Похожая вещь на сайте cottage.ru: #url="www.cottage.ru/search/index.php?q=*"– аж 415 проиндексированных страниц с поиском 🙂 http://www.yandex.ru/yandsearch?text=%23url%3D%22www.cottage.ru%2Fsearch%2Findex.php%3Fq%3D*%22&stype=www

4. Можно найти "заказчиков" – сайты, с которых "качаются" доноры. Надо думать, что они связаны с заказчиками… Если на странице
[убрано по просьбе beroot”> ссылка "источник" выгладит как http://www.aurore-nissan.ru/search/search.html?searchString=%22%3E%3Ca+href%3D%22http%3A%2F%2Fallautoalarm.ru%2F%22%3E%F3%F1%F2%E0%ED%EE%E2%EA%E0+%F1%E8%E3%ED%E0%EB%E8%E7%E0%F6%E8%E9%3C%2Fa%3E%3Ca+alt%3D%22 – просто качают люди доноров…

5. Реально существует около 200 известных сайтов с дырками: [убрано по просьбе beroot] – 194 сайта… Пройтись по всем и собрать коллекцию уязвимых сайтов 🙂 [убрано по просьбе beroot] Тут – 110 сайтов и т.д.

Понятно, что сделать такую ссылку проще, чем взращивать сателлит. 🙂 Прооиндексировать ее каким-нибудь фрихостом – для низкочастотки, действительно, подойдет 🙂

Литература:
http://hack-expo.void.ru/groups/antichat/html/rutxtutf7.html
http://www.securitylab.ru/analytics/274302.php
http://barushev.net/archive/2005/wordpress-xss.html
http://www.dsec.ru/about/articles/web_xss/

Популярные движки форумов

Встала задачка выяснить, какие движки форумов наиболее популярны… Выяснил более-менее:
phpBB – 2294
“Invision Power Board” – 1700
vBulletin – 1472
PunBB – 1054 (никогда о таком не слышал)
Ikonboard – 333
***
Какие-нибудь другие популярные (в рунете) движки форумов есть? Также есть потребность (платно или бесплатно, договоримся :)) написания доп. возможностей (3 php или perl скрипта) для разных видов движков. Кто знает какие-то движки достаточно хорошо (на уровне, что что означает в базе) – прошу обращаться в очту [email protected]

Линкспам мастдай! Берите скрипт!

Написал конфирмер для защиты форм от роботов. Бесплатно! Берите! 🙂
Описание задесь: http://promosite.ru/services/confirmer.php
Пример работы: http://promosite.ru/services/confirmer/form.php
Скачать: http://promosite.ru/services/confirmer/confirmer.zip
Требуется возможность работы PHP с графикой, а именно функции imagecreatefromgif, imagegif.
***
Это бесплатный комплект скриптов на PHP, который позволяет на любую форму установить проверку юзера на человечность. Особенность конфирмера: НЕ НУЖНО использовать сессии при работе! Картинки не генерятся индивидуально для пользователей, но защита вполне достаточная.

Комплект состоит из:
1. файл confirmer_pic.php, который генерит картинку с нужным числом псевдослучайных символов, меняющихся раз в минуту
2. файл confirmer_include.php, который знает алгоритм генерации картинки и проверяет введенную строчку на правильность. Должен находиться в той же директории, что и (1).
3. файл form.php, пример использования кода. Он инклюдит confirmer_include.php и получает результат проверки в виде переменной $confirmer_result (=0,1) и показывает картинку счетчика $confirmer_pic. Должен находиться в той же директории, что и (1,2), т.к. вызов картинки идет из той же директории. Вы можете это исправить сами.
4. директории с графической подложкой и GIF-картинками буковок. Эта директория прописана в файле confirmer_pic.php, вообще ее желательно прятать от чужих глаз. Все картинки можно менять на свои! Вы можете создать свой конфирмер, использовать свои картинки.
Картинка генерится на основе номера минуты, зашифрованного функцией crypt() с параметром $confirmer_salt. Эта строка (фактически: пароль) должна быть одинаковой в скриптах confirmer_pic.php и confirmer_include.php – иначе ничего не получится.
Пароль $confirmer_salt снаружи можно подобрать… 🙂 но это очень-очень долго :).
В параметре $confirmer_num файла confirmer_include.php задается число буковок, которые надо вводить юзеру в поле.
Картинка валидна в течение $confirmer_min минут после ее создания. Просто скрипт confirmer_include.php проверяет все значения, соотвествующие прошедшим минутам.

Работает конфирмер просто:
1. В начале скрипта form.php вы инклюдите confirmer_include.php.
2. Если запрос пришел методом GET, он выставляет переменную $confirmer_pic, которая содержит html-код: картинку с пояснением.
3. Если запрос пришел методом POST, он выставляет переменную $confirmer_result, которая равна 1, если юзер ввел правильный код, или 0, если неправильный (в этом случае он устанавливает $confirmer_pic и просит повторить ввод). Анализируете эти данные и делаете свои дела.