{"id":258004,"date":"2022-12-31T10:43:00","date_gmt":"2022-12-31T07:43:00","guid":{"rendered":"https:\/\/inform.click\/wordpress-w-prasie-chron-wlasnymi-rekami\/"},"modified":"2022-12-31T10:43:00","modified_gmt":"2022-12-31T07:43:00","slug":"wordpress-w-prasie-chron-wlasnymi-rekami","status":"publish","type":"post","link":"https:\/\/inform.click\/pl\/wordpress-w-prasie-chron-wlasnymi-rekami\/","title":{"rendered":"WordPress w prasie. Chro\u0144 w\u0142asnymi r\u0119kami"},"content":{"rendered":"<p>\n  WordPress \u2013 wygodna platforma do publikowania artyku\u0142\u00f3w i zarz\u0105dzania, kt\u00f3ra opiera si\u0119 na ogromnej liczbie r\u00f3\u017cnych witryn. Ze wzgl\u0119du na swoj\u0105 powszechno\u015b\u0107 ten CMS od dawna jest \u0142akomym k\u0105skiem dla haker\u00f3w.\n<\/p>\n<p>\n  Niestety, podstawowe ustawienia nie zapewniaj\u0105 odpowiedniego poziomu ochrony, pozostawiaj\u0105c wiele odkrytych dziur w sp\u0142acie kredytu. W tym artykule przejdziemy przez typow\u0105 \u201emodelow\u0105&#8221; witryn\u0119 hakersk\u0105 na WordPress i poka\u017cemy, jak naprawi\u0107 zidentyfikowane luki.\n<\/p>\n<p>\n  Obecnie najpopularniejszym systemem zarz\u0105dzania tre\u015bci\u0105 jest WordPress. Jego udzia\u0142 wynosi 60,4% og\u00f3lnej liczby witryn korzystaj\u0105cych z silnik\u00f3w CMS. Spo\u015br\u00f3d nich, wed\u0142ug statystyk, 67,3% witryn opiera si\u0119 na najnowszej wersji oprogramowania. Tymczasem w ci\u0105gu dwunastu lat dzia\u0142ania silnika internetowego znaleziono 242 luki r\u00f3\u017cnego rodzaju (nie licz\u0105c luk znalezionych we wtyczkach i motywach firm trzecich). Statystyki dodatk\u00f3w innych firm s\u0105 jeszcze smutniejsze. W zwi\u0105zku z tym firma przeprowadzi\u0142a analiz\u0119 2350 szablon\u00f3w Revisium Russified dla WordPress, zaczerpni\u0119tych z r\u00f3\u017cnych \u017ar\u00f3de\u0142. W rezultacie odkryli, \u017ce ponad po\u0142owa (54%) by\u0142a zainfekowana Web Shell, backdoorami, linkami i skryptami blackhat seo (\u201espam&#8221;) oraz skryptami zawieraj\u0105cymi krytyczne luki w zabezpieczeniach. Wi\u0119c usi\u0105d\u017a wygodnie, teraz zrozumiemy, jak przeprowadzi\u0107 audyt na stronie WordPress i wyeliminowa\u0107 znalezione niedoci\u0105gni\u0119cia. U\u017cywana b\u0119dzie wersja 4.\n<\/p>\n<h5>\n  Strona indeksuj\u0105ca<br \/>\n<\/h5>\n<p>\n  Pierwszym krokiem w ka\u017cdym te\u015bcie jest zwykle zebranie informacji o celu. A wtedy bardzo cz\u0119sto pomaga b\u0142\u0119dna konfiguracja Indeksowanie serwisu, kt\u00f3re umo\u017cliwia nieautoryzowanym u\u017cytkownikom przegl\u0105danie zawarto\u015bci okre\u015blonych sekcji serwisu i np. uzyskiwanie informacji o zainstalowanych wtyczkach i motywach, a tak\u017ce dost\u0119p do poufnych danych czy kopii zapasowych baz danych. Aby sprawdzi\u0107, kt\u00f3re katalogi s\u0105 widoczne z zewn\u0105trz, naj\u0142atwiej skorzysta\u0107 z Google. Wystarczy uruchomi\u0107 zapytanie Google Dorks typu site: example.com intitle: \u00abindex of\u00bb inurl: \/ wp-content \/. Operator inurl: Mo\u017cesz okre\u015bli\u0107 nast\u0119puj\u0105ce katalogi:\n<\/p>\n<p>\n  <code>\/wp-content\/<\/code><br \/>\n  <code>\/wp-content\/languages\/plugins<\/code><br \/>\n  <code>\/wp-content\/languages\/themes<\/code><br \/>\n  <code>\/wp-content\/plugins\/<\/code><br \/>\n  <code>\/wp-content\/themes\/<\/code><br \/>\n  <code>\/wp-content\/uploads\/<\/code>\n<\/p>\n<p>\n  Je\u015bli mo\u017cesz przegl\u0105da\u0107 \/wp-content \/plugins\/, nast\u0119pnym krokiem jest zebranie informacji o zainstalowanych wtyczkach i ich wersjach jest znacznie uproszczone. Oczywi\u015bcie mo\u017cesz zapobiec indeksowaniu za pomoc\u0105 pliku robots.txt. Tak wi\u0119c domy\u015blnie nie jest on zawarty w pakiecie instalacyjnym WordPressa, konieczne jest utworzenie i wrzucenie si\u0119 do katalogu g\u0142\u00f3wnego serwisu. Instrukcji tworzenia i pracy z plikiem robots.txt jest ca\u0142kiem sporo, wi\u0119c zostaw ten temat dla siebie. Aby poda\u0107 tylko jedn\u0105 z mo\u017cliwych opcji:\n<\/p>\n<pre><code>User-Agent: *\nDisallow: \/cgi-bin\nDisallow: \/wp-login.php\nDisallow: \/wp-admin\/\nDisallow: \/wp-includes\/\nDisallow: \/wp-content\/\nDisallow: \/wp-content\/plugins\/\nDisallow: \/wp-content\/themes\/\nDisallow: \/?author=*\nAllow: \/<\/code><\/pre>\n<p>\n  Je\u015bli pliki przechowywane w folderze uploads s\u0105 informacjami poufnymi, dodaj do tej listy wiersz: Disallow: \/ wp-content \/ uploads \/. Z drugiej strony plik robots.txt nie jest zalecany do umieszczania link\u00f3w do katalog\u00f3w, kt\u00f3re zosta\u0142y utworzone specjalnie do przechowywania poufnych informacji. W przeciwnym razie u\u0142atwisz w ten spos\u00f3b zadanie atakuj\u0105cemu, poniewa\u017c jest to pierwsze miejsce, w kt\u00f3rym zwykle wszyscy szukaj\u0105 \u201eyammy&#8221;.\n<\/p>\n<h5>\n  Wtyczki bezpiecze\u0144stwa dla WordPress<br \/>\n<\/h5>\n<ul>\n<li>\n    <a href=\"https:\/\/wordpress.org\/plugins\/login-lockdown\/\" target=\"_blank\" rel=\"noopener\">Login LockDown<\/a> \u2013 ogranicza liczb\u0119 nieudanych pr\u00f3b logowania;\n  <\/li>\n<li>\n    <a href=\"https:\/\/revisium.com\/rwp\/\" target=\"_blank\" rel=\"noopener\">Revisium WordPress Theme Checker<\/a> \u2013 szuka typowych fragment\u00f3w z\u0142o\u015bliwego oprogramowania w motywach WordPress;\n  <\/li>\n<li>\n    <a href=\"https:\/\/wordpress.org\/plugins\/sucuri-scanner\/\" target=\"_blank\" rel=\"noopener\">Sucuri Security<\/a> \u2013 prowadzi monitorowanie i wykrywanie z\u0142o\u015bliwego kodu;\n  <\/li>\n<li>\n    <a href=\"https:\/\/wordpress.org\/plugins\/better-wp-security\/\" target=\"_blank\" rel=\"noopener\">IThemes Security (dawniej Better WP Security)<\/a> \u2013 do ochrony WordPressa z wieloma wtyczkami;\n  <\/li>\n<li>\n    <a href=\"https:\/\/wordpress.org\/plugins\/backupwordpress\/\" target=\"_blank\" rel=\"noopener\">BackUpWordPress<\/a> \u2013 wykonuje kopi\u0119 zapasow\u0105 plik\u00f3w i baz danych;\n  <\/li>\n<li>\n    <a href=\"https:\/\/wordpress.org\/plugins\/google-captcha\/\" target=\"_blank\" rel=\"noopener\">Google Captcha (reCAPTCHA)<\/a> \u2013 ustanawia captcha podczas rejestracji, logowania, odzyskiwania has\u0142a oraz w formie komentarzy.\n  <\/li>\n<\/ul>\n<h5>\n  Po\u0142\u0105cz .htaccess<br \/>\n<\/h5>\n<p>\n  Aby ograniczy\u0107 dost\u0119p do poufnych informacji lepiej u\u017cy\u0107 pliku .htaccess \u2013 jest to plik konfiguracyjny u\u017cywany przez Apache Web Server. Rozwa\u017c mo\u017cliwo\u015b\u0107 pliku z punktu widzenia bezpiecze\u0144stwa. Dzi\u0119ki niemu mo\u017cesz: odm\u00f3wi\u0107 dost\u0119pu do katalog\u00f3w i plik\u00f3w, zablokowa\u0107 r\u00f3\u017cne wstrzykni\u0119cia SQL i z\u0142o\u015bliwe skrypty. Ten standardowy plik .htaccess dla CMS WordPress 4.1 trzeba troch\u0119 rozwin\u0105\u0107. Aby zamkn\u0105\u0107 list\u0119 plik\u00f3w i folder\u00f3w, dodaj:\n<\/p>\n<pre><code>Options +FollowSymLinks -Indexes\n \nRewriteCond %{QUERY_STRING} base64_encode[^(]*([^)]*) [OR]<\/code><\/pre>\n<p>\n  Odwo\u0142ania do blok\u00f3w zawieraj\u0105ce kodowanie Base64. Pozb\u0105d\u017a si\u0119 link\u00f3w zawieraj\u0105cych tag :\n<\/p>\n<pre><code>RewriteCond %{QUERY_STRING} (|%3E) [NC,OR]<\/code><\/pre>\n<p>\n  Aby przeciwdzia\u0142a\u0107 skryptom pr\u00f3buj\u0105cym ustawi\u0107 zmienne globalne lub zmieni\u0107 <code>_REQUEST<\/code>zmienn\u0105 za pomoc\u0105 adresu URL:\n<\/p>\n<pre><code>RewriteCond %{QUERY_STRING} GLOBALS (=|[|%[0-9A-Z]{0,2}) [OR]\nRewriteCond %{QUERY_STRING} _REQUEST (=|[|%[0-9A-Z]{0,2})<\/code><\/pre>\n<p>\n  Aby przeciwdzia\u0142a\u0107 \u017c\u0105daniom blokuj\u0105cym wstrzykiwanie kodu SQL do adresu URL zawieraj\u0105cego okre\u015blone s\u0142owa kluczowe:\n<\/p>\n<pre><code>RewriteCond %{query_string} concat.*( [NC,OR]\nRewriteCond %{query_string} union.*select.*( [NC,OR]\nRewriteCond %{query_string} union.*all.*select [NC]\nRewriteRule ^(.*)$ index.php [F,L]<\/code><\/pre>\n<p>\n  Aby zepsu\u0107 \u017cycie zwyk\u0142ym narz\u0119dziom hakerskim, filtruje niekt\u00f3re aplikacje klienckie:\n<\/p>\n<pre><code>SetEnvIf user-agent \u00abIndy Library\u00bb stayout=1\nSetEnvIf user-agent \u00ablibwww-perl\u00bb stayout=1\nSetEnvIf user-agent \u00abWget\u00bb stayout=1\ndeny from env=stayout<\/code><\/pre>\n<h5>\n  Chroni pliki<br \/>\n<\/h5>\n<p>\n  By\u0142oby mi\u0142o ograniczy\u0107 dost\u0119p do krytycznych plik\u00f3w, kt\u00f3re przechowuj\u0105 konfiguracj\u0119 lub po prostu mog\u0105 da\u0107 atakuj\u0105cemu pewne informacje. Mo\u017cesz wybra\u0107 nast\u0119puj\u0105cych kandydat\u00f3w:\n<\/p>\n<ul>\n<li>Wp-config.php zawiera nazw\u0119 bazy danych, nazw\u0119 u\u017cytkownika, has\u0142o i prefiks tabeli;\n  <\/li>\n<li>.htaccess;\n  <\/li>\n<li>Readme.html i ru_RU.po, kt\u00f3re zawieraj\u0105 wersj\u0119 WordPressa;\n  <\/li>\n<li>Zainstaluj.php.\n  <\/li>\n<\/ul>\n<p>\n  Odbywa si\u0119 to w nast\u0119puj\u0105cy spos\u00f3b:\n<\/p>\n<pre><code>\nOrder Allow,Deny\nDeny from all\n<\/code><\/pre>\n<p>\n  Plik .htaccess zawieraj\u0105cy te linie powinien znajdowa\u0107 si\u0119 w tym samym katalogu, w kt\u00f3rym plik jest chroniony. Nast\u0119pnie nie zezwalaj na wy\u015bwietlanie u\u017cytkownik\u00f3w (pami\u0119taj, troch\u0119 wy\u017cej, rozmawiali\u015bmy o tym, jak \u0142atwo jest uzyska\u0107 list\u0119 u\u017cytkownik\u00f3w?):\n<\/p>\n<pre><code>RewriteCond %{QUERY_STRING} author=d\nRewriteRule ^ \/? [L,R=301]<\/code><\/pre>\n<p>\n  Wi\u0119c co jeszcze? Mo\u017cesz zezwoli\u0107 na wej\u015bcie tylko z okre\u015blonych adres\u00f3w IP. Aby to zrobi\u0107, utw\u00f3rz plik .htaccess w swoim wp-admin z nast\u0119puj\u0105cymi zasadami:\n<\/p>\n<pre><code>AuthUserFile \/dev\/null\nAuthGroupFile \/dev\/null\nAuthName \"Access Control\"\nAuthType Basic\norder deny,allow\ndeny from all\nallow from 178.178.178.178  # IP Home computer\nallow from 248.248.248.248  # IP Work computer<\/code><\/pre>\n<p>\n  Ta metoda nie jest zbyt elastyczna i ma zastosowanie tylko wtedy, gdy pracujesz z ograniczon\u0105 liczb\u0105 sta\u0142ych adres\u00f3w IP. W przeciwnym razie zaleca si\u0119 ustawienie has\u0142a do folderu wp-admin panel poprzez hosting (je\u015bli ta funkcjonalno\u015b\u0107).\n<\/p>\n<h5>\n  WWW<br \/>\n<\/h5>\n<p>\n  Zestaw regu\u0142 5G Blacklist i 6G Blacklist beta od Perishable Press, kt\u00f3ry pozwala radzi\u0107 sobie z powszechnymi z\u0142o\u015bliwymi \u017c\u0105daniami adres\u00f3w URL dla WordPress.\n<\/p>\n<h5>\n  Dodatkowe \u015brodki<br \/>\n<\/h5>\n<p>\n  Opr\u00f3cz tego, co zosta\u0142o powiedziane powy\u017cej, mo\u017cna doda\u0107 nast\u0119puj\u0105ce zalecenia. Po pierwsze, u\u017cywaj tylko najnowszych wersji WordPressa i jego komponent\u00f3w \u2013 wyeliminuje to znane luki w zabezpieczeniach. Po drugie, usu\u0144 wtyczki i motywy, kt\u00f3re mog\u0105 by\u0107 r\u00f3wnie\u017c proekspluatirovat. Po trzecie, pobierz motywy i wtyczki WordPress z wiarygodnych \u017ar\u00f3de\u0142, takich jak strony programist\u00f3w i oficjalna strona WordPress. Opr\u00f3cz komputera domowego musisz okresowo sprawdza\u0107 sw\u00f3j zas\u00f3b internetowy Antywirus sieciowy, na przyk\u0142ad AI-Bolit. Je\u015bli masz dost\u0119p do serwera WWW, nastr\u00f3j praw dost\u0119pu do plik\u00f3w i katalog\u00f3w. Zazwyczaj WordPress ustawia pe\u0142ne prawa w fazie instalacji, ale w razie potrzeby mo\u017cna ustawi\u0107 r\u0119cznie chmod. Dla katalogu \u2013 chmod 755 dla plik\u00f3w \u2013 chmod 644. Upewnij si\u0119, \u017ce prawa 777 s\u0105 przypisane tylko tym urz\u0105dzeniom, kt\u00f3re tego potrzebuj\u0105 (czasami jest to konieczne do normalnego dzia\u0142ania niekt\u00f3rych wtyczek). Je\u015bli WordPress przesta\u0142 dzia\u0142a\u0107 normalnie, poeksperymentuj z prawami dost\u0119pu: najpierw wypr\u00f3buj 755, potem 766 i na koniec 777. Aby ca\u0142y plik htaccess udost\u0119pni\u0142 chmod 444 (tylko do odczytu). Je\u015bli witryna ju\u017c nie dzia\u0142a, spr\u00f3buj poeksperymentowa\u0107 z warto\u015bciami 400, 440, 444, 600, 640, 644.\n<\/p>\n<p>\n  Przenie\u015b plik wp-config.php. Ten plik zawiera informacje o ustawieniach, MySQL, prefiksie tabeli, tajnych kluczach i nie tylko. Dlatego konieczne jest przeniesienie do pliku, kt\u00f3ry nie by\u0142 dost\u0119pny z Internetu. Je\u015bli witryna nie znajduje si\u0119 w folderze public_html, to przeci\u0105gnij plik wp-config.php na poziom folderu powy\u017cej, a WordPress automatycznie znajdzie go w katalogu g\u0142\u00f3wnym (dotyczy sytuacji, gdy jest tylko jeden hosting tego CMS-a).\n<\/p>\n<p>\n  Aby skomplikowa\u0107 pow\u0142ok\u0119 castingow\u0105, wy\u0142\u0105cz mo\u017cliwo\u015b\u0107 edycji w\u0105tk\u00f3w konsoli WordPress. W tym celu wstaw nast\u0119puj\u0105c\u0105 lini\u0119 do pliku wp-config.php:\n<\/p>\n<pre><code>define ('DISALLOW_FILE_EDIT', true) ;<\/code><\/pre>\n<p>\n  Kolejny s\u0142aby punkt \u2013 plik install.php (w folderze wp-admin). Dlatego lepiej jest usun\u0105\u0107, zablokowa\u0107 lub zmieni\u0107. Wykonaj jedn\u0105 z nast\u0119puj\u0105cych czynno\u015bci:\n<\/p>\n<ol>\n<li>Po prostu usu\u0144 ten plik \u2013 po instalacji nie jest ju\u017c potrzebny.\n  <\/li>\n<li>Odm\u00f3w dost\u0119pu do pliku przez .htaccess.\n  <\/li>\n<li>Zmie\u0144 nazw\u0119 oryginalnego pliku install.php (np. install.php.old) i utw\u00f3rz nowy plik install.php o nast\u0119puj\u0105cej zawarto\u015bci:\n  <\/li>\n<\/ol>\n<pre><code>&lt;?php header(\"HTTP\/1.1 503 Service Temporarily Unavailable\"); ?&gt;\n&lt;?php header(\"Status 503 Service Temporarily Unavailable\"); ?&gt;\n&lt;?php header(\"Retry-After 3600\"); \/\/ 60 minutes ?&gt;\n&lt;?php mail(\"your@email.com\", \"Database Error\", \"There is a problem with teh database!\"); ?&gt;\n\n\n\n<\/code><\/pre>\n<p><meta http-equiv=\"Content-Type\" content=\"text\/html; charset=utf-8\" \/><\/p>\n<pre>\n<\/pre>\n<p><title><br \/>\n  Error Establishing Database Connection<br \/>\n<\/title><\/p>\n<pre>\n\n\n<\/pre>\n<h1>\n  <code>Error Establishing Database Connection<\/code><br \/>\n<\/h1>\n<pre>\n<br \/>We are currently experiencing database issues. Please check back shortly. Thank you.\n\n<\/pre>\n<p>\n  <code>Opr\u00f3cz powiadamiania odwiedzaj\u0105cych witryn\u0119 skrypt ten wykonuje nast\u0119puj\u0105ce czynno\u015bci:<\/code>\n<\/p>\n<ul>\n<li>\n    <code>Wysy\u0142a klientowi i wyszukiwarkom kod statusu 503 (\u201eUs\u0142uga niedost\u0119pna\");<\/code>\n  <\/li>\n<li>\n    <code>Okre\u015bla przedzia\u0142 czasu, przez kt\u00f3ry klienci i wyszukiwarki mog\u0105 wr\u00f3ci\u0107 na stron\u0119 (parametr regulowany);<\/code>\n  <\/li>\n<li>\n    <code>Poinformuj e-mailem o problemie z baz\u0105 danych w celu podj\u0119cia odpowiednich dzia\u0142a\u0144.<\/code>\n  <\/li>\n<\/ul>\n<p>\n  <code>Fakt, \u017ce we wcze\u015bniejszych wersjach WordPressa (<\/code>\n<\/p>\n<p>\n  <code>Na koniec od\u0142\u0105cz rejestracj\u0119 nowych u\u017cytkownik\u00f3w, je\u015bli nie jest to konieczne. Je\u015bli jednak przewiduje rejestracj\u0119 online, zadbaj o to, aby nowi u\u017cytkownicy po rejestracji otrzymali minimalne uprawnienia.<\/code>\n<\/p>\n<h5>\n  <code>Przydatne linki<\/code><br \/>\n<\/h5>\n<ul>\n<li>\n    <code>&lt;a href=\"https:\/\/codex.wordpress.org\/Hardening_WordPress\"&gt;Utwardzanie WordPressa&lt;\/a&gt;<\/code>\n  <\/li>\n<li>\n    <code>&lt;a href=\"http:\/\/habrahabr.ru\/post\/62814\"&gt;Dziesi\u0119\u0107 krok\u00f3w do ochrony Twojego bloga WordPress&lt;\/a&gt;<\/code>\n  <\/li>\n<li>\n    <code>&lt;a href=\"http:\/\/www.securitylab.ru\/analytics\/456835.php\"&gt;Co drugi zrusyfikowany szablon dla WordPress jest zainfekowany lub podatny na ataki&lt;\/a&gt;<\/code>\n  <\/li>\n<li>\n    <code>&lt;a href=\"http:\/\/xakep.ru\/2015\/04\/01\/wordpress-hack\"&gt;Prezentacja na temat hakowania WordPressa&lt;\/a&gt;<\/code>\n  <\/li>\n<\/ul>\n<h5>\n  <code>Zamkni\u0119cie<\/code><br \/>\n<\/h5>\n<p>\n  <code>WordPress \u2013 do\u015b\u0107 du\u017cy i z\u0142o\u017cony produkt, z jego plusami i minusami. Niestety w domy\u015blnej konfiguracji jego bezpiecze\u0144stwo jest w\u0105tpliwe, poniewa\u017c nawet w obecno\u015bci zwyk\u0142ego skriptkidisa i internetu uda si\u0119 prze\u0142ama\u0107 zabezpieczenia. Dlatego zdecydowanie zalecamy sprawdzenie zasobu w taki sam spos\u00f3b, jak w artykule. A je\u015bli znajdziesz wady \u2013 napraw je, aby zredukowa\u0107 szanse atakuj\u0105cego na z\u0142amanie zasobu do minimum.<\/code>\n<\/p>\n<p>\n  <code>&lt;\/p&gt;\n&lt;p&gt;<\/code>\n<\/p>\n<div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">\n  <code>\u0179r\u00f3d\u0142o nagrywania: &lt;a target=\"_blank\" rel=\"noopener nofollow\" data-pssr=\"\" href=\"http:\/\/www.instantshift.com\/2015\/07\/06\/protect-you-wordpress\/\"&gt;instantshift.com&lt;\/a&gt;<\/code>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>WordPress \u2013 wygodna platforma do publikowania artyku\u0142\u00f3w i zarz\u0105dzania, kt\u00f3ra opiera si\u0119 na ogromnej liczbie r\u00f3\u017cnych witryn. Ze wzgl\u0119du na swoj\u0105 powszechno\u015b\u0107 ten CMS od dawna jest \u0142akomym k\u0105skiem dla haker\u00f3w. Niestety, podstawowe ustawienia nie zapewniaj\u0105 odpowiedniego poziomu ochrony, pozostawiaj\u0105c wiele odkrytych dziur w sp\u0142acie kredytu. W tym artykule przejdziemy przez typow\u0105 \u201emodelow\u0105\u201d witryn\u0119 hakersk\u0105 na WordPress i poka\u017cemy, jak naprawi\u0107 zidentyfikowane luki. Obecnie najpopularniejszym systemem zarz\u0105dzania tre\u015bci\u0105 jest WordPress. Jego udzia\u0142 wynosi 60,4% og\u00f3lnej liczby witryn korzystaj\u0105cych z silnik\u00f3w CMS. Spo\u015br\u00f3d nich wed\u0142ug\u2026<\/p>\n","protected":false},"author":1,"featured_media":222087,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[110,123,227,58,149],"tags":[],"class_list":["post-258004","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-bezpieczenstwo-sieci","category-narzedzia-internetowe","category-podreczniki","category-web-i-wordpress","category-web-porady-i-wskazowki"],"_links":{"self":[{"href":"https:\/\/inform.click\/pl\/wp-json\/wp\/v2\/posts\/258004","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/inform.click\/pl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/inform.click\/pl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/inform.click\/pl\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/inform.click\/pl\/wp-json\/wp\/v2\/comments?post=258004"}],"version-history":[{"count":0,"href":"https:\/\/inform.click\/pl\/wp-json\/wp\/v2\/posts\/258004\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/inform.click\/pl\/wp-json\/wp\/v2\/media\/222087"}],"wp:attachment":[{"href":"https:\/\/inform.click\/pl\/wp-json\/wp\/v2\/media?parent=258004"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/inform.click\/pl\/wp-json\/wp\/v2\/categories?post=258004"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/inform.click\/pl\/wp-json\/wp\/v2\/tags?post=258004"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}