{"id":84184,"date":"2020-06-05T19:42:31","date_gmt":"2020-06-05T17:42:31","guid":{"rendered":"https:\/\/prohoster.info\/blog\/administrirovanie\/smertnye-grehi-bezopasnosti-sajta-chto-my-uznali-iz-statistiki-skanera-uyazvimostej-za-god"},"modified":"2020-06-05T19:42:31","modified_gmt":"2020-06-05T17:42:31","slug":"smertnye-grehi-bezopasnosti-sajta-chto-my-uznali-iz-statistiki-skanera-uyazvimostej-za-god","status":"publish","type":"post","link":"https:\/\/prohoster.info\/pl\/blog\/administrirovanie\/smertnye-grehi-bezopasnosti-sajta-chto-my-uznali-iz-statistiki-skanera-uyazvimostej-za-god","title":{"rendered":"Grzechy \u015bmiertelne bezpiecze\u0144stwa strony: czego nauczyli\u015bmy si\u0119 z statystyk skanera luk rocznych","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Oko\u0142o rok temu w DataLine uruchomili\u015bmy <noindex><a rel=\"nofollow\" href=\"https:\/\/www.dtln.ru\/uslugi\/security\/securityscan\">us\u0142uga<\/a><\/noindex> us\u0142ug\u0119 do wykrywania i analizy luk w aplikacjach IT. Us\u0142uga oparta jest na rozwi\u0105zaniu chmurowym Qualys, o kt\u00f3rym <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/dataline\/blog\/457768\/\">ju\u017c pisali\u015bmy<\/a><\/noindex>. Przez rok korzystania z tego rozwi\u0105zania przeprowadzili\u015bmy 291 skan\u00f3w dla r\u00f3\u017cnych stron i zgromadzili\u015bmy statystyki na temat najcz\u0119stszych luk w aplikacjach internetowych.\u00a0<\/p>\n<p>W poni\u017cszym artykule poka\u017c\u0119, jakie konkretnie luki w bezpiecze\u0144stwie ukrywaj\u0105 si\u0119 za r\u00f3\u017cnymi poziomami krytyczno\u015bci. Zobaczymy, jakie luki skanery znajdowa\u0142y szczeg\u00f3lnie cz\u0119sto, dlaczego mog\u0105 wyst\u0119powa\u0107 i jak si\u0119 przed nimi chroni\u0107.\u00a0<\/p>\n<p><img decoding=\"async\" alt=\"Grzechy \u015bmiertelne bezpiecze\u0144stwa strony: czego nauczyli\u015bmy si\u0119 z statystyk skanera luk rocznych\" src=\"\/wp-content\/uploads\/2020\/06\/3205347a3bcb19c9fd66bbb890f5096d.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><br \/>\nQualys dzieli wszystkie luki w aplikacjach internetowych na trzy poziomy krytyczno\u015bci: niski, \u015bredni i wysoki. Je\u015bli spojrze\u0107 na rozk\u0142ad wed\u0142ug \"ci\u0119\u017cko\u015bci\", wydaje si\u0119, \u017ce nie jest tak \u017ale. Luki o wysokim poziomie krytyczno\u015bci s\u0105 nieliczne, g\u0142\u00f3wnie wszystko jest niekrytyczne:\u00a0<\/p>\n<p><img decoding=\"async\" alt=\"Grzechy \u015bmiertelne bezpiecze\u0144stwa strony: czego nauczyli\u015bmy si\u0119 z statystyk skanera luk rocznych\" src=\"\/wp-content\/uploads\/2020\/06\/59ec50a522270db288fb01fb8a41c7c9.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nJednak luki niekrytyczne to nie to samo co bezpieczne. Mog\u0105 one r\u00f3wnie\u017c wyrz\u0105dzi\u0107 powa\u017cne szkody.\u00a0<\/p>\n<h2>Najwa\u017cniejsze \"niekrytyczne\" luki<\/h2>\n<p><\/p>\n<ol>\n<li><b>Luki zwi\u0105zane z mieszanym zawarto\u015bci\u0105.<\/b>\n<p>Standardem bezpiecze\u0144stwa stron internetowych jest przesy\u0142anie danych mi\u0119dzy klientem a serwerem za pomoc\u0105 protoko\u0142u HTTPS, kt\u00f3ry wspiera szyfrowanie i chroni informacje przed przechwyceniem.\u00a0<\/p>\n<p>Niekt\u00f3re strony korzystaj\u0105 z <i>mieszanego zawarto\u015bci<\/i>: przesy\u0142aj\u0105 cz\u0119\u015b\u0107 danych przez niezabezpieczony protok\u00f3\u0142 HTTP. Cz\u0119\u015bciej przesy\u0142aj\u0105 <i>zawarto\u015b\u0107 pasywn\u0105<\/i> - informacje, kt\u00f3re wp\u0142ywaj\u0105 tylko na wy\u015bwietlanie strony: zdj\u0119cia, style css. Ale czasami przesy\u0142ane jest tak\u017ce <i>zawarto\u015b\u0107 aktywna<\/i>: skrypty, kt\u00f3re zarz\u0105dzaj\u0105 zachowaniem strony. W takim przypadku za pomoc\u0105 specjalnego oprogramowania mo\u017cna analizowa\u0107 przychodz\u0105c\u0105 z serwera informacj\u0119 z zawarto\u015bci\u0105 aktywn\u0105, modyfikowa\u0107 na bie\u017c\u0105co swoje odpowiedzi i zmusza\u0107 urz\u0105dzenie do dzia\u0142ania w spos\u00f3b, w jaki nie zosta\u0142o zaplanowane przez jego tw\u00f3rc\u00f3w.\u00a0<\/p>\n<p>Nowoczesne przegl\u0105darki ostrzegaj\u0105 u\u017cytkownik\u00f3w, \u017ce strony z mieszanym zawarto\u015bci\u0105 s\u0105 niebezpieczne i blokuj\u0105 taki content. Tw\u00f3rcy stron r\u00f3wnie\u017c otrzymuj\u0105 ostrze\u017cenia od przegl\u0105darki w konsoli. Oto jak to wygl\u0105da w <noindex><a rel=\"nofollow\" href=\"https:\/\/developer.mozilla.org\/ru\/docs\/Security\/MixedContent\">Firefox<\/a><\/noindex>:\u00a0<\/p>\n<p><img decoding=\"async\" alt=\"Grzechy \u015bmiertelne bezpiecze\u0144stwa strony: czego nauczyli\u015bmy si\u0119 z statystyk skanera luk rocznych\" src=\"\/wp-content\/uploads\/2020\/06\/e075e43f63ee6a41d41949d63da27006.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n<b>Czym to grozi<\/b>: Oszu\u015bci wykorzystuj\u0105 niezabezpieczony protok\u00f3\u0142 do przechwytywania informacji o u\u017cytkownikach, podmieniania skrypt\u00f3w i wysy\u0142ania zapyta\u0144 do strony w imieniu u\u017cytkownika. Nawet je\u015bli odwiedzaj\u0105cy stron\u0119 nie wprowadza danych, nie chroni go to przed <i>phishingiem <\/i>\u2013 wyci\u0105ganie poufnych informacji oszuka\u0144czymi metodami. Na przyk\u0142ad, za pomoc\u0105 skryptu mo\u017cna przekierowa\u0107 u\u017cytkownika na niebezpieczn\u0105 stron\u0119, kt\u00f3ra maskuje si\u0119 pod znan\u0105 u\u017cytkownikowi. W niekt\u00f3rych przypadkach z\u0142o\u015bliwa strona wygl\u0105da nawet lepiej ni\u017c orygina\u0142, a u\u017cytkownik mo\u017ce samodzielnie wype\u0142ni\u0107 formularz i przekaza\u0107 poufne dane.\u00a0<\/p>\n<p><b>Co powinien pami\u0119ta\u0107 programista internetowy<\/b>: Nawet je\u015bli administrator strony zainstalowa\u0142 i skonfigurowa\u0142 certyfikat SSL\/TLS, luka mo\u017ce wyst\u0105pi\u0107 z powodu czynnika ludzkiego. Na przyk\u0142ad, je\u015bli na kt\u00f3rejkolwiek ze stron umieszczono link bezwzgl\u0119dny z http, zamiast wzgl\u0119dnego, i dodatkowo nie skonfigurowano przekierowa\u0144 z http na https.\u00a0<\/p>\n<p>Wykrycie mieszanej zawarto\u015bci na stronie mo\u017cna przeprowadzi\u0107 za pomoc\u0105 przegl\u0105darki: mo\u017cna poszuka\u0107 w kodzie \u017ar\u00f3d\u0142owym strony, sprawdzi\u0107 powiadomienia w konsoli dewelopera. Jednak programista b\u0119dzie musia\u0142 d\u0142ugo grzeba\u0107 w kodzie. Proces mo\u017cna przyspieszy\u0107 za pomoc\u0105 zautomatyzowanych narz\u0119dzi analitycznych, na przyk\u0142ad: <noindex><a rel=\"nofollow\" href=\"https:\/\/www.jitbit.com\/sslcheck\/\">SSL Check<\/a><\/noindex>, wolne oprogramowanie Lighthouse lub p\u0142atne oprogramowanie Screaming Frog SEO Spider.<\/p>\n<p>Luka mo\u017ce r\u00f3wnie\u017c wyst\u0105pi\u0107 z powodu problem\u00f3w z kodem legacy \u2013 kodem, kt\u00f3ry zosta\u0142 odziedziczony. Na przyk\u0142ad, je\u015bli cz\u0119\u015b\u0107 stron generowana jest na starym szablonie, kt\u00f3ry nie uwzgl\u0119dnia przechodzenia stron na https.\u00a0\u00a0\u00a0\u00a0\n<\/li>\n<li><b>Ciasteczka bez flag \u201eHTTPOnly\u201d i \u201esecure\u201d.<\/b>\n<p>Atrybut \u201eHTTPOnly\u201d chroni ciasteczka przed przetwarzaniem przez skrypty, kt\u00f3re oszu\u015bci wykorzystuj\u0105 do kradzie\u017cy danych u\u017cytkownika. Flaga \u201esecure\u201d nie pozwala na przesy\u0142anie ciasteczek w otwartej postaci. Wymiana danych b\u0119dzie dozwolona tylko w przypadku korzystania z zabezpieczonego protoko\u0142u HTTPS.\u00a0<\/p>\n<p>Oba atrybuty s\u0105 zapisywane w w\u0142a\u015bciwo\u015bciach ciasteczek:<\/p>\n<pre><code class=\"plaintext\">Set-Cookie: Secure; HttpOnly<\/code><\/pre>\n<p>\n<b>Czym to grozi<\/b>: Je\u015bli programista strony nie okre\u015bli\u0142 tych atrybut\u00f3w, z\u0142o\u015bliwy u\u017cytkownik mo\u017ce przechwyci\u0107 informacje u\u017cytkownika z ciasteczek i je wykorzysta\u0107. Je\u015bli ciasteczka s\u0105 wykorzystywane do uwierzytelniania i autoryzacji, mo\u017ce on przej\u0105\u0107 sesj\u0119 u\u017cytkownika i dzia\u0142a\u0107 na stronie w jego imieniu.\u00a0<\/p>\n<p><b>Co powinien pami\u0119ta\u0107 programista internetowy<\/b>: Z regu\u0142y w popularnych frameworkach te atrybuty s\u0105 ustawiane automatycznie. Mimo to sprawd\u017a konfiguracj\u0119 serwera WWW i ustaw flag\u0119: Set-Cookie HttpOnly; Secure. <\/p>\n<p>Przy tym atrybut \u201eHTTPOnly\u201d uczyni ciasteczka niewidocznymi tak\u017ce dla twojego w\u0142asnego JavaScript.\u00a0\u00a0\n<\/li>\n<li><b>Path-Based Vulnerabilities (\u201e\u015bcie\u017ckowe\u201d luki).<\/b>\n<p>Sk scanner informuje o takim zagro\u017ceniu, je\u015bli znajdzie publicznie dost\u0119pn\u0105 makro lub katalog strony z potencjalnie poufnymi informacjami. Na przyk\u0142ad wykrywa oddzielne pliki z konfiguracj\u0105 systemu lub dost\u0119p do ca\u0142ego systemu plik\u00f3w. Taka sytuacja mo\u017ce wyst\u0105pi\u0107, je\u015bli na stronie niew\u0142a\u015bciwie ustawione s\u0105 prawa dost\u0119pu.<\/p>\n<p><b>Czym to grozi<\/b>: Je\u015bli system plik\u00f3w \"wystaje na zewn\u0105trz\", przest\u0119pczy mo\u017ce uzyska\u0107 dost\u0119p do interfejsu systemu operacyjnego i pr\u00f3bowa\u0107 znale\u017a\u0107 katalogi z has\u0142ami, je\u015bli s\u0105 one przechowywane w jawnej formie (nie r\u00f3b tego!). Lub mo\u017cna ukra\u015b\u0107 hashe hase\u0142 i pr\u00f3bowa\u0107 je z\u0142ama\u0107, a tak\u017ce spr\u00f3bowa\u0107 podnie\u015b\u0107 uprawnienia w systemie i zag\u0142\u0119bi\u0107 si\u0119 w infrastruktur\u0119.\u00a0\u00a0<\/p>\n<p><b>Co powinien pami\u0119ta\u0107 programista internetowy<\/b>: Nie zapominaj o uprawnieniach i skonfiguruj platform\u0119, serwer WWW, aplikacj\u0119 internetow\u0105, aby nie by\u0142o mo\u017cliwo\u015bci \"ucieczki\" z katalogu webowego.\n<\/li>\n<li><b>Formularze do wprowadzania poufnych danych z w\u0142\u0105czon\u0105 funkcj\u0105 autouzupe\u0142niania.<\/b>\n<p>Je\u015bli u\u017cytkownik cz\u0119sto wype\u0142nia formularze na stronach, jego przegl\u0105darka zapisuje te informacje za pomoc\u0105 funkcji autouzupe\u0142niania.\u00a0<\/p>\n<p>Formularze na stronach mog\u0105 zawiera\u0107 pola z poufnymi informacjami, takimi jak has\u0142a lub numery kart kredytowych. Dla takich p\u00f3l warto na stronie wy\u0142\u0105czy\u0107 funkcj\u0119 autouzupe\u0142niania formularzy.\u00a0<\/p>\n<p><b>Czym to grozi<\/b>: Je\u015bli przegl\u0105darka u\u017cytkownika zapisze poufne informacje, przest\u0119pca mo\u017ce je p\u00f3\u017aniej przechwyci\u0107, na przyk\u0142ad za pomoc\u0105 phishingu. W zasadzie, programista webowy, kt\u00f3ry zapomnia\u0142 o tym szczeg\u00f3le, nara\u017ca swoich u\u017cytkownik\u00f3w.\u00a0<\/p>\n<p><b>Co powinien pami\u0119ta\u0107 programista internetowy<\/b>: W tym przypadku mamy klasyczny konflikt: wygoda vs bezpiecze\u0144stwo. Je\u015bli programista webowy my\u015bli o komforcie u\u017cytkownika, mo\u017ce \u015bwiadomie wybra\u0107 autouzupe\u0142nianie. Na przyk\u0142ad, je\u015bli wa\u017cne jest przestrzeganie <noindex><a rel=\"nofollow\" href=\"https:\/\/www.w3.org\/TR\/WCAG21\/\">Wytycznych dotycz\u0105cych dost\u0119pno\u015bci tre\u015bci w Internecie<\/a><\/noindex> \u2013 zalecenia dotycz\u0105ce dost\u0119pno\u015bci tre\u015bci dla u\u017cytkownik\u00f3w z ograniczeniami.\u00a0<\/p>\n<p>Dla wi\u0119kszo\u015bci przegl\u0105darek mo\u017cna wy\u0142\u0105czy\u0107 autouzupe\u0142nianie za pomoc\u0105 atrybutu autocompete=\"off\", na przyk\u0142ad:<\/p>\n<pre><code class=\"plaintext\">\u00a0&lt;body&gt;\n&nbsp;&nbsp;&nbsp;&nbsp;&lt;form action=&quot;\/pl\/form\/submit\/&quot; method=&quot;get&quot; autocomplete=&quot;off&quot; data-trp-original-action=&quot;\/form\/submit&quot;&gt;\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;div&gt;\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;input type=&quot;text&quot; placeholder=&quot;Imi\u0119&quot;&gt;\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;\/div&gt;\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;div&gt;\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;input type=&quot;text&quot; id=&quot;lname&quot; placeholder=&quot;Nazwisko&quot; autocomplete=&quot;on&quot;&gt;\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;\/div&gt;\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;div&gt;\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;input type=&quot;number&quot; placeholder=&quot;Numer karty kredytowej&quot;&gt;\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;\/div&gt;\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;input type=&quot;submit&quot;&gt;\n&nbsp;&nbsp;&nbsp;&nbsp;&lt;input type=&quot;hidden&quot; name=&quot;trp-form-language&quot; value=&quot;pl&quot;\/&gt;&lt;\/form&gt;\n&nbsp;&nbsp;&lt;\/body&gt;<\/code><\/pre>\n<p>\nJednak dla Chrome to nie zadzia\u0142a. To obej\u015bcie uzyskuje si\u0119 za pomoc\u0105 JavaScript, a wersj\u0119 przepisu mo\u017cna znale\u017a\u0107 <noindex><a rel=\"nofollow\" href=\"https:\/\/stackoverflow.com\/a\/55045439\">tutaj<\/a><\/noindex>.\u00a0\n<\/li>\n<li><b>W kodzie strony nie zdefiniowano nag\u0142\u00f3wka X-Frame-Options.\u00a0<\/b>\n<p>Ten nag\u0142\u00f3wek wp\u0142ywa na tagi frame, iframe, embed lub object. U\u017cywaj\u0105c go, mo\u017cna ca\u0142kowicie zabroni\u0107 wbudowywania swojej strony w ramk\u0119. W tym celu nale\u017cy ustawi\u0107 warto\u015b\u0107 X-Frame-Options: deny. Mo\u017cna te\u017c ustawi\u0107 X-Frame-Options: sameorigin, wtedy wbudowywanie w iframe b\u0119dzie dost\u0119pne tylko na twojej domenie.<\/p>\n<p><b>Czym to grozi<\/b>: Brak takiego nag\u0142\u00f3wka mo\u017cna wykorzysta\u0107 na z\u0142o\u015bliwych stronach do <i>clickjackingu<\/i>. W takim ataku, haker tworzy przezroczyst\u0105 ramk\u0119 nad przyciskami i oszukuje u\u017cytkownika. Na przyk\u0142ad: oszu\u015bci wstawiaj\u0105 do ramki na stronie elementy z medi\u00f3w spo\u0142eczno\u015bciowych. U\u017cytkownik uwa\u017ca, \u017ce klika na przycisk na tej stronie. Zamiast tego klikni\u0119cie jest przechwytywane i wysy\u0142ane jako zapytanie do serwisu spo\u0142eczno\u015bciowego, w kt\u00f3rym u\u017cytkownik ma aktywn\u0105 sesj\u0119. W ten spos\u00f3b przest\u0119pcy rozsy\u0142aj\u0105 spam w imieniu u\u017cytkownika lub sztucznie zwi\u0119kszaj\u0105 liczb\u0119 subskrybent\u00f3w oraz polubie\u0144.\u00a0<\/p>\n<p>Je\u015bli nie zabroni si\u0119 takiej mo\u017cliwo\u015bci, haker mo\u017ce umie\u015bci\u0107 przycisk twojej aplikacji na z\u0142o\u015bliwej stronie. Mo\u017ce by\u0107 zainteresowany twoim programem partnerskim lub twoimi u\u017cytkownikami.\u00a0\u00a0<\/p>\n<p><b>Co powinien pami\u0119ta\u0107 programista internetowy<\/b>: Podatno\u015b\u0107 mo\u017ce wyst\u0105pi\u0107, je\u015bli X-Frame-Options z sprzeczn\u0105 warto\u015bci\u0105 jest ustawiane na serwerze www lub na r\u00f3wnowa\u017cniku obci\u0105\u017ce\u0144. W takim przypadku serwer i r\u00f3wnowa\u017cnik po prostu nadpisz\u0105 nag\u0142\u00f3wek, poniewa\u017c maj\u0105 wy\u017cszy priorytet w por\u00f3wnaniu do kodu backendowego.\u00a0\u00a0<\/p>\n<p>Warto\u015bci deny i sameorigin nag\u0142\u00f3wka X-Frame-Options b\u0119d\u0105 przeszkadza\u0107 w dzia\u0142aniu webwizora Yandexa. Aby umo\u017cliwi\u0107 u\u017cycie iframe dla webwizora, nale\u017cy napisa\u0107 w ustawieniach osobn\u0105 regu\u0142\u0119. Na przyk\u0142ad, dla nginx mo\u017cna skonfigurowa\u0107 tak:<\/p>\n<pre><code class=\"plaintext\">http{\n...\n map $http_referer $frame_options {\n \"~webvisor.com\" \"ALLOW-FROM http:\/\/webvisor.com\";\n default \"SAMEORIGIN\";\n }\n add_header X-Frame-Options $frame_options;\n...\n}\n\n<\/code><\/pre>\n<p>\n<\/li>\n<li><b>Podatno\u015bci PRSSI (import styl\u00f3w wzgl\u0119dnych do \u015bcie\u017cki).\u00a0\u00a0<\/b>\n<p>To jest luka w stylach strony. Powstaje, gdy do odwo\u0142a\u0144 do plik\u00f3w styl\u00f3w u\u017cywane s\u0105 wzgl\u0119dne linki w formacie href=\"\/somefolder\/styles.css\/\". Haker mo\u017ce to wykorzysta\u0107, je\u015bli znajdzie spos\u00f3b przekierowania u\u017cytkownika na z\u0142o\u015bliw\u0105 stron\u0119. Strona wstawi wzgl\u0119dny link w swoim URL i zasymuluje odwo\u0142anie do styl\u00f3w. Powstanie zapytanie w rodzaju badsite.ru\/...\/somefolder\/styles.css\/, kt\u00f3re pod p\u0142aszczykiem stylu mo\u017ce wykonywa\u0107 z\u0142o\u015bliwe dzia\u0142ania.\u00a0<\/p>\n<p><b>Czym to grozi<\/b>: Oszust b\u0119dzie m\u00f3g\u0142 skorzysta\u0107 z tej luki, je\u015bli znajdzie kolejn\u0105 s\u0142abo\u015b\u0107 w zabezpieczeniach. W rezultacie mo\u017cna ukra\u015b\u0107 dane u\u017cytkownika z ciasteczek lub token\u00f3w.<\/p>\n<p><b>Co powinien pami\u0119ta\u0107 programista internetowy<\/b>: Ustaw nag\u0142\u00f3wek X-Content-Type-Options: nosniff. W tym przypadku przegl\u0105darka sprawdzi typ zawarto\u015bci dla styl\u00f3w. Je\u015bli typ odbiega od text\/css, przegl\u0105darka zablokuje \u017c\u0105danie.\n<\/li>\n<\/ol>\n<p><\/p>\n<h2>Krytyczne luki<\/h2>\n<p><\/p>\n<ol>\n<li><b>Strona z polem dla has\u0142a jest przesy\u0142ana z serwera przez niezabezpieczony kana\u0142 (HTML form containing password field(s) is served over HTTP).<\/b>\n<p>Odpowied\u017a z serwera przez niezaszyfrowany kana\u0142 jest podatna na ataki typu \u201eMan in the Middle\u201d. Haker mo\u017ce przechwyci\u0107 ruch i w\u015blizgn\u0105\u0107 si\u0119 pomi\u0119dzy klientem a serwerem, gdy strona jest przesy\u0142ana z serwera do klienta.\u00a0<\/p>\n<p><b>Czym to grozi<\/b>: Oszust b\u0119dzie m\u00f3g\u0142 podmieni\u0107 stron\u0119 i wys\u0142a\u0107 u\u017cytkownikowi formularz danych osobowych, kt\u00f3re trafi\u0105 na serwer przest\u0119pcy.\u00a0<\/p>\n<p><b>Co powinien pami\u0119ta\u0107 programista internetowy<\/b>: Niekt\u00f3re strony zamiast has\u0142a wysy\u0142aj\u0105 u\u017cytkownikom jednorazowy kod na e-mail\/telefon. W takim przypadku luka nie jest tak krytyczna, ale mechanizm utrudni \u017cycie u\u017cytkownikom.\n<\/li>\n<li><b>Wys\u0142anie formularza z loginem i has\u0142em przez niezabezpieczony kana\u0142 (Login Form Is Not Submitted Via HTTPS).<\/b>\n<p>W takim przypadku od u\u017cytkownika na serwer przez niezaszyfrowany kana\u0142 wysy\u0142any jest formularz z loginem i has\u0142em.<\/p>\n<p><b>Czym to grozi<\/b>: W przeciwie\u0144stwie do poprzedniego przypadku, to ju\u017c krytyczna luka. Przechwycenie poufnych danych jest prostsze, poniewa\u017c nie trzeba nawet pisa\u0107 kodu.\u00a0\n<\/li>\n<li><b>U\u017cywanie bibliotek JavaScript z znanymi lukami.<\/b>\n<p>W trakcie skanowania najcz\u0119\u015bciej u\u017cywan\u0105 bibliotek\u0105 sta\u0142 si\u0119 jQuery z szerokim zakresem wersji. W ka\u017cdej z wersji jest co najmniej jedna, a czasem wi\u0119cej znanych luk. Wp\u0142yw mo\u017ce by\u0107 r\u00f3\u017cny \u2013 zale\u017cy od natury luki.<\/p>\n<p><b>Czym to grozi<\/b>: Dla znanych luk istniej\u0105 exploity, na przyk\u0142ad takie:<\/p>\n<p><img decoding=\"async\" alt=\"Grzechy \u015bmiertelne bezpiecze\u0144stwa strony: czego nauczyli\u015bmy si\u0119 z statystyk skanera luk rocznych\" src=\"\/wp-content\/uploads\/2020\/06\/4e9ebec0ae735aafd28f5e6b1a806406.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n<b>Co powinien pami\u0119ta\u0107 programista internetowy<\/b>: Regularnie wracaj do cyklu: wyszukiwanie znanych luk \u2013 usuwanie \u2013 sprawdzanie. Je\u015bli \u015bwiadomie u\u017cywasz przestarza\u0142ych bibliotek, na przyk\u0142ad w celu wsparcia starych przegl\u0105darek lub z oszcz\u0119dno\u015bci bud\u017cetu, szukaj mo\u017cliwo\u015bci usuni\u0119cia znanej luki.\u00a0\n<\/li>\n<li><b>Z\u0142o\u015bliwe skrypty mi\u0119dzy witrynami (XSS).\u00a0<\/b><br \/>\nCross-Site Scripting (XSS), czyli skrypty mi\u0119dzystronowe, to ataki na aplikacj\u0119 internetow\u0105, w wyniku kt\u00f3rych w bazie danych pojawia si\u0119 z\u0142o\u015bliwy kod. Je\u015bli Qualys wykryje tak\u0105 luk\u0119, oznacza to, \u017ce potencjalny napastnik mo\u017ce wprowadzi\u0107 lub ju\u017c wprowadzi\u0142 do kodu strony sw\u00f3j skrypt js w celu wykonania szkodliwych dzia\u0142a\u0144.<\/p>\n<p><b>XSS przechowywane (Stored XSS)<\/b> s\u0105 bardziej niebezpieczne, poniewa\u017c skrypt jest wprowadzany na serwerze i wykonywany za ka\u017cdym razem, gdy otworzona jest zaatakowana strona w przegl\u0105darce.<\/p>\n<p><b>XSS odzwierciedlone (Reflected XSS)<\/b> s\u0105 \u0142atwiejsze do przeprowadzenia, poniewa\u017c z\u0142o\u015bliwy skrypt mo\u017cna wprowadzi\u0107 w \u017c\u0105daniu HTTP. Aplikacja otrzyma \u017c\u0105danie HTTP, nie zweryfikuje danych, zapakowuje je i natychmiast wysy\u0142a. Je\u015bli atakuj\u0105cy przechwyci ruch i wstawi skrypt w postaci <\/p>\n<pre><code class=\"plaintext\">\/*+co\u015b+z\u0142ego+*\/\/ <\/code><\/pre>\n<p>\nto w imieniu klienta zostanie wys\u0142ane z\u0142o\u015bliwe \u017c\u0105danie.<\/p>\n<p>Jasnym przyk\u0142adem XSS s\u0105 skrypty js, kt\u00f3re imituj\u0105 strony do wprowadzania CVC, daty wa\u017cno\u015bci karty itp.\u00a0<\/p>\n<p><b>Co powinien pami\u0119ta\u0107 programista internetowy<\/b>: W nag\u0142\u00f3wku Content-Security-Policy u\u017cyj atrybutu script-src, aby przegl\u0105darka klienta \u0142adowa\u0142a i wykonywa\u0142a kod tylko z zaufanego \u017ar\u00f3d\u0142a. Na przyk\u0142ad, script-src 'self' dodaje do bia\u0142ej listy wszystkie skrypty tylko z naszej strony.\u00a0<br \/>\nNajlepsz\u0105 praktyk\u0105 jest kod inline: zezw\u00f3l tylko na inline javascript za pomoc\u0105 warto\u015bci unsafe-inline. Taka warto\u015b\u0107 pozwala na u\u017cycie inline js\/css, ale nie zabrania pod\u0142\u0105czania plik\u00f3w js. W po\u0142\u0105czeniu ze script-src 'self' zabraniaj\u0105c wykonania zewn\u0119trznych skrypt\u00f3w.<\/p>\n<p>Zawsze loguj wszystko za pomoc\u0105 report-uri i obserwuj pr\u00f3by wprowadzenia na stron\u0119.\n<\/li>\n<li><b>SQL-iniekcje.<\/b><br \/>\nLuka ta oznacza mo\u017cliwo\u015b\u0107 wprowadzenia na stron\u0119 kodu SQL, kt\u00f3ry bezpo\u015brednio odnosi si\u0119 do bazy danych strony. SQL-iniekcja jest mo\u017cliwa, je\u015bli dane od u\u017cytkownika nie s\u0105 escapowane: nie s\u0105 sprawdzane pod k\u0105tem poprawno\u015bci i s\u0105 natychmiast u\u017cywane w zapytaniu. Na przyk\u0142ad, tak si\u0119 dzieje, je\u015bli formularz na stronie nie sprawdza zgodno\u015bci wprowadzonego typu danych.\u00a0<\/p>\n<p><b>Czym to grozi<\/b>: Je\u015bli napastnik wpisze w taki formularz zapytanie SQL, mo\u017ce zdewastowa\u0107 baz\u0119 danych lub ujawni\u0107 poufne informacje.\u00a0<\/p>\n<p><b>Co powinien pami\u0119ta\u0107 programista internetowy<\/b>: Nie ufaj temu, co pochodzi z przegl\u0105darki. Nale\u017cy zabezpiecza\u0107 si\u0119 zar\u00f3wno po stronie klienta, jak i serwera.\u00a0<\/p>\n<p>Po stronie klienta napisz walidacj\u0119 p\u00f3l za pomoc\u0105 JavaScript.\u00a0<\/p>\n<p>Wbudowane funkcje w popularnych frameworkach r\u00f3wnie\u017c pomagaj\u0105 w zabezpieczeniu podejrzanych znak\u00f3w na serwerze. Na serwerze zaleca si\u0119 r\u00f3wnie\u017c stosowanie parametryzowanych zapyta\u0144 do baz danych.<\/p>\n<p>Okre\u015bl, gdzie dok\u0142adnie odbywa si\u0119 interakcja z baz\u0105 danych w aplikacji webowej.\u00a0<\/p>\n<p>Interakcja wyst\u0119puje, gdy uzyskujemy jakiekolwiek informacje: zapytanie z id (zmiana id), utworzenie nowego u\u017cytkownika, nowy komentarz \u2013 nowe rekordy w bazie. Tutaj mog\u0105 wyst\u0105pi\u0107 sql-iniekcje. Nawet przy usuwaniu rekordu z bazy mo\u017cliwa jest sql-iniekcja.\n<\/li>\n<\/ol>\n<p><\/p>\n<h2>Og\u00f3lne zalecenia<\/h2>\n<p>\n<b>Nie wymy\u015blaj ko\u0142a na nowo \u2013 korzystaj z sprawdzonych framework\u00f3w<\/b>. Zazwyczaj popularne frameworki s\u0105 bardziej bezpieczne. Dla .NET to ASP.NET MVC i ASP.NET Core, dla Pythona \u2013 Django lub Flask, dla Rubiego \u2013 Ruby on Rails, dla PHP \u2013 Symfony, Laravel, Yii, dla JavaScript \u2013 Node.JS- Express.js, dla Java \u2013 Spring MVC.<\/p>\n<p><b>B\u0105d\u017a na bie\u017c\u0105co z aktualizacjami od dostawcy i regularnie je aktualizuj<\/b>. Wra\u017cliwo\u015bci zostan\u0105 odkryte, nast\u0119pnie napisz\u0105 exploit, opublikuj\u0105 go i wszystko zacznie si\u0119 od nowa. Zapisz si\u0119 na aktualizacje stabilnych wersji od dostawcy oprogramowania.<\/p>\n<p><b>Sprawdzaj uprawnienia dost\u0119pu<\/b>. Z perspektywy serwera zawsze odnosi si\u0119 do swojego kodu tak, jakby by\u0142 on ca\u0142kowicie napisany przez twojego najgorszego wroga, kt\u00f3ry chce zburzy\u0107 twoj\u0105 stron\u0119 i naruszy\u0107 integralno\u015b\u0107 twoich danych. Tym bardziej, \u017ce czasami tak rzeczywi\u015bcie jest.<\/p>\n<p><b>U\u017cywaj klon\u00f3w, \u015brodowisk testowych, a dopiero potem wprowadzaj zmiany w \u015brodowisku produkcyjnym<\/b>. To pomo\u017ce, po pierwsze, unikn\u0105\u0107 b\u0142\u0119d\u00f3w i niedopatrze\u0144 w \u015brodowisku produkcyjnym: \u015brodowisko produkcyjne przynosi zyski, a przestoje w produkcji s\u0105 krytyczne. Przy dodawaniu, poprawianiu lub rozwi\u0105zywaniu jakiegokolwiek problemu warto przeprowadza\u0107 prace w \u015brodowisku testowym, nast\u0119pnie sprawdza\u0107 funkcjonalno\u015b\u0107 i zidentyfikowane luki, a dopiero potem planowa\u0107 prace w \u015brodowisku produkcyjnym.\u00a0<\/p>\n<p><b>Chro\u0144 aplikacj\u0119 webow\u0105 za pomoc\u0105 <noindex><a rel=\"nofollow\" href=\"https:\/\/www.dtln.ru\/uslugi\/security\/firewall\">Web Application Firewall<\/a><\/noindex> i integrowa\u0107 z nim raporty z narz\u0119dzia skanuj\u0105cego luki<\/b>. Na przyk\u0142ad w DataLine jako zestawienie us\u0142ug u\u017cywane s\u0105 Qualys i FortiWeb.<br \/>\n<br \/>\u0179r\u00f3d\u0142o: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/dataline\/blog\/505274\/\">habr.com<\/a> <\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041f\u0440\u0438\u043c\u0435\u0440\u043d\u043e \u0433\u043e\u0434 \u043d\u0430\u0437\u0430\u0434 \u043c\u044b \u0432 DataLine \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u043b\u0438 \u0441\u0435\u0440\u0432\u0438\u0441 \u0434\u043b\u044f \u043f\u043e\u0438\u0441\u043a\u0430 \u0438 \u0430\u043d\u0430\u043b\u0438\u0437\u0430 \u0443\u044f\u0437\u0432\u0438\u043c\u043e\u0441\u0442\u0435\u0439 \u0432 \u0418\u0422-\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f\u0445. \u0412 \u043e\u0441\u043d\u043e\u0432\u0435 \u0441\u0435\u0440\u0432\u0438\u0441\u0430 \u2013 \u043e\u0431\u043b\u0430\u0447\u043d\u043e\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u0435 Qualys, \u043f\u0440\u043e \u0440\u0430\u0431\u043e\u0442\u0443 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u043c\u044b \u0443\u0436\u0435 \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u044b\u0432\u0430\u043b\u0438. \u0417\u0430 \u0433\u043e\u0434 \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u0440\u0435\u0448\u0435\u043d\u0438\u0435\u043c \u043c\u044b \u043f\u0440\u043e\u0432\u0435\u043b\u0438 291 \u0441\u043a\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0434\u043b\u044f \u0440\u0430\u0437\u043d\u044b\u0445 \u0441\u0430\u0439\u0442\u043e\u0432 \u0438 \u043d\u0430\u043a\u043e\u043f\u0438\u043b\u0438 \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0443 \u043f\u043e \u0440\u0430\u0441\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0435\u043d\u043d\u044b\u043c \u0443\u044f\u0437\u0432\u0438\u043c\u043e\u0441\u0442\u044f\u043c \u0432 \u0432\u0435\u0431-\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f\u0445.\u00a0 \u0412 \u0441\u0442\u0430\u0442\u044c\u0435 \u043d\u0438\u0436\u0435 \u044f \u043f\u043e\u043a\u0430\u0436\u0443, \u043a\u0430\u043a\u0438\u0435 \u0438\u043c\u0435\u043d\u043d\u043e [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":84185,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-84184","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.1.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u041f\u0440\u0438\u043c\u0435\u0440\u043d\u043e \u0433\u043e\u0434 \u043d\u0430\u0437\u0430\u0434 \u043c\u044b \u0432 DataLine \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u043b\u0438 \u0441\u0435\u0440\u0432\u0438\u0441 \u0434\u043b\u044f \u043f\u043e\u0438\u0441\u043a\u0430 \u0438 \u0430\u043d\u0430\u043b\u0438\u0437\u0430 \u0443\u044f\u0437\u0432\u0438\u043c\u043e\u0441\u0442\u0435\u0439 \u0432 \u0418\u0422-\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f\u0445.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/pl\/blog\/administrirovanie\/smertnye-grehi-bezopasnosti-sajta-chto-my-uznali-iz-statistiki-skanera-uyazvimostej-za-god\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.1.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"pl_PL\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u0421\u043c\u0435\u0440\u0442\u043d\u044b\u0435 \u0433\u0440\u0435\u0445\u0438 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438 \u0441\u0430\u0439\u0442\u0430: \u0447\u0442\u043e \u043c\u044b \u0443\u0437\u043d\u0430\u043b\u0438 \u0438\u0437 \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0438 \u0441\u043a\u0430\u043d\u0435\u0440\u0430 \u0443\u044f\u0437\u0432\u0438\u043c\u043e\u0441\u0442\u0435\u0439 \u0437\u0430 \u0433\u043e\u0434 | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041f\u0440\u0438\u043c\u0435\u0440\u043d\u043e \u0433\u043e\u0434 \u043d\u0430\u0437\u0430\u0434 \u043c\u044b \u0432 DataLine \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u043b\u0438 \u0441\u0435\u0440\u0432\u0438\u0441 \u0434\u043b\u044f \u043f\u043e\u0438\u0441\u043a\u0430 \u0438 \u0430\u043d\u0430\u043b\u0438\u0437\u0430 \u0443\u044f\u0437\u0432\u0438\u043c\u043e\u0441\u0442\u0435\u0439 \u0432 \u0418\u0422-\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f\u0445.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/pl\/blog\/administrirovanie\/smertnye-grehi-bezopasnosti-sajta-chto-my-uznali-iz-statistiki-skanera-uyazvimostej-za-god\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2020-06-05T17:42:31+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-06-05T17:42:31+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Grzechy g\u0142\u00f3wne w zabezpieczeniach strony: co nauczyli\u015bmy si\u0119 z statystyk skanera luk w ci\u0105gu roku | ProHoster","description":"Oko\u0142o rok temu w DataLine uruchomili\u015bmy us\u0142ug\u0119 do wyszukiwania i analizy luk w aplikacjach IT.","canonical_url":"https:\/\/prohoster.info\/pl\/blog\/administrirovanie\/smertnye-grehi-bezopasnosti-sajta-chto-my-uznali-iz-statistiki-skanera-uyazvimostej-za-god","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"pl_PL","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u0421\u043c\u0435\u0440\u0442\u043d\u044b\u0435 \u0433\u0440\u0435\u0445\u0438 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438 \u0441\u0430\u0439\u0442\u0430: \u0447\u0442\u043e \u043c\u044b \u0443\u0437\u043d\u0430\u043b\u0438 \u0438\u0437 \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0438 \u0441\u043a\u0430\u043d\u0435\u0440\u0430 \u0443\u044f\u0437\u0432\u0438\u043c\u043e\u0441\u0442\u0435\u0439 \u0437\u0430 \u0433\u043e\u0434 | ProHoster","og:description":"\u041f\u0440\u0438\u043c\u0435\u0440\u043d\u043e \u0433\u043e\u0434 \u043d\u0430\u0437\u0430\u0434 \u043c\u044b \u0432 DataLine \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u043b\u0438 \u0441\u0435\u0440\u0432\u0438\u0441 \u0434\u043b\u044f \u043f\u043e\u0438\u0441\u043a\u0430 \u0438 \u0430\u043d\u0430\u043b\u0438\u0437\u0430 \u0443\u044f\u0437\u0432\u0438\u043c\u043e\u0441\u0442\u0435\u0439 \u0432 \u0418\u0422-\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f\u0445.","og:url":"https:\/\/prohoster.info\/pl\/blog\/administrirovanie\/smertnye-grehi-bezopasnosti-sajta-chto-my-uznali-iz-statistiki-skanera-uyazvimostej-za-god","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2020-06-05T17:42:31+00:00","article:modified_time":"2020-06-05T17:42:31+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"84184","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":null,"breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 15:03:50","updated":"2022-09-30 12:56:20","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/posts\/84184","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/comments?post=84184"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/posts\/84184\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/media\/84185"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/media?parent=84184"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/categories?post=84184"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/tags?post=84184"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}