diff options
Diffstat (limited to 'files/pl/web/security')
-rw-r--r-- | files/pl/web/security/securing_your_site/index.html | 55 | ||||
-rw-r--r-- | files/pl/web/security/securing_your_site/konfiguracja_mime_na_serwerze/index.html | 114 |
2 files changed, 169 insertions, 0 deletions
diff --git a/files/pl/web/security/securing_your_site/index.html b/files/pl/web/security/securing_your_site/index.html new file mode 100644 index 0000000000..59682ddf82 --- /dev/null +++ b/files/pl/web/security/securing_your_site/index.html @@ -0,0 +1,55 @@ +--- +title: Securing your site +slug: Web/Security/Securing_your_site +tags: + - HTTP + - NeedsTranslation + - Security + - TopicStub + - Web Development + - Website Security +translation_of: Web/Security/Securing_your_site +--- +<p>{{ draft() }}</p> + +<p>There are a number of things you can do to help secure your site. This article offers an assortment of suggestions, as well as links to other articles providing more useful information.</p> + +<div class="note"><strong>Note:</strong> This article is a work in progress, and is neither complete nor does following its suggestions guarantee your site will be fully secure.</div> + +<h2 id="User_information_security">User information security</h2> + +<dl> + <dt><a href="/en/How_to_Turn_Off_Form_Autocompletion" title="en/How to Turn Off Form Autocompletion">How to turn off form autocompletion</a></dt> + <dd>Form fields support autocompletion in Gecko; that is, their values can be remembered and automatically brought back the next time the user visits your site. For certain types of data, you may wish to disable this feature.</dd> + <dt><a href="/en/CSS/Privacy_and_the_:visited_selector" title="en/CSS/Privacy and the :visited selector">Privacy and the :visited selector</a></dt> + <dd>This article discusses changes made to the <code>getComputedStyle()</code> method that eliminates the ability for malicious sites to figure out the user's browsing history.</dd> + <dt><a href="https://www.owasp.org/index.php/Password_Storage_Cheat_Sheet">Hash passwords using a secure algorithm</a> (OWASP)</dt> + <dd>Storing passwords in plain text can lead to attackers knowing and leaking the exact password of your site's users, potentially putting the users at risk. The same issues can arise if you use an old or insecure algorithm for hashing (such as md5). You should use a password-specific hashing algorithm (such as Argon2, PBKDF2, scrypt or bcrypt) instead of message digest algorithms (such as md5 and sha). This article showcases best practices to use when storing passwords.</dd> +</dl> + +<h2 id="Content_security">Content security</h2> + +<dl> + <dt><a href="/en/Properly_Configuring_Server_MIME_Types" title="en/Properly Configuring Server MIME Types">Properly configuring server MIME types</a></dt> + <dd>There are several ways incorrect MIME types can cause potential security problems with your site. This article explains some of those and shows how to configure your server to serve files with the correct MIME types.</dd> + <dt><a href="/en/Security/HTTP_Strict_Transport_Security" title="en/Security/HTTP Strict Transport Security">HTTP Strict Transport Security</a></dt> + <dd>The <code>Strict-Transport-Security:</code> <a href="/en/HTTP" title="en/HTTP">HTTP</a> header lets a website specify that it may only be accessed using HTTPS.</dd> + <dt><a href="/en-US/docs/Web/HTTP/CORS" title="En/HTTP access control">HTTP access control</a></dt> + <dd>The Cross-Origin Resource Sharing standard provides a way to specify what content may be loaded from other domains. You can use this to prevent your site from being used improperly; in addition, you can use it to establish resources that other sites are expressly permitted to use.</dd> + <dt><a href="/en/Security/CSP">Content Security Policy</a></dt> + <dd>An added layer of security that helps to detect and mitigate certain types of attacks, including {{Glossary("Cross-site_scripting", "Cross Site Scripting (XSS)")}} and data injection attacks. These attacks are used for everything from data theft to site defacement or distribution of malware. Code is executed by the victims and lets the attackers bypass access controls and impersonate users. According to the Open Web Application Security Project, XSS was the <a class="external external-icon" href="https://www.owasp.org/images/7/72/OWASP_Top_10-2017_%28en%29.pdf.pdf" rel="noopener">seventh most common Web app vulnerability</a> in 2017.</dd> + <dt><a href="/en-US/docs/Web/HTTP/X-Frame-Options">The X-Frame-Options response header</a></dt> + <dd> + <p>The <code>X-Frame-Options:</code> <a href="/en/HTTP" title="en/HTTP">HTTP</a> response header can be used to indicate whether or not a browser should be allowed to render a page in a {{ HTMLElement("frame") }}. Sites can use this to avoid clickjacking attacks, by ensuring that their content is not embedded into other sites.</p> + </dd> + <dt>Securing Your Site using Htaccess</dt> + <dd>It is the best way to secure your site using the .htaccess file. You can blacklist IPs, restrict access to certain areas of website, protect different files, protect against image hotlinking, and a lot more.</dd> +</dl> + +<h2 id="See_also">See also</h2> + +<ul> + <li><a class="external" href="https://www.owasp.org/">Open Web Application Security Project (OWASP)</a></li> +</ul> + +<div>{{QuickLinksWithSubpages("/en-US/docs/Web/Security")}}</div> diff --git a/files/pl/web/security/securing_your_site/konfiguracja_mime_na_serwerze/index.html b/files/pl/web/security/securing_your_site/konfiguracja_mime_na_serwerze/index.html new file mode 100644 index 0000000000..87aea6b3b3 --- /dev/null +++ b/files/pl/web/security/securing_your_site/konfiguracja_mime_na_serwerze/index.html @@ -0,0 +1,114 @@ +--- +title: Poprawna kofiguracja MIME na serwerze +slug: Web/Security/Securing_your_site/Konfiguracja_MIME_na_serwerze +tags: + - HTTP +translation_of: Learn/Server-side/Configuring_server_MIME_types +--- +<h2 id="Background" name="Background">Kontekst</h2> + +<p>Wiele serwerów webowych domyślnie ma skonfigurowane raportowanie typów MIME <code>text/plain</code> lub <code>application/octet-stream</code> w przypadku nierozpoznanych typów zawartości. Kiedy nowe typy zawartości dopiero powstają lub są dodawane do serwerów webowych zdarza się, że administratorzy webowi nie dodają nowo-powstałych typów MIME do ustawień serwera webowego. I to właśnie stanowi główną bolączkę użytkowników przeglądarek opartych o Gecko, które uznają typy MIME jako zraportowane przez serwery i aplikacje webowe.</p> + +<h3 id="What_are_MIME_types.3F" name="What_are_MIME_types.3F">Czym są typy MIME?</h3> + +<p>Typy MIME opisują typ danych zawartości mailowej lub obsługiwanej przez serwery lub aplikacje webowe i ich zadaniem jest pomoc przeglądarce w przetworzeniu i wyświetleniu zawartości. Przykładami typów MIME są:</p> + +<ul> + <li><code>text/html</code> dla zwykłych stron WWW</li> + <li><code>text/plain</code> dla zwykłego tekstu</li> + <li><code>text/css</code> dla kaskadowych arkuszy stylów</li> + <li><code>text/javascript</code> dla skryptów</li> + <li><code>application/octet-stream</code> przy pobieraniu pliku</li> + <li><code>application/x-java-applet</code> dla apletów Javy</li> + <li><code>application/pdf</code> dla dokumentów PDF</li> +</ul> + +<h3 id="Technical_Background" name="Technical_Background">Kontekst techniczny</h3> + +<p>Zarejestrowane wartości MIME są dostępne w <a class="external" href="http://www.iana.org/assignments/media-types/index.html">Typy danych IANA | MIME</a>. <a class="external" href="http://www.w3.org/Protocols/HTTP/1.1/spec.html">Specyfikacja HTTP</a> definiuje nadzbiór typów MIME, który jest używany do opisu typów danych używanych w sieci WWW.</p> + +<h3 id="Why_are_correct_MIME_types_important.3F" name="Why_are_correct_MIME_types_important.3F">Dlaczego poprawne typy MIME są tak istotne?</h3> + +<p><img alt="Example of an incorrect MIME type result" class="internal" src="/@api/deki/files/729/=Incorrect-mime-screen.jpg" style="float: right;"> Jeśli serwer lub aplikacja webowa dla danej zawartości raportuje niepoprawny typ MIME, przeglądarka nie ma możliwości, <em>wg specyfikacji HTTP</em>, wiedzieć, że autor zainicjował przetworzenie i wyświetlenie danej zawartości w odmienny sposób, niż domyślny dla zraportowanego typu MIME.</p> + +<p>Niektóre z przeglądarek, jak Microsoft® Internet Explorer, dążą do zezwalania niepoprawnie skonfigurowanym serwerom i aplikacjom webowym na <em><a class="external" href="http://support.microsoft.com/default.aspx?sd=msdn&scid=kb;en-us;293336">zgadywanie</a></em>, jaki powinien być poprawny typ MIME. Takie podejście uchroniło wielu administratorów webowych przed własnymi błędami - Internet Explorer kontynuuje przetwarzanie zawartości zgodnie z oczekiwaniami mimo, że sam serwer webowy nie jest poprawnie skonfigurowany i np. wyświetla obrazek, który został zraportowany jako będący rzekomo zwykłym tekstem.</p> + +<p>Obsługa treści poprzez używanie poprawnego typu MIME jest istotna także z punktu widzenia bezpieczeństwa; istnieje ryzyko wyrządzenia przez niechcianą treść szkód na komputerze użytkownika poprzez symulowanie, że typ danej zawartości jest bezpieczny mimo, że w istocie może nie być to prawda.</p> + +<div class="note"> +<p><strong>Zauważ:</strong> Kiedyś Firefox ładował pliki CSS nawet, jeśli posiadały błędny typ MIME. Wystarczyło, że dokument HTML, który o nie wnioskował działał w trybie osobliwości (quirks mode). Ze względów bezpieczeństwa, {{ gecko("2.0") }} nie będzie dłużej kontynować tego typu zachowań w przypadku arkuszy stylów ładowanych z innych źródeł, niż dokument, który o nie wnioskował. Jeśli Twój arkusz stylów pochodzi z innego źródła, niż główny dokument <strong>musisz </strong>obsłużyć go poprzez poprawny typ MIME (<code>text/css</code>).</p> + +<p>Gecko 1.9.1.11 (Firefox 3.5.11) i Gecko 1.9.2.5 (Firefox 3.6.5) również zaimplementowały tę łatkę bezpieczeństwa, ale by polepszyć zgodność <strong>tymczasowo </strong>istniała heurytrystyka pozwalająca na załadowanie, jeśli pierwsza linia w arkuszu stylów wydawała się być poprawną konstrukcją CSSową; heurytrystyka ta została usuninęta w Firefoxie 4 i od tego czasu należy odpowiednio ustawić typy MIME <code>text/css</code>, aby strony CSS zostały rozpoznane.</p> +</div> + +<h2 id="Why_browsers_should_not_guess_MIME_types" name="Why_browsers_should_not_guess_MIME_types">Dlaczego przeglądarki nie powinny zgadywać typów MIME</h2> + +<p>Poza naruszaniem specyfikacji HTTP istnieją dodatkowe powody, dla których zgadywanie typów MIME nie należy do najlepszych praktyk:</p> + +<h4 id="Loss_of_control" name="Loss_of_control">Utrata kontroli</h4> + +<p>Jeśli przeglądarka ignoruje zaraportowany typ MIME, administratorzy i autorzy webowi nie mają dłużej kontroli nad sposobem przetwarzania danej zawartości.</p> + +<p>Przykładowo, strona WWW ukierunkowana na twórców witryn może życzyć sobie przesłania pewnych dokumentów, przykładowo HTMLowych, jak również <code>text/html</code> lub <code>text/plain</code>, by móc je przetworzyć i wyświetlić jako HTML lub jako kod źródłowy. Jeśli przeglądarka będzie zgadywać typ MIME, tego typu możliwość nie będzie dłużej dostępna dla autora.</p> + +<h4 id="Security" name="Security">Bezpieczeństwo</h4> + +<p>Niektóre typy zawartości, jak pliki wykonywalne, są przeważnie niebezpieczne. Z tego powodu te typy MIME przeważnie są ograniczone pod względem akcji, jakie podejmie przeglądarka w przypadku tego typu plików. Plik wykonywalny nie powinien wykonywać się na komputerze użytkownika, co najwyżej może mieć prawo do wyświetlenia okienka <strong>z zapytaniem do użytkownika</strong>, czy chce pobrać ten plik.</p> + +<p>W Internet Explorerze zgadywanie typów MIME doprowadziło do naruszenia bezpieczeństwa - przez niepoprawne zgadywanie szkodliwe treści bywały oznaczane jako bezpieczne, co skutkowało pominięciem wyświetlania standardowego okienka pobierania i przedostawaniem się plików wykonywalnych na komputery użytkowników.</p> + +<h2 id="Jak_określić_typ_MIME_który_jest_wysyłany_przez_serwer">Jak określić typ MIME, który jest wysyłany przez serwer</h2> + +<p>W Firefoxie załaduj plik i użyj Narzędzia | Informacje o witrynie. Możesz również użyć <a class="external" href="http://www.rexswain.com/httpview.html">Rex Swain's HTTP Viewer</a> lub <a class="external" href="http://livehttpheaders.mozdev.org/">Live HTTP Headers</a> , aby zobaczyć pełne nagłówki i treść każdego pliku wysłanego z serwera webowego.</p> + +<p>W odniesieniu do standardów, tag <code>meta</code> o typie MIME jak np. <code><span class="nowiki"><meta http-equiv="Content-Type" content="text/html"></span></code> powinien być ignorowany, jeśli w nagłówku znajduje się zapis {{HTTPHeader("Content-Type")}}. Zamiast szukać tej linii w kodzie źródłowym HTML lepiej użyć powyższych technik do określenia typu MIME wysyłanego przez serwer.</p> + +<h2 id="Jak_określić_prawidłowy_typ_MIME_dla_Twojej_treści">Jak określić prawidłowy typ MIME dla Twojej treści</h2> + +<p>Jest kilka kroków, które należy zrobić by określić poprawną wartość dla typu MIME twojej treści.</p> + +<ol> + <li>Jeśli twoja treść została utworzona z pomocą zewnętrznego oprogramowania, przeczytaj jego dokumentację by dowiedzieć się, jakie typy MIME powinny zostać zraportowane dla danych typów danych.</li> + <li>Zerknij na <a class="external" href="http://www.iana.org/assignments/media-types/index.html">rejest typów danych IANA | MIME</a>. Zawiera on wszystkie zarejestrowane typy MIME.</li> + <li>Jeśli typ danych jest wyświetlany poprzez rozszerzenie w Netscape Gecko, zainstaluj wtyczkę, a następnie sprawdź Pomoc->O Menu Wtyczek, by sprawdzić jakie typy MIME są związane z typem danych.</li> + <li>Poszukaj rozszerzenia pliku w <a class="external" href="http://filext.com/">FILExt</a> lub <a class="external" href="http://www.file-extensions.org/">File extensions reference</a>, aby sprawdzić jakie typy MIME są związane z tym rozszerzeniem.</li> +</ol> + +<h2 id="Jak_przygotować_serwer_żeby_wysyłał_poprawne_typy_MIME">Jak przygotować serwer, żeby wysyłał poprawne typy MIME</h2> + +<p>Fundamentalną kwestią jest konfiguracja Twojego serwera w taki sposób, by wysyłał poprawny nagłówek HTTP {{HTTPHeader("Content-Type")}} dla każdego dokumentu.</p> + +<ul> + <li>Jeśli używasz serweru webowego Apache to po prostu skopiuj ten <a href="/en/Sample_.htaccess_file" title="en/Sample_.htaccess_file">fragment pliku .htaccess</a> do lokalizacji, która zawiera pliki, które chcesz wysłać z poprawnymi typami MIME. Jeśli masz cały podkatalog plików, po prostu umieść plik w katalogu nadrzędnym; nie ma potrzeby umieszczania go w każdym podkatalogu.</li> + <li>Jeśli uzywasz Microsoft IIS, sprawdź <a class="external" href="http://technet2.microsoft.com/windowsserver/en/library/ec84d61e-3e24-4de0-b35a-d41eb662fefb1033.mspx">ten artykuł</a> na Microsoft TechNet</li> + <li>Jesli używasz do generowania treści używasz skryptu działającego po stronie serwera, możesz po prostu dodać jedną linijkę praktycznie na samej górze Twojego skryptu. Możesz obsługiwać zawartość inną, niż HTML, właściwą dla Perla, PHP, ASP czy Javy - tylko zmień odpowiednio typ MIME. + <ul> + <li>W przypadku Pearl CGI zadbaj o zapis <code>print "Content-Type: text/html\n\n";</code> przed jakimkolwiek pozostałym outputem. Jeśli używasz modułu CGI to możesz zamiast tego użyć linii <code>print $cgi->header('text/html');</code>, gdzie <code>$cgi</code> to Twoja referencja do instancji CGI.</li> + <li>W przypadku PHP zadbaj o zapis <code>header('Content-Type: text/html');</code> przed jakimkolwiek pozostałym outputem.</li> + <li>W przypadku ASP zadbaj o zapis <code>response.ContentType = "text/html";</code> przed jakimkolwiek pozostałym outputem.</li> + <li>W przypadku servletu Javy zadbaj o zapis <code>response.setContentType("text/html");</code> na górze Twojej metody <code>doGet</code> lub <code>doPost</code>, gdzie <code>response</code> to referencja do <code>HttpServletResponse</code>.</li> + </ul> + </li> +</ul> + +<h3 id="Related_Links" name="Related_Links">Powiązane linki</h3> + +<ul> + <li><a href="/en/Incorrect_MIME_Type_for_CSS_Files" title="en/Incorrect_MIME_Type_for_CSS_Files">Niepoprawne typy MIME dla plików CSS</a></li> + <li><a class="external" href="http://www.iana.org/assignments/media-types/index.html">Typy danych IANA | MIME</a></li> + <li><a class="external" href="http://www.w3.org/Protocols/HTTP/1.1/spec.html">Protokół transmisji hipertekstu — HTTP/1.1</a></li> + <li><a class="external" href="http://support.microsoft.com/default.aspx?sd=msdn&scid=kb;en-us;293336">Microsoft - 293336 - INFO: WebCast: Podejście do typów MIME w Microsoft Internet Explorerze</a></li> + <li><a class="external" href="http://msdn.microsoft.com/workshop/networking/moniker/overview/appendix_a.asp">Microsoft - Appendix A: Wykrywanie typów MIME Type Detection w Internet Explorerze</a></li> + <li><a class="external" href="http://www.microsoft.com/windows/ie/downloads/critical/q290108/">Microsoft - Aktualizacja Bezpieczeństwa, 29.03.2001</a></li> + <li><a class="external" href="http://www.microsoft.com/windows/ie/downloads/critical/Q313675/">Microsoft - Aktualizacja Bezpieczeństwa, 13.12.2001</a></li> +</ul> + +<div class="originaldocinfo"> +<h3 id="Original_Document_Information" name="Original_Document_Information">Informacje dot. dokumentu źródłowego</h3> + +<ul> + <li>Author: Bob Clary, date: 20 Feb 2003</li> +</ul> +</div> + +<div>{{QuickLinksWithSubpages("/en-US/docs/Web/Security")}}</div> |