Filtr XSS w IE8

Na oficjalnym blogu IE pojawił się wpis informujący o jednej z nowości dodanych do Internet Explorer 8 beta 2 mającej w znacznym stopniu zwiększyć bezpieczeństwo korzystania z Internetu. Mowa o filtrze XSS, który powstał we współpracy z teamem Security Vulnerability Research & Defense.

czytaj dalej

"Mój" art w Hackin9

W oczekiwaniu na projekcję The Incredible Hulk postanowiłem odwiedzić Empik i zapoznać się z jakże ciekawą zawartością gazet i czasopism IT z bieżącego miesiąca. Na pierwszy ogień poszedł Hackin9 w poszukiwaniu nowych informacji na temat webapp sec. Przerzucając kolejne strony natrafiłem na artykuł, którego tematem był spam, a konkretnie "Techniki spamowania" napisany przez Rafała Podsiadłego. W pierwszej chwili mój wzrok został przyciągnięty przez znajomy kod PHP – a głównie znajome spacje stawiane po i przed nawiasami :). Po pobieżnym zapoznaniu się z artem okazało się, że jego pokaźna część jest dokładną kopią mojej notki Walka ze spambotami.

czytaj dalej

Nosił wilk razy kilka ...

Jak można było zauważyć w czwartek treść bloga się trochę zmieniła :) Została ona (tak samo jak komentarze) podmieniona. Dla osób którym nie było dane zobaczyć tego zjawiska screen:

czytaj dalej

Obsługa HTML

Jakiś czas temu w notce Niebezpieczeństwo HTML'a nakreśliłem problem wstrzyknięć kodu HTML. W komentarzach kilkukrotnie pojawiło się pytanie o sposób obrony przed tego typu zagrożeniem.

Najprostszą obroną jest usuwanie wszelkich tagów HTML z przesłanych danych. Możemy tego dokonać korzystając z funkcji strip_tags oraz htmlspecialchars. W przypadku drugiej funkcji warto zainteresować się jej opcjonalnymi parametrami tzn. sposobem postępowania z apostrofami i cudzysłowami oraz kodowaniem. Przykładowy kod chroniący przed HTML Injection dla strony kodowanej UTF-8 może wyglądać tak:

czytaj dalej

PHPowe filtry

Najważniejszym elementem zapewniającym bezpieczeństwo aplikacji jest dbanie o walidacje i filtrowanie danych zewnętrznych trafiających do skryptu za pośrednictwem tablic superglobalnych.

Większość programistów PHP podczas pracy korzysta z takich funkcji jak ctype_*, preg_mach, strip_tags etc. w celu kontroli danych wejściowych. Niewielu jednak (sądząc po popularności w G) wie o istnieniu / korzysta z mechanizmu wprowadzonego w piątej wersji PHP ułatwiającego ten proces.

Poniżej znajdują się dwa proste przykłady prezentujące jego możliwości.

czytaj dalej

Dynamiczne logowanie

Ka?de, nawet najbardziej skomplikowane has?o mo?e zosta? z?amane. Jedyn? niewiadom? w tym procesie jest czas potrzebny do wygenerowania wszystkich mo?liwych kombinacji znaków. Powodem takiego stanu rzeczy jest statyczno?? has?a. Mianowicie podczas ataku brute force ka?dy wygenerowany ci?g znaków porównywany jest zawsze z tym samym has?em znajduj?cym si? w bazie. Gdyby zapewni? zmienno?? has?a przy ka?dym logowaniu sprawdzanie ka?dej kombinacji przesta?oby mie? sens. Poni?ej kilka przyk?adów pokazuj?cych jak mo?na stworzy? dynamiczne logowanie.

czytaj dalej

Logowanie Apache.

W przypadku logowania, które ma działać, a nie zapewniać nam ogromne możliwości konfiguracji i kontroli użytkowników możemy skorzystać z mechanizmu wbudowanego w serwer Apache. Udostępnia ono dwa tryby logowania basic oraz digest. Różnica między nimi polega na sposobie przesyłania danych do serwera. W przypadku trybu digest dane logowania (login i hasło) przesyłane są w formie skrótu (hash) dzięki czemu przechwycenie ich przez napastnika nic mu nie da (chyba, że skorzysta z tęczowych tablic). Niestety ciągle popularniejszym trybem jest basic, związane jest to z przekonaniem, że nie wszystkie przeglądarki potrafią hashować dane logowania. Jednakże jest to przestarzałe stwierdzenie, ponieważ aktualnie wszystkie popularne przeglądarki posiadają taką możliwość (np. Internet Explorer, Opera, FireFox, Konqueror).

Czas na trochę praktyki.

czytaj dalej

Podstawy zabezpieczania logowania.

Moduł logowania jest podstawowym elementem każdego systemu informatycznego. Umożliwia on dostęp do wybranych zasobów tylko uprawionym użytkownikom. Jest on krytycznym miejscem aplikacji, przełamanie jego zabezpieczeń automatycznie wiąże sie z przydzieleniem atakującemu wyższych uprawnień. Sposób zabezpieczenia procesu logowania powinien być adekwatny do wrażliwości danych, do których strzeże on dostępu. Nie ma sensu tworzyć skomplikowanych systemów zabezpieczających panel administratora strony domowej, gdzie wystarczy najprostsza metoda logowania.

Istnieją jednak elementy, które powinny znaleźć się w każdym module logowania. Są to:

czytaj dalej

Licencja

Materiały zawarte na stronie mogą być dowolnie rozpowszechniane pod warunkiem zaznaczenia autora i źródła pochodzenia.




Creative Commons License


Ten utwór jest dostępny na
licencji Creative Commons Uznanie autorstwa-Użycie niekomercyjne-Bez utworów zależnych 2.5 Polska.

Bezpieczeństwo dostępu do plików

Nieodzownym elementem każdej aplikacji internetowej są pliki tekstowe. Występują one jako miejsce przechowywania danych konfiguracyjnych, szablonów czy samego kodu PHP. Mimo prostoty korzystania z nich należy podjąć pewne kroki, w celu uczynienia tego procesu bezpieczniejszym. Poniżej znajduje się zestawienie kilku sposobów, które to umożliwiają.

czytaj dalej
strony: 1234