Sep 29

Przez kilka lat pracy przy systemach internetowych odkryłem niebezpieczną, choć zrozumiałą modyfikację zasady “braku zaufania do użytkownika” w stosunku do osób, na których zamówienie system był pisany - jeżeli piszesz program, którym zarządzać będzie Twój klient, np CMS do jego strony internetowej, zakładasz, że nie będzie w jego interesie “zniszczenie” własnego programu. Skupiasz się przede wszystkim na tym, aby internauta wchodzący na stronę Twojego klienta nie mógł uzyskać dostępu do panelu administracyjnego, ani nie spowodował żadnych szkód świadomym lub nieświadomym działaniem. Zaoszczędziłeś pracy, masz zadowolonego klienta, w niedzielę dostajesz SMSa, że “coś nie działa..” - uniknijmy tego aby w niedzielę bez stresu leczyć się po sobotnim wieczorze. dalej »

Sep 24

Ataki polegające na modyfikowaniu żądań przesyłanych przez przeglądarkę do programu na serwerze to chyba najpopularniejsza metoda próby popsucia humoru programistom. Sam testując nowy serwis / portal internetowy, pierwsze co robię to podmiana wartości zmiennych przesyłanych w URL - dodaję apostrofy lub cudzysłowy, zwiększam zmienne liczbowe ponad wartości graniczne, cuduję ile wlezie. Jak mi się uda - udając skromność i chłodny profesjonalizm wspominam o tym “przy okazji” komu się da. Jak sie nie uda, nie wspominam, że w ogóle próbowałem, “bo po co?”. Mina mi szybko rzednie, gdy się okazuje, że po raz kolejny pod latarnią najciemniej. dalej »

Sep 20

Już dawno temu odkryłem potęgę funkcji warunkowych w SQL, tak dawno, że zapomniałem czemu uważam je za potężne. Odświeżyłem sobie tę wiedzę podczas rozwiązywania problemu statystyk, a przybliżę ją Tobie na przykładzie forum. Pytanie brzmi: jak optymalnie pobrać i przetworzyć dane z funkcji agregujących pochodzące z kilku tabel (tłum. fajnie by było jakbym widział kto i ile razy wypowiadał się w jakich tematach i żeby serwera nie zamuliło). dalej »

Sep 18

Microsoft Internet Explorer miał okazję stać się najlepszą przeglądarką wszechświata i okolic, niestety inni zaczęli produkować przeglądarki mniej zgodne ze standardami Microsoft, a bardziej z tymi wspieranymi przez konsorcjum w3c. Po instalacji nowej przeglądarki IE 7 bardzo “ucieszyła” moją klawiaturę wiadomość o tym, że do każdego obiektu zamkniętego w znaczniki <object></object> lub <embed></embed> William zdecydował się dodać małą, kropkowaną obwolutę, która oprócz paskudnego wyglądu i napisu w jakimś obcym języku blokuje zdarzenia myszki i klawiatury wywoływane na obiekcie. Może jest w tym jakiś sens, jednak zwiększenie mojego poczucia bezpieczeństwa jako internauty szybko znikło, gdy policzyłem sobie ilu moich klientów będzie musiało za każdym razem click by activate i use mój control… dalej »

Sep 18

Próbowałeś kiedyś wstawić w XSL kod JavaScript? Problem polega na tym, że po zamknięciu kodu JS w tagi <script></script> i przepuszczeniu takiego XSL-a przez procesor XSL zainstalowany domyślnie w PHP5, Twoj kod JavaScript zostanie zamknięty w znaczniki <![CDATA[ ]]>, co spowoduje wyświetlenie błędu JavaScript oraz chęć uderzenia w klawiaturę. Jeżeli masz wystarczająco dużo cierpliwości i wytrzymałą klawiaturę dojdziesz do wniosku, że należy zastosować trik w postaci “wstrzyknięcia” znaczników <script> za pomocą XSL do HTMLa wynikowego. dalej »