Pomagam dzieciom!

Optymalizacja i zabezpieczenie / CMS Wordpress

Optymalizacja i zabezpieczenie / CMS Wordpress

Tagi: strony www, programowanie, audyt, zabezpieczenie, optymalizacja, aktualizacja, pozycjonowanie

iREBU Specjalista WordPress

WordPress / Hosting / Pozycjonowanie / Seo


I. Archiwizacja danych

Przed rozpoczęciem pracy należy wykonać kopię zapasową strony internetowej:

  • Updraft Plus.

II. Aktualizacja CMS WordPress i dodatków

Pierwszym etapem optymalizacji jest aktualizacja systemu oraz dodatków do najnowszych wersji. Jest to bardzo ważne, ponieważ autorzy regularnie poprawiają błędy, usuwają luki w zabezpieczeniach, zwiększają szybkość działania oraz dodają nowe, interesujące funkcje.

III. Optymalizacja prędkości działania

Strony internetowe oparte na WordPressie często wolno się wczytują, szczególnie w godzinach wieczornych, kiedy serwery są najbardziej obciążone. Optymalizację należy rozpocząć od zmiany wersji PHP na serwerze na 7.4 lub 8 oraz wyłączenia zbędnych dodatków. Następnie należy zainstalować wtyczkę buforującą kod PHP, dzięki której dynamiczne strony otwierają się w postaci statycznych, oraz zapewniająco minimalizacje kod css i js oraz rozmiary zdjęć. Stronę warto skonfigurować pod globalny CDN Cloudflare (cloudflare.com), a pliki statyczne pod CDN Bunny (bunny.net), dzięki czemu strona będzie pobierana z najbliższych użytkownikowi lokalizacji na całym świecie.

  • Code Profiler i Query Monitor, analiza obciążenia generowanego przez WordPress i dodatki,
  • Plugin Load Filter, selektywne wyłączenie dodatków,
  • WP Rocket, buforowanie kodu PHP oraz minimalizacja kodu css i js,
  • ShortPixel, optymalizacja zdjęć, dostarczanie plików w nowszych formatach jak webp i avif,
  • optymalizacja .htaccess, modyfikacja czasu buforowania kodu przez przeglądarkę, kompresja kodu dla przeglądarki:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule \.(php|aspx|html|htm|css|js|pdf|doc|xls|docx|xlsx|jpg|jpeg|png|svg|webp|avif|ico|gif|swf|mp4|mp3|ogg|eot|woff|woff2|ttf|suspected|env)$ - [F,L]

<FilesMatch "\.(css|js|xml|json|txt|pdf|doc|xls|docx|xlsx|jpg|jpeg|png|svg|ico|gif|swf|mp4|mp3|ogg|eot|woff|woff2|ttf)$">
	RequestHeader unset Cookie
	Header unset Set-Cookie
	Header unset Cookie
</FilesMatch>

<IfModule mod_expires.c>
# FileETag none
	FileETag MTime
	ExpiresActive on
	ExpiresDefault "access plus 1 days"
	ExpiresByType text/html "access plus 1 hours"

	ExpiresByType text/xml "access plus 1 hours"
	ExpiresByType application/xml+rss "access plus 1 hours"
	ExpiresByType application/json "access plus 1 hours"
	ExpiresByType text/plain "access plus 1 hours"

	ExpiresByType text/css "access plus 1 day"
	ExpiresByType text/javascript "access plus 1 day"
	ExpiresByType application/x-javascript "access plus 1 day"
	ExpiresByType application/javascript "access plus 1 day"
	ExpiresByType text/x-component "access plus 1 day"

	ExpiresByType application/pdf  "access plus 1 day"
	ExpiresByType application/msword  "access plus 1 day"
	ExpiresByType application/vnd.ms-excel  "access plus 1 day"

	ExpiresByType image/jpeg "access plus 30 days"
	ExpiresByType image/png "access plus 30 days"
	ExpiresByType image/svg+xml "access plus 30 days"
	ExpiresByType image/webp "access plus 30 days"
	ExpiresByType image/avif "access plus 30 days"
	ExpiresByType image/x-icon "access plus 30 days"
	ExpiresByType image/gif "access plus 30 days"
	ExpiresByType application/x-shockwave-flash "access plus 30 days"
	ExpiresByType video/mp4 "access plus 30 days"
	ExpiresByType video/ogg "access plus 30 days"
	ExpiresByType audio/mp4 "access plus 30 days"
	ExpiresByType audio/mp3 "access plus 30 days"
	ExpiresByType audio/ogg "access plus 30 days"

	ExpiresByType application/x-font-woff "access plus 1 years"
	ExpiresByType application/x-font-woff2 "access plus 1 years"
	ExpiresByType application/x-font-ttf "access plus 1 years"
	ExpiresByType application/x-font-opentype "access plus 1 years"
	ExpiresByType application/vnd.ms-fontobject "access plus 1 years"
</IfModule>
<IfModule mod_deflate.c>
	AddOutputFilterByType DEFLATE text/html
	AddOutputFilterByType DEFLATE text/plain
	AddOutputFilterByType DEFLATE application/json
	AddOutputFilterByType DEFLATE text/xml
	AddOutputFilterByType DEFLATE application/xml+rss
	AddOutputFilterByType DEFLATE text/css
	AddOutputFilterByType DEFLATE text/javascript
	AddOutputFilterByType DEFLATE application/x-javascript
	AddOutputFilterByType DEFLATE application/javascript
	AddOutputFilterByType DEFLATE text/x-component
	AddOutputFilterByType DEFLATE image/svg+xml
	AddOutputFilterByType DEFLATE application/x-shockwave-flash
	AddOutputFilterByType DEFLATE application/x-font-woff
	AddOutputFilterByType DEFLATE application/x-font-woff2
	AddOutputFilterByType DEFLATE application/x-font-ttf
	AddOutputFilterByType DEFLATE application/x-font-opentype
	AddOutputFilterByType DEFLATE application/vnd.ms-fontobject
# Remove browser bugs (only needed for really old browsers)
	BrowserMatch ^Mozilla/4 gzip-only-text/html
	BrowserMatch ^Mozilla/4\.0[678] no-gzip
	BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
	Header append Vary User-Agent
</IfModule>

IV. Optymalizacja bazy danych

Należy zoptymalizować tabele bazy danych, opróżnić kosz, usunąć wersje wpisów, automatyczne szkice, spam oraz stare dane. Wersje wpisów zajmują najwięcej miejsca, dlatego warto ograniczyć częstotliwość auto zapisu wpisów oraz ilość wersji do 100. Zmiane można wykonać w pliku wp-config.php:

define('AUTOSAVE_INTERVAL',3600);
define('WP_POST_REVISIONS',100);

V. Bezpieczeństwo

Po pierwsze, podczas instalacji WordPressa należy podać inną niż domyślna nazwę bazy danych. Nie wolno także używać domyślnych loginów "admin" lub "administrator" jako nazwy administratora. Jeżeli udzielamy się na stronie, nie powinniśmy używać konta administratora do publikowania artykułów oraz komentowania, a pseudonim należy ustawić inny niż nazwa użytkownika. Dzięki temu unikniemy wielu ataków próbujących na siłę zdobyć nasze hasło do serwisu.

  • Wordfence Security, zabezpieczenie przed podstawowymi atakami i wirusami,
  • zabezpieczenie PHP:
function sr_security() {
  global $user_ID;

  if ($user_ID) {
    if ( !current_user_can('manage_options') ) {
      if (stripos($_SERVER['REQUEST_URI'], "eval(") ||
          stripos($_SERVER['REQUEST_URI'], "CONCAT") ||
          stripos($_SERVER['REQUEST_URI'], "UNION+SELECT") ||
          stripos($_SERVER['REQUEST_URI'], "base64")) {
        if (!headers_sent()) {
          header("HTTP/1.1 414 Request-URI Too Long");
          header("Status: 414 Request-URI Too Long");
          header("Connection: Close");
        }
        exit;
      }
    }
  }
}
add_action( 'init', 'sr_security' );
  • zabezpieczenie .htaccess, blokada wyszukiwania autorów, 8G BLACKLIST/FIREWALL:
RewriteCond %{REQUEST_URI} ^/wp-login.php [NC]
RewriteCond %{HTTP:Accept-Language} !^(pl|de|en) [NC]
RewriteRule .* - [F,L]

RewriteCond %{QUERY_STRING} author= [NC]
RewriteCond %{REQUEST_URI} !^./wp-admin [NC]
RewriteRule . - [F,L]

RewriteCond %{QUERY_STRING} nowprocket= [NC,OR]
RewriteCond %{QUERY_STRING} no_optimize= [NC]
RewriteRule ^.*$ https://%{HTTP_HOST}%{REQUEST_URI}? [R=301,L]

RewriteCond %{REQUEST_URI} ^.*/wp-json [NC]
RewriteCond %{REQUEST_URI} !^.*/wp-json/contact-form-7 [NC]
RewriteCond %{REQUEST_URI} !^.*/wp-json/wc [NC]
RewriteCond %{REQUEST_URI} !^.*/wp-json/przelewy24 [NC]
RewriteCond %{REQUEST_URI} !^.*/wp-json/complianz [NC]
RewriteCond %{HTTP_COOKIE} !^.*wordpress_logged_in.*$ [NC]

RewriteCond %{REQUEST_URI} undefined$ [NC]
RewriteRule .* - [F,L]

ErrorDocument 404 /empty.html

# 8G FIREWALL v1.3 20240222
# https://perishablepress.com/8g-firewall/

# 8G:[CORE]
ServerSignature Off
Options -Indexes
RewriteEngine On
RewriteBase /

# 8G:[QUERY STRING]
<IfModule mod_rewrite.c>

 RewriteCond %{QUERY_STRING} ^(%2d|-)[^=]+$ [NC,OR]
 RewriteCond %{QUERY_STRING} ([a-z0-9]{4000,}) [NC,OR]
 RewriteCond %{QUERY_STRING} (/|%2f)(:|%3a)(/|%2f) [NC,OR]
 RewriteCond %{QUERY_STRING} (etc/(hosts|motd|shadow)) [NC,OR]
 RewriteCond %{QUERY_STRING} (order(\s|%20)by(\s|%20)1--) [NC,OR]
 RewriteCond %{QUERY_STRING} (/|%2f)(\*|%2a)(\*|%2a)(/|%2f) [NC,OR]
 RewriteCond %{QUERY_STRING} (`|<|>|\^|\|\\|0x00|%00|%0d%0a) [NC,OR]
 RewriteCond %{QUERY_STRING} (f?ckfinder|f?ckeditor|fullclick) [NC,OR]
 RewriteCond %{QUERY_STRING} ((.*)header:|(.*)set-cookie:(.*)=) [NC,OR]
 RewriteCond %{QUERY_STRING} (localhost|127(\.|%2e)0(\.|%2e)0(\.|%2e)1) [NC,OR]
 RewriteCond %{QUERY_STRING} (cmd|command)(=|%3d)(chdir|mkdir)(.*)(x20) [NC,OR]
 RewriteCond %{QUERY_STRING} (globals|mosconfig([a-z_]{1,22})|request)(=|\[) [NC,OR]
 RewriteCond %{QUERY_STRING} (/|%2f)((wp-)?config)((\.|%2e)inc)?((\.|%2e)php) [NC,OR]
 RewriteCond %{QUERY_STRING} (thumbs?(_editor|open)?|tim(thumbs?)?)((\.|%2e)php) [NC,OR]
 RewriteCond %{QUERY_STRING} (absolute_|base|root_)(dir|path)(=|%3d)(ftp|https?) [NC,OR]
 RewriteCond %{QUERY_STRING} (s)?(ftp|inurl|php)(s)?(:(/|%2f|%u2215)(/|%2f|%u2215)) [NC,OR]
 RewriteCond %{QUERY_STRING} (\.|20)(get|the)(_|%5f)(permalink|posts_page_url)(\(|%28) [NC,OR]
 RewriteCond %{QUERY_STRING} ((boot|win)((\.|%2e)ini)|etc(/|%2f)passwd|self(/|%2f)environ) [NC,OR]
 RewriteCond %{QUERY_STRING} (((/|%2f){3,3})|((\.|%2e){3,3})|((\.|%2e){2,2})(/|%2f|%u2215)) [NC,OR]
 RewriteCond %{QUERY_STRING} (benchmark|char|exec|fopen|function|html)(.*)(\(|%28)(.*)(\)|%29) [NC,OR]
 RewriteCond %{QUERY_STRING} (php)([0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}) [NC,OR]
 RewriteCond %{QUERY_STRING} (e|%65|%45)(v|%76|%56)(a|%61|%31)(l|%6c|%4c)(.*)(\(|%28)(.*)(\)|%29) [NC,OR]
 RewriteCond %{QUERY_STRING} (/|%2f)(=|%3d|$&|_mm|cgi(\.|-)|inurl(:|%3a)(/|%2f)|(mod|path)(=|%3d)(\.|%2e)) [NC,OR]
 RewriteCond %{QUERY_STRING} (<|%3c)(.*)(e|%65|%45)(m|%6d|%4d)(b|%62|%42)(e|%65|%45)(d|%64|%44)(.*)(>|%3e) [NC,OR]
 RewriteCond %{QUERY_STRING} (<|%3c)(.*)(i|%69|%49)(f|%66|%46)(r|%72|%52)(a|%61|%41)(m|%6d|%4d)(e|%65|%45)(.*)(>|%3e) [NC,OR]
 RewriteCond %{QUERY_STRING} (<|%3c)(.*)(o|%4f|%6f)(b|%62|%42)(j|%4a|%6a)(e|%65|%45)(c|%63|%43)(t|%74|%54)(.*)(>|%3e) [NC,OR]
 RewriteCond %{QUERY_STRING} (<|%3c)(.*)(s|%73|%53)(c|%63|%43)(r|%72|%52)(i|%69|%49)(p|%70|%50)(t|%74|%54)(.*)(>|%3e) [NC,OR]
 RewriteCond %{QUERY_STRING} (\+|%2b|%20)(d|%64|%44)(e|%65|%45)(l|%6c|%4c)(e|%65|%45)(t|%74|%54)(e|%65|%45)(\+|%2b|%20) [NC,OR]
 RewriteCond %{QUERY_STRING} (\+|%2b|%20)(i|%69|%49)(n|%6e|%4e)(s|%73|%53)(e|%65|%45)(r|%72|%52)(t|%74|%54)(\+|%2b|%20) [NC,OR]
 RewriteCond %{QUERY_STRING} (\+|%2b|%20)(s|%73|%53)(e|%65|%45)(l|%6c|%4c)(e|%65|%45)(c|%63|%43)(t|%74|%54)(\+|%2b|%20) [NC,OR]
 RewriteCond %{QUERY_STRING} (\+|%2b|%20)(u|%75|%55)(p|%70|%50)(d|%64|%44)(a|%61|%41)(t|%74|%54)(e|%65|%45)(\+|%2b|%20) [NC,OR]
 RewriteCond %{QUERY_STRING} (\\x00|(\"|%22|\'|%27)?0(\"|%22|\'|%27)?(=|%3d)(\"|%22|\'|%27)?0|cast(\(|%28)0x|or%201(=|%3d)1) [NC,OR]
 RewriteCond %{QUERY_STRING} (g|%67|%47)(l|%6c|%4c)(o|%6f|%4f)(b|%62|%42)(a|%61|%41)(l|%6c|%4c)(s|%73|%53)(=|\[|%[0-9A-Z]{0,2}) [NC,OR]
 RewriteCond %{QUERY_STRING} (_|%5f)(r|%72|%52)(e|%65|%45)(q|%71|%51)(u|%75|%55)(e|%65|%45)(s|%73|%53)(t|%74|%54)(=|\[|%[0-9A-Z]{2,}) [NC,OR]
 RewriteCond %{QUERY_STRING} (j|%6a|%4a)(a|%61|%41)(v|%76|%56)(a|%61|%31)(s|%73|%53)(c|%63|%43)(r|%72|%52)(i|%69|%49)(p|%70|%50)(t|%74|%54)(:|%3a)(.*)(;|%3b|\)|%29) [NC,OR]
 RewriteCond %{QUERY_STRING} (b|%62|%42)(a|%61|%41)(s|%73|%53)(e|%65|%45)(6|%36)(4|%34)(_|%5f)(e|%65|%45|d|%64|%44)(e|%65|%45|n|%6e|%4e)(c|%63|%43)(o|%6f|%4f)(d|%64|%44)(e|%65|%45)(.*)(\()(.*)(\)) [NC,OR]
 RewriteCond %{QUERY_STRING} (@copy|\$_(files|get|post)|allow_url_(fopen|include)|auto_prepend_file|blexbot|browsersploit|call_user_func_array|(php|web)shell|curl(_exec|test)|disable_functions?|document_root) [NC,OR]
 RewriteCond %{QUERY_STRING} (elastix|encodeuricom|exploit|fclose|fgets|file_put_contents|fputs|fsbuff|fsockopen|gethostbyname|ghost|grablogin|hmei7|hubs_post-cta|input_file|invokefunction|(\b)load_file|open_basedir|outfile|p3dlite) [NC,OR]
 RewriteCond %{QUERY_STRING} (pass(=|%3d)shell|passthru|phpinfo|phpshells|popen|proc_open|quickbrute|remoteview|root_path|safe_mode|shell_exec|site((.){0,2})copier|sp_executesql|sux0r|trojan|udtudt|user_func_array|wget|wp_insert_user|xertive) [NC,OR]
 RewriteCond %{QUERY_STRING} (;|<|>|\'|\"|\)|%0a|%0d|%22|%27|%3c|%3e|%00)(.*)(/\*|alter|base64|benchmark|cast|concat|convert|create|encode|declare|delay|delete|drop|hex|insert|load|md5|null|replace|request|script|select|set|sleep|truncate|unhex|update) [NC,OR]
 RewriteCond %{QUERY_STRING} ((\+|%2b)(concat|delete|get|select|union)(\+|%2b)) [NC,OR]
 RewriteCond %{QUERY_STRING} (union)(.*)(select)(.*)(\(|%28) [NC,OR]
 RewriteCond %{QUERY_STRING} (concat|eval)(.*)(\(|%28) [NC]
  RewriteRule .* - [F]

 # RewriteRule .* /nG_log.php?log [END,NE,E=nG_QUERY_STRING:%1___%2___%3]

</IfModule>

# 8G:[REQUEST URI]
<IfModule mod_rewrite.c>

 RewriteCond %{REQUEST_URI} (,,,) [NC,OR]
 RewriteCond %{REQUEST_URI} (-------) [NC,OR]
 RewriteCond %{REQUEST_URI} (\^|`|<|>|\\|\|) [NC,OR]
 RewriteCond %{REQUEST_URI} ([a-z0-9]{2000,}) [NC,OR]
 RewriteCond %{REQUEST_URI} (=?\\(\'|%27)/?)(\.) [NC,OR]
 RewriteCond %{REQUEST_URI} (/)(\*|\"|\'|\.|,|&|&amp;?)/?$ [NC,OR]
 RewriteCond %{REQUEST_URI} (\.)(php)(\()?([0-9]+)(\))?(/)?$ [NC,OR]
 RewriteCond %{REQUEST_URI} /((.*)header:|(.*)set-cookie:(.*)=) [NC,OR]
 RewriteCond %{REQUEST_URI} (\.(s?ftp-?)config|(s?ftp-?)config\.) [NC,OR]
 RewriteCond %{REQUEST_URI} (/)(f?ckfinder|fck/|f?ckeditor|fullclick) [NC,OR]
 RewriteCond %{REQUEST_URI} (/)((force-)?download|framework/main)(\.php) [NC,OR]
 RewriteCond %{REQUEST_URI} (\{0\}|\"?0\"?=\"?0|\(/\(|\.\.\.|\+\+\+|\\\") [NC,OR]
 RewriteCond %{REQUEST_URI} (/)(vbull(etin)?|boards|vbforum|vbweb|webvb)(/)? [NC,OR]
 RewriteCond %{REQUEST_URI} (\.|20)(get|the)(_)(permalink|posts_page_url)(\() [NC,OR]
 RewriteCond %{REQUEST_URI} (///|\?\?|/&&|/\*(.*)\*/|/:/|\\\\|0x00|%00|%0d%0a) [NC,OR]
 RewriteCond %{REQUEST_URI} (/)(cgi_?)?alfa(_?cgiapi|_?data|_?v[0-9]+)?(\.php) [NC,OR]
 RewriteCond %{REQUEST_URI} (thumbs?(_editor|open)?|tim(thumbs?)?)((\.|%2e)php) [NC,OR]
 RewriteCond %{REQUEST_URI} (/)((boot)?_?admin(er|istrator|s)(_events)?)(\.php) [NC,OR]
 RewriteCond %{REQUEST_URI} (/%7e)(root|ftp|bin|nobody|named|guest|logs|sshd)(/) [NC,OR]
 RewriteCond %{REQUEST_URI} (archive|backup|db|master|sql|wp|www|wwwroot)\.(gz|zip) [NC,OR]
 RewriteCond %{REQUEST_URI} (/)(\.?mad|alpha|c99|php|web)?sh(3|e)ll([0-9]+|\w)(\.php) [NC,OR]
 RewriteCond %{REQUEST_URI} (/)(admin-?|file-?)(upload)(bg|_?file|ify|svu|ye)?(\.php) [NC,OR]
 RewriteCond %{REQUEST_URI} (/)(etc|var)(/)(hidden|secret|shadow|ninja|passwd|tmp)(/)?$ [NC,OR]
 RewriteCond %{REQUEST_URI} (s)?(ftp|http|inurl|php)(s)?(:(/|%2f|%u2215)(/|%2f|%u2215)) [NC,OR]
 RewriteCond %{REQUEST_URI} (/)(=|\$&?|&?(pws|rk)=0|_mm|_vti_|cgi(\.|-)?|(=|/|;|,)nt\.) [NC,OR]
 RewriteCond %{REQUEST_URI} (\.)(ds_store|htaccess|htpasswd|init?|mysql-select-db)(/)?$ [NC,OR]
 RewriteCond %{REQUEST_URI} (/)(bin)(/)(cc|chmod|chsh|cpp|echo|id|kill|mail|nasm|perl|ping|ps|python|tclsh)(/)?$ [NC,OR]
 RewriteCond %{REQUEST_URI} (/)(::[0-9999]|%3a%3a[0-9999]|127\.0\.0\.1|ccx|localhost|makefile|pingserver|wwwroot)(/)? [NC,OR]
 RewriteCond %{REQUEST_URI} ^(/)(123|backup|bak|beta|bkp|default|demo|dev(new|old)?|home|new-?site|null|old|old_files|old1)(/)?$ [NC,OR]
 RewriteCond %{REQUEST_URI} (/)?j((\s)+)?a((\s)+)?v((\s)+)?a((\s)+)?s((\s)+)?c((\s)+)?r((\s)+)?i((\s)+)?p((\s)+)?t((\s)+)?(%3a|:) [NC,OR]
 RewriteCond %{REQUEST_URI} ^(/)(old-?site(back)?|old(web)?site(here)?|sites?|staging|undefined|wordpress([0-9]+)|wordpress-old)(/)?$ [NC,OR]
 RewriteCond %{REQUEST_URI} (/)(filemanager|htdocs|httpdocs|https?|login|mailman|mailto|msoffice|undefined|usage|var|vhosts|webmaster|www)(/) [NC,OR]
 RewriteCond %{REQUEST_URI} (\(null\)|\{\$itemURL\}|cast\(0x|echo(.*)kae|etc/passwd|eval\(|null(.*)null|open_basedir|self/environ|\+union\+all\+select) [NC,OR]
 RewriteCond %{REQUEST_URI} (/)(db-?|j-?|my(sql)?-?|setup-?|web-?|wp-?)?(admin-?)?(setup-?)?(conf\b|conf(ig)?)(uration)?(\.?bak|\.inc)?(\.inc|\.old|\.php|\.txt) [NC,OR]
 RewriteCond %{REQUEST_URI} (/)((.*)crlf-?injection|(.*)xss-?protection|__(inc|jsc)|administrator|author-panel|cgi-bin|database|downloader|(db|mysql)-?admin)(/) [NC,OR]
 RewriteCond %{REQUEST_URI} (/)(haders|head|hello|helpear|incahe|includes?|indo(sec)?|infos?|install|ioptimizes?|jmail|js|king|kiss|kodox|kro|legion|libsoft)(\.php) [NC,OR]
 RewriteCond %{REQUEST_URI} (/)(awstats|document_root|dologin\.action|error.log|extension/ext|htaccess\.|lib/php|listinfo|phpunit/php|remoteview|server/php|www\.root\.) [NC,OR]
 RewriteCond %{REQUEST_URI} (base64_(en|de)code|benchmark|curl_exec|e?chr|eval|function|fwrite|(f|p)open|html|leak|passthru|p?fsockopen|phpinfo)(.*)(\(|%28)(.*)(\)|%29) [NC,OR]
 RewriteCond %{REQUEST_URI} (posix_(kill|mkfifo|setpgid|setsid|setuid)|(child|proc)_(close|get_status|nice|open|terminate)|(shell_)?exec|system)(.*)(\(|%28)(.*)(\)|%29) [NC,OR]
 RewriteCond %{REQUEST_URI} (/)((c99|php|web)?shell|crossdomain|fileditor|locus7|nstview|php(get|remoteview|writer)|r57|remview|sshphp|storm7|webadmin)(.*)(\.|%2e|\(|%28) [NC,OR]
 RewriteCond %{REQUEST_URI} /((wp-)((201\d|202\d|[0-9]{2})|ad|admin(fx|rss|setup)|booking|confirm|crons|data|file|mail|one|plugins?|readindex|reset|setups?|story))(\.php) [NC,OR]
 RewriteCond %{REQUEST_URI} (/)(^$|-|\!|\w|\.(.*)|100|123|([^iI])?ndex|index\.php/index|3xp|777|7yn|90sec|99|active|aill|ajs\.delivery|al277|alexuse?|ali|allwrite)(\.php) [NC,OR]
 RewriteCond %{REQUEST_URI} (/)(analyser|apache|apikey|apismtp|authenticat(e|ing)|autoload_classmap|backup(_index)?|bakup|bkht|black|bogel|bookmark|bypass|cachee?)(\.php) [NC,OR]
 RewriteCond %{REQUEST_URI} (/)(clean|cm(d|s)|con|connector\.minimal|contexmini|contral|curl(test)?|data(base)?|db|db-cache|db-safe-mode|defau11|defau1t|dompdf|dst)(\.php) [NC,OR]
 RewriteCond %{REQUEST_URI} (/)(elements|emails?|error.log|ecscache|edit-form|eval-stdin|export|evil|fbrrchive|filemga|filenetworks?|f0x|gank(\.php)?|gass|gel|guide)(\.php) [NC,OR]
 RewriteCond %{REQUEST_URI} (/)(logo_img|lufix|mage|marg|mass|mide|moon|mssqli|mybak|myshe|mysql|mytag_js?|nasgor|newfile|news|nf_?tracking|nginx|ngoi|ohayo|old-?index)(\.php) [NC,OR]
 RewriteCond %{REQUEST_URI} (/)(olux|owl|pekok|petx|php-?info|phpping|popup-pomo|priv|r3x|radio|rahma|randominit|readindex|readmy|reads|repair-?bak|robot(s\.txt)?|root)(\.php) [NC,OR]
 RewriteCond %{REQUEST_URI} (/)(router|savepng|semayan|shell|shootme|sky|socket(c|i|iasrgasf)ontrol|sql(bak|_?dump)?|support|sym403|sys|system_log|test|tmp-?(uploads)?)(\.php) [NC,OR]
 RewriteCond %{REQUEST_URI} (/)(traffic-advice|u2p|udd|ukauka|up__uzegp|up14|upa?|upxx?|vega|vip|vu(ln)?(\w)?|webroot|weki|wikindex|wordpress|wp_logns?|wp_wrong_datlib)(\.php) [NC,OR]
 RewriteCond %{REQUEST_URI} (/)((wp-?)?install(ation)?|wp(3|4|5|6)|wpfootes|wpzip|ws0|wsdl|wso(\w)?|www|(uploads|wp-admin)?xleet(-shell)?|xmlsrpc|xup|xxu|xxx|zibi|zipy)(\.php) [NC,OR]
 RewriteCond %{REQUEST_URI} (bkv74|cachedsimilar|core-stab|crgrvnkb|ctivrc|deadcode|deathshop|dkiz|e7xue|eqxafaj90zir|exploits|ffmkpcal|filellli7|(fox|sid)wso|gel4y|goog1es|gvqqpinc) [NC,OR]
 RewriteCond %{REQUEST_URI} (@md5|00.temp00|0byte|0d4y|0day|0xor|wso1337|1h6j5|3xp|40dd1d|4price|70bex?|a57bze893|abbrevsprl|abruzi|adminer|aqbmkwwx|archivarix|backdoor|beez5|bgvzc29) [NC,OR]
 RewriteCond %{REQUEST_URI} (handler_to_code|hax(0|o)r|hmei7|hnap1|home_url=|ibqyiove|icxbsx|indoxploi|jahat|jijle3|kcrew|keywordspy|laobiao|lock360|longdog|marijuan|mod_(aratic|ariimag)) [NC,OR]
 RewriteCond %{REQUEST_URI} (mobiquo|muiebl|nessus|osbxamip|phpunit|priv8|qcmpecgy|r3vn330|racrew|raiz0|reportserver|r00t|respectmus|rom2823|roseleif|sh3ll|site((.){0,2})copier|sqlpatch|sux0r) [NC,OR]
 RewriteCond %{REQUEST_URI} (sym403|telerik|uddatasql|utchiha|visualfrontend|w0rm|wangdafa|wpyii2|wsoyanzo|x5cv|xattack|xbaner|xertive|xiaolei|xltavrat|xorz|xsamxad|xsvip|xxxs?s?|zabbix|zebda) [NC,OR]
 RewriteCond %{REQUEST_URI} (\.)(7z|ab4|ace|afm|alfa|as(h|m)x?|aspx?|aws|axd|bash|ba?k?|bat|bin|bz2|cfg|cfml?|cgi|cms|conf\b|config|ctl|dat|db|dist|dll|eml|eng(ine)?|env|et2|exe|fec|fla|git(ignore)?)$ [NC,OR]
 RewriteCond %{REQUEST_URI} (\.)(hg|idea|inc|index|ini|inv|jar|jspa?|lib|local|log|lqd|make|mbf|mdb|mmw|mny|mod(ule)?|msi|old|one|orig|out|passwd|pdb|php\.(php|suspect(ed)?)|php([^\/])|phtml?|pl|profiles?)$ [NC,OR]
 RewriteCond %{REQUEST_URI} (\.)(psd|pst|ptdb|production|pwd|py|qbb|qdf|rar|rdf|remote|save|sdb|sql|sh|soa|svn|swf|swl|swo|swp|stx|tar|tax|tgz?|theme|tls|tmb|tmd|wok|wow|xsd|xtmpl|xz|ya?ml|za|zlib)$ [NC]

 RewriteRule .* - [F]

 # RewriteRule .* /nG_log.php?log [END,NE,E=nG_REQUEST_URI:%1___%2___%3]

</IfModule>

# 8G:[USER AGENT]
<IfModule mod_rewrite.c>

 RewriteCond %{HTTP_USER_AGENT} ([a-z0-9]{2000,}) [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} (&lt;|%0a|%0d|%27|%3c|%3e|%00|0x00|\\\x22) [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} (ahrefs|archiver|curl|libwww-perl|pycurl|scan) [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} (oppo\sa33|(c99|php|web)shell|site((.){0,2})copier) [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} (base64_decode|bin/bash|disconnect|eval|unserializ) [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} (acapbot|acoonbot|alexibot|asterias|attackbot|awario|backdor|becomebot|binlar|blackwidow|blekkobot|blex|blowfish|bullseye|bunnys|butterfly|careerbot|casper) [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} (checkpriv|cheesebot|cherrypick|chinaclaw|choppy|clshttp|cmsworld|copernic|copyrightcheck|cosmos|crescent|datacha|(\b)demon(\b)|diavol|discobot|dittospyder) [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} (dotbot|dotnetdotcom|dumbot|econtext|emailcollector|emailsiphon|emailwolf|eolasbot|eventures|extract|eyenetie|feedfinder|flaming|flashget|flicky|foobot|fuck) [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} (g00g1e|getright|gigabot|go-ahead-got|gozilla|grabnet|grafula|harvest|heritrix|httracks?|icarus6j|jetbot|jetcar|jikespider|kmccrew|leechftp|libweb|liebaofast) [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} (linkscan|linkwalker|loader|lwp-download|majestic|masscan|miner|mechanize|mj12bot|morfeus|moveoverbot|netmechanic|netspider|nicerspro|nikto|ninja|nominet|nutch) [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} (octopus|pagegrabber|petalbot|planetwork|postrank|proximic|purebot|queryn|queryseeker|radian6|radiation|realdownload|remoteview|rogerbot|scan|scooter|seekerspid) [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} (semalt|siclab|sindice|sistrix|sitebot|siteexplorer|sitesnagger|skygrid|smartdownload|snoopy|sosospider|spankbot|spbot|sqlmap|stackrambler|stripper|sucker|surftbot) [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} (sux0r|suzukacz|suzuran|takeout|teleport|telesoft|true_robots|turingos|turnit|vampire|vikspider|voideye|webleacher|webreaper|webstripper|webvac|webviewer|webwhacker) [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} (winhttp|wwwoffle|woxbot|xaldon|xxxyy|yamanalab|yioopbot|youda|zeus|zmeu|zune|zyborg) [NC]

 RewriteRule .* - [F]

 # RewriteRule .* /nG_log.php?log [END,NE,E=nG_USER_AGENT:%1]

</IfModule>

# 8G:[REMOTE HOST]
<IfModule mod_rewrite.c>

 RewriteCond %{REMOTE_HOST} (163data|amazonaws|colocrossing|crimea|g00g1e|justhost|kanagawa|loopia|masterhost|onlinehome|poneytel|sprintdatacenter|reverse.softlayer|safenet|ttnet|woodpecker|wowrack) [NC]

 RewriteRule .* - [F]

 # RewriteRule .* /nG_log.php?log [END,NE,E=nG_REMOTE_HOST:%1]

</IfModule>

# 8G:[HTTP REFERRER]
<IfModule mod_rewrite.c>

 RewriteCond %{HTTP_REFERER} (order(\s|%20)by(\s|%20)1--) [NC,OR]
 RewriteCond %{HTTP_REFERER} (@unlink|assert\(|print_r\(|x00|xbshell) [NC,OR]
 RewriteCond %{HTTP_REFERER} (100dollars|best-seo|blue\spill|cocaine|ejaculat|erectile|erections|hoodia|huronriveracres|impotence|levitra|libido|lipitor|mopub\.com|phentermin) [NC,OR]
 RewriteCond %{HTTP_REFERER} (pornhelm|pro[sz]ac|sandyauer|semalt\.com|social-buttions|todaperfeita|tramadol|troyhamby|ultram|unicauca|valium|viagra|vicodin|xanax|ypxaieo) [NC]

 RewriteRule .* - [F]

 # RewriteRule .* /nG_log.php?log [END,NE,E=nG_HTTP_REFERRER:%1]

</IfModule>

# 8G:[HTTP COOKIE]
<IfModule mod_rewrite.c>

 RewriteCond %{HTTP_COOKIE} (<|>|\'|%0A|%0D|%27|%3C|%3E|%00) [NC]

 RewriteRule .* - [F]

 # RewriteRule .* /nG_log.php?log [END,NE,E=nG_HTTP_COOKIE:%1]

</IfModule>

# 8G:[REQUEST METHOD]
<IfModule mod_rewrite.c>

 RewriteCond %{REQUEST_METHOD} ^(connect|debug|move|trace|track) [NC]

 RewriteRule .* - [F]

 # RewriteRule .* /nG_log.php?log [END,NE,E=nG_REQUEST_METHOD:%1]

</IfModule>
  • zabezpieczenie wp-config.php, wyłączenie możliwości edycji plików z poziomu WordPress:
define('DISALLOW_FILE_EDIT',true);

WordPress często wykorzystywany jest jako katalog SEO, dlatego każdy jego użytkownik jest potencjalnym celem ataku spamerów. Nie można pozostawić niezabezpieczonych formularzy, w przeciwnym razie zostaniemy zalani masą automatycznie generowanych komentarzy oraz e-maili.

  • Akismet, zabezpieczenie przed spamem,

Więcej informacji można znaleźć na naszym kanale Facebook i Instagram.


Doświadczenie

Na rynku działam ponad 15 lat, zrealizowałem setki projektów. Przede wszystkim lubię swoją pracę, jest ona moją pasją.

Wiedza i innowacyjność

Nieustannie poszerzam swoją wiedzę i rozwijam umiejętności. W codziennym cyklu pracy nigdy nie może zabraknąć czasu na branżowe szkolenia czy konferencje, czytanie blogów oraz testowanie nowych rozwiązań.

Zaangażowanie

Powierzone mi zadania zawsze wykonuję rzetelnie i solidnie. Żadna aplikacja nie zostanie przeniesiona na docelowy serwer bez przejścia przez szereg testów. Błędy, oczywiście, zawsze mogą wystąpić, nie zaprzeczam im. Moim priorytetem jest szybkie i sprawne ich usunięcie.

Elastyczność

Kontakt możliwy również wieczorami i w weekendy. W awaryjnych sytuacjach, wykonuję ekspresowe zadania, także w trybie weekendowym, z krótkim terminem wykonania.

Referencje

  • logo play
  • logo plk
  • logo pkp-cargo
  • logo uniwersytet-warszawski
  • logo politechnika-poznanska
  • logo uniwersytet-adama-mickiewicza
  • logo termy-maltanskie
  • logo rzeczpospolita
  • logo v33
  • logo ferguson
  • logo unitra
  • logo wyzsza-szkola-urody-i-edukacji
  • logo wyzsza-szkola-handlu-i-uslug