<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Blog on Morfitronik</title>
    <link>https://morfikov.github.io/categories/blog/</link>
    <description>Recent content in Blog on Morfitronik</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>pl-PL</language>
    <lastBuildDate>Tue, 12 Oct 2021 00:15:00 +0200</lastBuildDate><atom:link href="https://morfikov.github.io/categories/blog/feed.xml" rel="self" type="application/rss+xml" />
    <item>
	  <author>Mikhail Morfikov</author>
      <title>Komentarze GitHub Issues na blogu Hugo korzystającym z GitHub Pages</title>
      <link>https://morfikov.github.io/post/komentarze-github-issues-na-blogu-hugo-korzystajacym-z-github-pages/</link>
      <pubDate>Tue, 12 Oct 2021 00:15:00 +0200</pubDate>
      
      <guid>https://morfikov.github.io/post/komentarze-github-issues-na-blogu-hugo-korzystajacym-z-github-pages/</guid>
      <description>&lt;p&gt;Jakiś czas temu &lt;a href=&#34;https://morfikov.github.io/post/disqus-wprowadza-reklamy-disqus-musi-odejsc/&#34;&gt;Disqus wprowadził reklamy&lt;/a&gt; w swoim systemie komentarzy i bez mojej świadomej
oraz dobrowolnej zgody serwował je użytkownikom odwiedzającym mojego bloga. W tamtym czasie nie
miałem za bardzo informacji jak te komentarze zastąpić na statycznej stronie renderowanej przy
pomocy Hugo. Jako, że sporo osób narzekało na to, że tutaj nie ma komentarzy, przez co liczba
maili, które do mnie docierały, była trochę ponad moje moce przerobowe. Postanowiłem zatem
zaimplementować system komentarzy oparty o GitHub Issues, czyli ten mechanizm, z którym
prawdopodobnie każdy z nas miał już styczność zgłaszając bug&#39;a (czy też inne zapytanie) twórcom
swoich ulubionych linux&#39;owych projektów OpenSource. Okazało się, że przy &lt;a href=&#34;https://decovar.dev/blog/2019/04/19/github-comments-hugo/&#34;&gt;pomocy API GitHub&#39;a można
w dość prosty sposób te komentarze pokazać na blogu&lt;/a&gt; ale problem pojawił się w przypadku stron
mających setki czy nawet tysiące wpisów już opublikowanych. Jak zatem na takich blogach wdrożyć
komentarze GitHub&#39;a, tak by przy okazji nie wyskoczyć z okna o 5 nad ranem?&lt;/p&gt;</description>
    </item>
    
    <item>
	  <author>Mikhail Morfikov</author>
      <title>Disqus wprowadza reklamy, Disqus musi odejść</title>
      <link>https://morfikov.github.io/post/disqus-wprowadza-reklamy-disqus-musi-odejsc/</link>
      <pubDate>Fri, 09 Apr 2021 20:00:00 +0200</pubDate>
      
      <guid>https://morfikov.github.io/post/disqus-wprowadza-reklamy-disqus-musi-odejsc/</guid>
      <description>&lt;p&gt;Sporo użytkowników przeglądających tego bloga zdążyło już zauważyć, że sekcja komentarzy została
usunięta. W efekcie czego nie można już komentować żadnych wpisów. Taki zabieg miał miejsce ze
względu na fakt, że sporo osób zaczęło mi zgłaszać, że na Morfitroniku pojawiły się reklamy.
Wszyscy znają raczej moje zdanie w kwestii serwowania ludziom reklam i mocno się zdziwiłem, że
pojawiły się one właśnie tutaj. Ja nikomu żadnego pozwolenia na wykorzystywanie mojego bloga jako
platformy reklamowej nie udzieliłem. Okazuje się jednak, że Disqus (bo to jego system komentarzy
był tutaj wykorzystywany) nawet nie pofatygował się, by zapytać mnie o zgodę na serwowanie reklam i
bezczelnie zaczął je w komentarzach umieszczać. Jak tylko się dowiedziałem, że te reklamy faktycznie
w tych komentarzach są oraz, że nie mam żadnego wpływu na to, by je usunąć, to postanowiłem
natychmiast wywalić Disqus&#39;a.&lt;/p&gt;</description>
    </item>
    
    <item>
	  <author>Mikhail Morfikov</author>
      <title>WordPress: Jak zwiększyć ilość elementów w chmurze tagów</title>
      <link>https://morfikov.github.io/post/wordpress-jak-zwiekszyc-ilosc-elementow-w-chmurze-tagow/</link>
      <pubDate>Tue, 16 Aug 2016 09:21:00 +0000</pubDate>
      
      <guid>https://morfikov.github.io/post/wordpress-jak-zwiekszyc-ilosc-elementow-w-chmurze-tagow/</guid>
      <description>&lt;p&gt;Po drobnym dostosowaniu tego bloga, zmieniła się też nieco jego stopka. Problem w tym, że z początku
widżety ulokowane na samym dole strony niezbyt współgrały ze sobą wizualnie. Generalnie rzecz
biorąc, w stopce mam trzy widżety: ostatnie recenzje, archiwum i chmurę tagów. Można co prawda
zmieniać ich kolejność ale z racji że są tylko trzy widżety, to nie idzie ich dobrać tak, by były
przyzwoicie wyrównane. Winne są tutaj same tagi, które WordPress domyślnie wyświetla w liczbie 45.
By te widżety wyglądały przyzwoicie, trzeba by tych tagów dodać kilka, np. tak ze 20 sztuk ale jak
to zrobić? Możemy skorzystać z funkcji &lt;code&gt;wp_tag_cloud()&lt;/code&gt; .&lt;/p&gt;</description>
    </item>
    
    <item>
	  <author>Mikhail Morfikov</author>
      <title>WordPress: Jak usunąć alias &#34;login&#34; dla wp-login.php</title>
      <link>https://morfikov.github.io/post/wordpress-jak-usunac-alias-wp-login-php/</link>
      <pubDate>Sun, 14 Aug 2016 20:05:10 +0000</pubDate>
      
      <guid>https://morfikov.github.io/post/wordpress-jak-usunac-alias-wp-login-php/</guid>
      <description>&lt;p&gt;Przeglądając sobie ostatnio logi mojego serwera Apache2, zauważyłem tam dziwną aktywność. Jakieś
boty czy też inne ustrojstwa próbują od czasu do czasu uzyskać dostęp do formularza logowania tego
bloga. Jako, że tutaj mamy do czynienia z WordPress&#39;em oraz &lt;a href=&#34;https://morfikov.github.io/post/certyfikat-chroniacy-wp-login-php-wp-admin/&#34;&gt;ochroną pliku wp-login.php oraz
katalogu wp-admin/ za pomocą certyfikatów&lt;/a&gt;, to taki bot nigdy nie uzyska dostępu do tych zasobów.
Niemniej jednak, te automaty generują zapytania do serwera o zasób &lt;code&gt;login&lt;/code&gt; , który z kolei
przekierowuje je pod &lt;code&gt;wp-login.php&lt;/code&gt; za pomocą kodu 301 lub 302. Moglibyśmy uniknąć tego typu
przekierowań zwracając im kod 404 i przy tym odciążając nieco serwer www. W tym krótkim artykule
zobaczymy jak tego typu zabieg przeprowadzić.&lt;/p&gt;</description>
    </item>
    
    <item>
	  <author>Mikhail Morfikov</author>
      <title>WordPress: Jak edytować plik robots.txt</title>
      <link>https://morfikov.github.io/post/wordpress-jak-edytowac-plik-robots-txt/</link>
      <pubDate>Mon, 08 Aug 2016 09:44:17 +0000</pubDate>
      
      <guid>https://morfikov.github.io/post/wordpress-jak-edytowac-plik-robots-txt/</guid>
      <description>&lt;p&gt;Co jakiś czas zaglądam sobie do &lt;a href=&#34;https://www.google.com/webmasters/tools/&#34;&gt;panelu Google Search
Console&lt;/a&gt; w poszukiwaniu błędów na tym blogu. Do tej pory
trafiały mi się pojedyncze przypadki błędnego przekierowania adresu URL. Nic wielkiego, bo wystarczy
odszukać dany post i poprawić w nim konkretny link. Niemniej jednak, Google zaczyna mnie drażnić
&amp;quot;błędami&amp;quot; odnośnie plików &lt;code&gt;xmlrpc.php&lt;/code&gt; oraz &lt;code&gt;wp-includes/wlwmanifest.xml&lt;/code&gt; . Oba te pliki są
zablokowane na poziomie serwera Apache2 z powodu &lt;a href=&#34;https://niebezpiecznik.pl/post/trwaja-ataki-ddos-wykorzystujace-wordpressa-sprawdz-czy-twoj-blog-zostal-uzyty-w-ataku/&#34;&gt;zagrożeń jakie niesie protokół
XML-RPC&lt;/a&gt;.
Dlaczego zatem mechanizmy Google zwracają błędy? Winna jest tutaj błędna konfiguracja instrukcji dla
wyszukiwarek, tj. plik &lt;code&gt;robots.txt&lt;/code&gt; . Jakby tego było mało, to w przypadku WordPress&#39;a ten plik jest
generowany w locie i fizycznie nie istnieje na serwerze. Jak zatem poddać go edycji? Na to pytanie
postaramy się znaleźć odpowiedź w tym wpisie.&lt;/p&gt;</description>
    </item>
    
    <item>
	  <author>Mikhail Morfikov</author>
      <title>WordPress: Wersja plików .css/.js na blogu</title>
      <link>https://morfikov.github.io/post/wordpress-wersja-plikow-css-js-na-blogu/</link>
      <pubDate>Fri, 29 Jul 2016 13:08:24 +0000</pubDate>
      
      <guid>https://morfikov.github.io/post/wordpress-wersja-plikow-css-js-na-blogu/</guid>
      <description>&lt;p&gt;Gdy odwiedzamy jakiś blog WordPress&#39;a po raz pierwszy, szereg jego elementów jest buforowanych w
cache przeglądarki. W ten sposób pewne pliki, np. &lt;code&gt;.css&lt;/code&gt;, &lt;code&gt;.js&lt;/code&gt; czy też obrazki, nie są pobierane
bezpośrednio z serwera www, bo mamy je lokalnie u siebie na dysku. Takie rozwiązanie zapewnia
szybsze załadowanie się strony przez minimalizowanie ruchu sieciowego. Niemniej jednak, jako że te
pliki siedzą w cache, to muszą mieć ustawiony pewien czas ważności. Może on być różny, a my możemy
go sobie dostosować dla poszczególnych elementów ustawiając im &lt;a href=&#34;https://morfikov.github.io/post/cache-control-last-modified-etag-i-expires-w-apache2/&#34;&gt;nagłówek Cache-Control, Expires,
Last-Modified, czy
ETag&lt;/a&gt;. Gdy w takim
nagłówku określimy wysoką wartość &lt;code&gt;max-age&lt;/code&gt; , przeglądarka klienta może przez bardzo długi czas nie
być świadoma faktu, że któreś elementy strony uległy zmianie. W efekcie może i pojawiła się nowa
wersja pliku &lt;code&gt;.css&lt;/code&gt; ale klienci odwiedzający nasz serwis i tak nie zaobserwują żadnej różnicy do
momentu wygaśnięcia cache lub też odświeżenia strony z przytrzymanym klawiszem Shift . Możemy jednak
dodać numer wersji do określonych plików i uzależnić go od czasu modyfikacji danego zasobu na
serwerze. Jeśli zmianie ulegnie plik, klient automatycznie pobierze zmodyfikowany zasób.&lt;/p&gt;</description>
    </item>
    
    <item>
	  <author>Mikhail Morfikov</author>
      <title>WordPress: Jak przetłumaczyć motyw/wtyczkę</title>
      <link>https://morfikov.github.io/post/wordpress-jak-przetlumaczyc-motyw-wtyczke/</link>
      <pubDate>Wed, 27 Jul 2016 20:00:04 +0000</pubDate>
      
      <guid>https://morfikov.github.io/post/wordpress-jak-przetlumaczyc-motyw-wtyczke/</guid>
      <description>&lt;p&gt;WordPress został przetłumaczony na dość sporo języków, w tym też i na język polski. Niemniej jednak,
pliki bazowe to nie to samo co pliki różnych dodatków. Dlatego też czasem po zmianie języka na
polski, nie wszystkie elementy naszego bloga są przetłumaczone. Nie ma przy tym znaczenia czy
&lt;a href=&#34;https://morfikov.github.io/post/wordpress-domyslny-jezyk-instalacji/&#34;&gt;ustawialiśmy język podczas instalacji
WordPress&#39;a&lt;/a&gt;, czy też później z poziomu
panela administracyjnego. Taki stan rzeczy nie wygląda zbyt estetycznie i przydałoby się coś z tym
zrobić. Jeśli zajrzymy do katalogu wtyczek czy motywów, to zwykle znajdziemy tam pliki &lt;code&gt;.mo&lt;/code&gt; oraz
&lt;code&gt;.po&lt;/code&gt; , które są używane przy tłumaczeniu tekstu z wykorzystaniem
&lt;a href=&#34;https://www.gnu.org/software/gettext/&#34;&gt;gettext&lt;/a&gt;. Jako, że motyw, który jest wykorzystywany na tym
blogu nie jest przetłumaczony, to postanowiłem go przetłumaczyć i przy okazji opisać ten niezbyt
skomplikowany proces.&lt;/p&gt;</description>
    </item>
    
    <item>
	  <author>Mikhail Morfikov</author>
      <title>Certyfikat Let&#39;s Encrypt dla bloga WordPress (certbot)</title>
      <link>https://morfikov.github.io/post/certyfikat-letsencrypt-dla-bloga-certbot/</link>
      <pubDate>Sat, 23 Jul 2016 12:00:28 +0000</pubDate>
      
      <guid>https://morfikov.github.io/post/certyfikat-letsencrypt-dla-bloga-certbot/</guid>
      <description>&lt;p&gt;Jeszcze nie tak dawno temu, rzadko który serwis internetowy wykorzystywał certyfikaty SSL/TLS do
zabezpieczenia komunikacji między serwerem, a łączącymi się do niego klientami. W dalszym ciągu
jednak notuje się strony bez &amp;quot;zielonej kłódki&amp;quot; ale na szczęście jest ich coraz mniej w naszym
otoczeniu. Liczbę tych stron można by z powodzeniem ograniczyć jeszcze bardziej, gdyby takie
certyfikaty były za free, łatwe do zaimplementowania i dostępne praktycznie dla każdego od tak. No i
na dobrą sprawę są, tylko ludzie jeszcze nie zdają sobie z tego sprawy. Istnieje bowiem &lt;a href=&#34;https://letsencrypt.org/&#34;&gt;projekt
Let&#39;s Encrypt&lt;/a&gt;, który umożliwia stosunkowo bardzo proste wdrożenie
certyfikatu na serwerze www opartym, np. o oprogramowanie Apache2. W tym wpisie zobaczymy jak ta
cała procedura implementacji certyfikatu SSL/TLS przebiega.&lt;/p&gt;</description>
    </item>
    
    <item>
	  <author>Mikhail Morfikov</author>
      <title>WordPress: Kilku użytkowników bazy danych</title>
      <link>https://morfikov.github.io/post/wordpress-kilku-uzytkownikow-bazy-danych/</link>
      <pubDate>Wed, 20 Jul 2016 20:15:44 +0000</pubDate>
      
      <guid>https://morfikov.github.io/post/wordpress-kilku-uzytkownikow-bazy-danych/</guid>
      <description>&lt;p&gt;Za wysokie uprawnienia zawsze prowadzą do problemów, zwłaszcza, gdy w grę wchodzą komputery i
serwisy www. Wszyscy wiemy, że WordPress nie należy do bezpiecznych rozwiązań, mimo, że cała masa
stron na necie opiera się właśnie o tego CMS&#39;a. Można jednak wypracować sobie bezpieczny setup, pod
warunkiem, że będziemy się zawsze kierować jedna prostą zasadą. Mianowicie chodzi o ograniczenie
uprawnień. Standardowo WordPress ma zdefiniowanego jednego użytkownika w pliku &lt;code&gt;wp-config.php&lt;/code&gt; ,
którym skrypt się posługuje. Zwykle też ten użytkownik ma wszystkie możliwe prawa do wszystkich
tabel w bazie danych naszego bloga czy serwisu. Nie musi tak być, a my możemy wykorzystać kilku
użytkowników i nadać im inne uprawnienia w zależności od tego jakie operacje na bazie danych będą
oni przeprowadzać. W tym wpisie zobaczymy jak zaprzęgnąć wielu użytkowników do pracy z bazą danych
Wordpress&#39;a.&lt;/p&gt;</description>
    </item>
    
    <item>
	  <author>Mikhail Morfikov</author>
      <title>Certyfikat chroniący wp-login.php i wp-admin/</title>
      <link>https://morfikov.github.io/post/certyfikat-chroniacy-wp-login-php-wp-admin/</link>
      <pubDate>Tue, 19 Jul 2016 14:07:05 +0000</pubDate>
      
      <guid>https://morfikov.github.io/post/certyfikat-chroniacy-wp-login-php-wp-admin/</guid>
      <description>&lt;p&gt;Jednym z bardziej wyrafinowanych sposobów ochrony zasobów (katalogów) na serwerze www opartym o
oprogramowanie Apache2 jest wykorzystanie certyfikatów klienckich. Tego typu zabezpieczenie można
jednak zastosować tylko i wyłącznie w przypadku stron, które korzystają z szyfrowania SSL/TLS. Dla
przykładu weźmy sobie blog WordPress&#39;a, gdzie mamy katalog &lt;code&gt;wp-admin/&lt;/code&gt; i plik &lt;code&gt;wp-login.php&lt;/code&gt; .
Formularz logowania oraz panel admina zwykle są szyfrowane. Zatem każdy taki blog powinien robić już
użytek z tunelu SSL/TLS w mniejszym lub większym stopniu. Jeśli teraz mamy dość niestandardową
instalację WordPress&#39;a, to przy pomocy certyfikatów możemy weryfikować użytkowników, którzy chcą
uzyskać dostęp do tych w/w lokalizacji. Jest to nieco inne podejście w stosunku do tego, które
zostało opisane w artykule o &lt;a href=&#34;https://morfikov.github.io/post/wordpress-ukrycie-wp-login-php-oraz-wp-admin/&#34;&gt;ukrywaniu wp-login.php oraz
wp-admin&lt;/a&gt;, gdzie był
wykorzystywany moduł &lt;code&gt;mod_rewrite&lt;/code&gt; oraz dyrektywy &lt;code&gt;Files&lt;/code&gt; i &lt;code&gt;MatchFiles&lt;/code&gt; . Takie certyfikaty
klienckie dają nam jednak większe pole manewru, bo identyfikują konkretnego użytkownika chcącego
uzyskać dostęp do zasobów serwera. Ten wpis ma na celu pokazanie w jaki sposób zaimplementować
obsługę certyfikatów klienckich w Apache2.&lt;/p&gt;</description>
    </item>
    
    <item>
	  <author>Mikhail Morfikov</author>
      <title>WordPress: Zmiana serwera i nazwy bloga</title>
      <link>https://morfikov.github.io/post/wordpress-zmiana-serwera-nazwy-bloga/</link>
      <pubDate>Mon, 15 Feb 2016 15:17:56 +0000</pubDate>
      
      <guid>https://morfikov.github.io/post/wordpress-zmiana-serwera-nazwy-bloga/</guid>
      <description>&lt;p&gt;Prędzej czy później przyjdzie taki czas, że będziemy musieli porzucić stary hosting, na którym
trzymamy swój blog WordPress&#39;a. O ile samo przeniesienie całego kontentu nie powinno sprawić
trudności, bo to przecież zwykłe kopiowanie plików, to zmiana struktury strony, np. katalogu
głównego lub też nazwy bloga (domeny), &lt;a href=&#34;https://codex.wordpress.org/Moving_WordPress&#34;&gt;pociąga już za sobą pewne
komplikacje&lt;/a&gt;. W tych bardziej zaawansowanych
przypadkach, zwłaszcza jeśli posiadamy niestandardową konfigurację, będzie potrzebna edycja
niektórych plików WordPress&#39;a oraz trzeba będzie zmienić szereg wpisów w bazie danych. W tym
artykule zostanie opisany proces przenoszenia instalacji WordPress&#39;a na nowy serwer wliczając w to
zmianę nazwy serwisu.&lt;/p&gt;</description>
    </item>
    
    <item>
	  <author>Mikhail Morfikov</author>
      <title>WordPress: Jakość miniaturek zdjęć</title>
      <link>https://morfikov.github.io/post/wordpress-jakosc-miniaturek-zdjec/</link>
      <pubDate>Fri, 19 Jun 2015 21:23:31 +0000</pubDate>
      
      <guid>https://morfikov.github.io/post/wordpress-jakosc-miniaturek-zdjec/</guid>
      <description>&lt;p&gt;Przy umieszczaniu zdjęć czy też różnego rodzaju grafik na blogu, możemy zauważyć, że owe fotki nie
są umieszczane w postach w oryginalnych rozmiarach. Zamiast nich są &lt;a href=&#34;https://codex.wordpress.org/Post_Thumbnails&#34;&gt;używane
miniaturki&lt;/a&gt;, które mają konfigurowalny rozmiar.
Naturalnie możemy nakazać WordPressowi by umieszczał obrazki w pełnym ich wymiarze, choć jednak ze
względów estetycznych lepiej zachować określone ich rozmiary i jeśli jakaś grafika wychodzi po za
nie, to powinna zostać przycięta. Taka miniaturka powinna linkować do obrazka pełnowymiarowego,
gdzie można zobaczyć więcej szczegółów. Taki jest przynajmniej schemat tego działania w WordPressie.
Problem jest jednak z jakością samych miniaturek.&lt;/p&gt;</description>
    </item>
    
    <item>
	  <author>Mikhail Morfikov</author>
      <title>WordPress: Ciasteczka i ich czas żywotności</title>
      <link>https://morfikov.github.io/post/wordpress-ciasteczka-i-ich-czas-zywotnosci/</link>
      <pubDate>Sat, 06 Jun 2015 18:50:51 +0000</pubDate>
      
      <guid>https://morfikov.github.io/post/wordpress-ciasteczka-i-ich-czas-zywotnosci/</guid>
      <description>&lt;p&gt;Ciasteczka w WordPresie są bardzo ważne, bo wykorzystuje się je w procesie uwierzytelniania
logujących się i powracających użytkowników. Domyślnie czas ważności generowanych ciasteczek to &lt;code&gt;2&lt;/code&gt;
dni, chyba, że człowiek zaznaczy opcję &amp;quot;Pamiętaj&amp;quot; w formularzu logowania, wtedy ten okres ważności
ulega przedłużeniu do &lt;code&gt;14&lt;/code&gt; dni. Chodzi o to, że w przypadku gdyby ciasteczka nie posiadały terminu
ważności, to jeśli ktoś by wszedł w ich posiadanie, to mógłby się zalogować w serwisie bez większych
problemów, a tego przecież nie chcemy. Są jednak sytuacje, w których 2 czy nawet 14 dni, to ździebko
za mało (lub za dużo) i w tym wpisie postaramy się dostosować żywotność ciasteczek, tak by
odpowiadała naszym upodobaniom.&lt;/p&gt;</description>
    </item>
    
    <item>
	  <author>Mikhail Morfikov</author>
      <title>WordPress: Komunikat błędnego logowania</title>
      <link>https://morfikov.github.io/post/wordpress-komunikat-blednego-logowania/</link>
      <pubDate>Sat, 06 Jun 2015 13:05:41 +0000</pubDate>
      
      <guid>https://morfikov.github.io/post/wordpress-komunikat-blednego-logowania/</guid>
      <description>&lt;p&gt;Jest kilka rzeczy, które mogą zdradzić dane logowania do serwisu WordPressa. Nie będę tutaj opisywał
tej najbardziej oczywistej, czyli &lt;a href=&#34;https://morfikov.github.io/post/wordpress-administrator-bloga/&#34;&gt;posługiwania się loginem bezpośrednio na
blogu&lt;/a&gt;, tylko skupię się na nieco bardziej
chytrej opcji, która zakłada odpytywanie formularza logowania w celu ustalenia, które loginy są
dostępne w bazie danych. To tak jak grać w statki i strzelać na oślep, aż w końcu się trafi w
któryś z nich, a skąd wiemy, że trafiliśmy? Po zwracanej odpowiedzi od drugiego gracza. I podobnie
jest w przypadku formularza logowania WordPressa, z tym, że jeśli chodzi o strony www, to mamy nieco
zawężone pole strzału, bo administrator/użytkownik zwykle wybiera niezbyt skomplikowany login często
kojarzący się z pewnymi elementami jego życia, a gdy potencjalny atakujący ustali taki login, to
będzie w stanie dokonać ataku Brute Force na hasło do tego konta.&lt;/p&gt;</description>
    </item>
    
    <item>
	  <author>Mikhail Morfikov</author>
      <title>WordPress: Ograniczone prawa dostępu</title>
      <link>https://morfikov.github.io/post/wordpress-ograniczone-prawa-dostepu/</link>
      <pubDate>Sat, 06 Jun 2015 11:41:24 +0000</pubDate>
      
      <guid>https://morfikov.github.io/post/wordpress-ograniczone-prawa-dostepu/</guid>
      <description>&lt;p&gt;Mając już zainstalowanego i wstępnie skonfigurowanego WordPress&#39;a, przydałoby się zadbać &lt;a href=&#34;https://codex.wordpress.org/Changing_File_Permissions&#34;&gt;prawa
dostępu do jego plików&lt;/a&gt; jak i również
ograniczyć nieco dostęp do samej bazy danych, tak by możliwie najmniejsze uprawnienia zostały
nadane, co poprawi znacznie bezpieczeństwo naszej witryny. Jeśli opanowaliśmy już operowanie na
instalacji WordPress&#39;a przy pomocy
&lt;a href=&#34;https://morfikov.github.io/post/wordpress-wiersz-polecen-wp-cli/&#34;&gt;skryptu&lt;/a&gt;
&lt;a href=&#34;https://morfikov.github.io/post/wordpress-instalacja-przy-pomocy-wp-cli/&#34;&gt;wp-cli&lt;/a&gt; , to możemy bez wahania
dokręcić śrubę naszemu serwisowi. Jeśli nie zaznajomiliśmy się jeszcze z powyższym narzędziem, to
ograniczenie praw może spowodować problemy z aktualizacją rdzennych plików WordPress&#39;a, jak i
instalacją/konfiguracją jego pluginów czy motywów.&lt;/p&gt;</description>
    </item>
    
    <item>
	  <author>Mikhail Morfikov</author>
      <title>WordPress: Klucze zabezpieczające ciasteczka</title>
      <link>https://morfikov.github.io/post/wordpress-klucze-zabezpieczajace-ciasteczka/</link>
      <pubDate>Sat, 06 Jun 2015 06:36:59 +0000</pubDate>
      
      <guid>https://morfikov.github.io/post/wordpress-klucze-zabezpieczajace-ciasteczka/</guid>
      <description>&lt;p&gt;WordPress stara się dbać o bezpieczeństwo swoich użytkowników najlepiej jak potrafi. Dowodem na to
mogą być unikalne klucze i sole uwierzytelniające (Authentication Unique Keys and Salts) wprowadzone
w wersji 2.5 oraz nieco rozbudowane w wersji 2.7. Ten mechanizm nie wykorzystuje sesji PHP do
śledzenia np. statusu zalogowania, tylko zaprzęga do tego celu ciasteczka, by utrudnić (albo raczej
uniemożliwić) potencjalnemu atakującemu dostęp do witryny. Bez tych kluczy i soli jesteśmy w stanie
przewidzieć wszystkie składowe hasha danego ciasteczka, dlatego też powinniśmy pokusić się o ich
implementację na swojej stronie. Niemniej jednak, na necie jest bardzo dużo niskiej jakości
informacji na temat działania mechanizmu walidacji ciasteczek, a artykuły, które
&lt;a href=&#34;https://boren.blog/2008/07/14/ssl-and-cookies-in-wordpress-26/&#34;&gt;potrafią&lt;/a&gt;
&lt;a href=&#34;http://www.securitysift.com/understanding-wordpress-auth-cookies/&#34;&gt;go&lt;/a&gt;
&lt;a href=&#34;http://codeseekah.com/2012/04/09/why-wordpress-authentication-unique-keys-and-salts-are-important/&#34;&gt;opisać&lt;/a&gt;
w szerszym stopniu, są już lekko nieaktualne, bo zmienia się on praktycznie z każdą nową wersją
WordPressa. Zanim jednak przejdziemy do samych kluczy/soli, powinniśmy się zaznajomić ze sposobem w
jaki WordPress generuje i sprawdza wspomniane ciasteczka, na podstawie których to autoryzowane są
działania użytkowników naszego bloga.&lt;/p&gt;</description>
    </item>
    
    <item>
	  <author>Mikhail Morfikov</author>
      <title>WordPress: Graficzne emotikonki</title>
      <link>https://morfikov.github.io/post/wordpress-graficzne-emotikonki/</link>
      <pubDate>Wed, 03 Jun 2015 19:14:23 +0000</pubDate>
      
      <guid>https://morfikov.github.io/post/wordpress-graficzne-emotikonki/</guid>
      <description>&lt;p&gt;Począwszy od wersji 4.2, WordPress wstawia pliki powiązane z
&lt;a href=&#34;https://codex.wordpress.org/Emoji&#34;&gt;Emoji&lt;/a&gt; bezpośrednio do nagłówka strony. Jest to porcja 1600
znaków, która ma służyć zamianie tekstowych emotikonek na ich graficzne odpowiedniki. Jeśli z nich
nie korzystamy albo wolimy zamiast nich kilka znaków tekstowych, to ten kod jest dla nas kompletnie
zbędny i zaśmieca tylko nagłówek, wobec czego powinniśmy się jak najszybciej pozbyć tego balastu.&lt;/p&gt;</description>
    </item>
    
    <item>
	  <author>Mikhail Morfikov</author>
      <title>WordPress: Wyłączenie protokołu XML-RPC</title>
      <link>https://morfikov.github.io/post/wordpress-wylaczenie-protokolu-xml-rpc/</link>
      <pubDate>Wed, 03 Jun 2015 13:55:33 +0000</pubDate>
      
      <guid>https://morfikov.github.io/post/wordpress-wylaczenie-protokolu-xml-rpc/</guid>
      <description>&lt;p&gt;Jeśli publikujemy posty na swoim blogu, to pierw musimy je gdzieś sporządzić. Możemy to robić w
zwykłym notatniku lub też bezpośrednio w formularzu WordPressa dostępnego przy edycji postu.
Istnieje też inna możliwość, mianowicie korzystanie ze specjalnie przeznaczonego do tego celu
oprogramowania -- klientów blogowych działających w oparciu o protokół
&lt;a href=&#34;https://codex.wordpress.org/XML-RPC_Support&#34;&gt;XML-RPC&lt;/a&gt;. Jest to mechanizm podobny tego znanego
choćby z poczty internetowej, czyli mamy konto email, np. na gmailu ale do tworzenia i zarządzania
wiadomościami wykorzystujemy np. Thunderbirda. Podobnie możemy postępować z treścią pojawiającą się
na blogu i nawet nie musimy być w tym czasie online. Jednym z bardziej znanych klientów, przy pomocy
którego możemy wrzucać posty na bloga, to &lt;a href=&#34;https://en.wordpress.com/windows-live-writer/&#34;&gt;Windows Live Writer
(WLW)&lt;/a&gt;. Poza tym, protokół XML-RPC wykorzystywany
jest także przez część serwisów internetowych, np.
&lt;a href=&#34;https://www.flickr.com/services/api/request.xmlrpc.html&#34;&gt;Flickr&lt;/a&gt; , co umożliwia im zamieszczanie
postów w naszej witrynie.&lt;/p&gt;</description>
    </item>
    
    <item>
	  <author>Mikhail Morfikov</author>
      <title>WordPress: Krótki link do umieszczenia na Twitterze</title>
      <link>https://morfikov.github.io/post/wordpress-krotki-link-do-umieszczenia-na-twitterze/</link>
      <pubDate>Wed, 03 Jun 2015 10:13:38 +0000</pubDate>
      
      <guid>https://morfikov.github.io/post/wordpress-krotki-link-do-umieszczenia-na-twitterze/</guid>
      <description>&lt;p&gt;W chwili gdy zabierałem się za rozpracowywanie szeregu zagadnień związanych z oczyszczaniem nagłówka
generowanego przez WordPress, nie miałem pojęcia, że niektóre opcje nie są dostępne w standardowej
instalacji, którą każdy może sobie pobrać z ich strony i wgrać do siebie na serwer. Chodzi
oczywiście o &lt;a href=&#34;https://en.wikipedia.org/wiki/URL_shortening&#34;&gt;krótkie odnośniki&lt;/a&gt; (shortlinks). Ich
głównym celem jest skracanie linków do paru znaków, tak by można je umieścić np. na Twitterze
gdzie długość wiadomości jest znacznie ograniczona i raczej wklejanie tam linku, który by zjadł
wszystkie dostępne znaki nie jest zbytnio pożądane.&lt;/p&gt;</description>
    </item>
    
    <item>
	  <author>Mikhail Morfikov</author>
      <title>WordPress: Edycja i modyfikacja plików dodatków</title>
      <link>https://morfikov.github.io/post/wordpress-edycja-i-modyfikacja-plikow-dodatkow/</link>
      <pubDate>Tue, 02 Jun 2015 19:33:10 +0000</pubDate>
      
      <guid>https://morfikov.github.io/post/wordpress-edycja-i-modyfikacja-plikow-dodatkow/</guid>
      <description>&lt;p&gt;Na necie widziałem wiele tutoriali na temat zmiany konfiguracji stylów czy motywów WordPressa i w
większości z nich ludzie dokonywali poprawek w kodzie źródłowym bezpośrednio przez panel
administracyjny. Ni to wygodne, ani bezpieczne. Prze wszystkim, jeśli jakiś robak uzyskałby dostęp
do konta administracyjnego naszego bloga, to pierwsze co mu przyjdzie do głowy, to edycja plików
właśnie za pomocą wbudowanego w WordPress edytora (Appearance =&amp;gt; Editor). Dlatego ze względów
bezpieczeństwa kluczowe jest &lt;a href=&#34;https://codex.wordpress.org/Editing_wp-config.php#Disable_Plugin_and_Theme_Update_and_Installation&#34;&gt;wyłączenie tej
opcji&lt;/a&gt;
i jeśli potrzebujemy zmieniać określone pliki WordPressa, to róbmy to poza samym skryptem i
najlepiej przy pomocy zwykłego notatnika co potrafi kolorować składnię, by uniknąć również
ewentualnych literówek.&lt;/p&gt;</description>
    </item>
    
  </channel>
</rss>
