Strona używa cookies (ciasteczek). Dowiedz się więcej o celu ich używania i zmianach ustawień. Korzystając ze strony wyrażasz zgodę na używanie cookies, zgodnie z aktualnymi ustawieniami przeglądarki.    X

Granice paranoi

Jestem ogromnym antyfanem polemizowania z kimkolwiek w sposób inny, niż otwarty. Nie lubię artykułów polemicznych, nie lubię dyskutować przy użyciu form, które powinny być zamknięte. Na polemikę jest miejsce pod tekstem. Jednak nie mogę się powstrzymać i spiszę kilka myśli na temat ostatniego wpisu na blogu webnulla, który można poczytać pod tym linkiem.

Nothing is secured...

Webnull często raczył nas artykułami związanymi z ogólnie pojętym bezpieczeństwem. Część z nich była parówkami, część była nawet interesująca, część jednak była beznadziejna. Artykuł, do którego się odnoszę zdaje się sięgnął szczytu. Rozłożę go powoli na części pierwsze, niestety - wraz z komentarzami.

Cachowanie zawartości strony w kontekście bezpieczeństwa

Co za wierutna bzdura. Coś jakby "kolor pomidorów w kontekście zużycia bieżnika opon". Cachowanie służyć może zmniejszeniu loadu serwera i skróceniu czasu ładowania się strony. Nie ma żadnego realnego wpływu na bezpieczeństwo aplikacji. Bo niby jak? webnull twierdzi, że

Oczywiście, że nie. Jednak szansa jest mniejsza, ponieważ jest na to tylko chwila aby wykonać atak przy użyciu GET, POST itp.
W odpowiedzi na post Ryana

No drogi panie! Co za stek bzdur! Jeśli tylko poprawnie używamy geta i posta (ten pierwszy do ustawiania parametrów wyświetlanej strony, drugi do przesyłania danych od użytkownika) to co ja tutaj mama cachować? Użytkownik chce wyświetlić 15 wyników na stronę, to mu tego nie dasz bo nie masz w cachu? A może wygenerujesz na żądanie cache, zapiszesz sobie i będziesz liczył, że w przeciągu 10 minut (czy ile tam live time się ustawi) ktoś znów zażąda takich samych danych? A może by tak po wysłaniu komentarza poprosić usera, żeby łaskawie wstrzymał się z zapoznaniem się z tym, co spłodził, bo cache trzeba oczyścić? A może inne rozwiązanie? Kolejka! O tak! Serwujemy stale te same dane, dochodzą komentarze słane postem, a potem raz na 862 sekundy insertujesz jednym zapytaniem? Litości.

Mam jeszcze jeden pomysł! Strona będzie wyświetlała stoper, który będzie odmierzał czas do otwartego okna komentowania. I tylko przez 5 sekund będzie można kliknąć wyślij! Genialne rozwiązanie. A o ile się wydłuży czas przebywania usera na stronie!

Elastyczne interfejsy do niczego, czyli z armatą na muchy

Wyobraźmy sobie prostego bloga. Co można zrobić na takiej stronie? Dodać wpis, dodać komentarz, zalogować się... i już. Widzę więc konieczność robienia 3 insertów (dla wpisu, komentarza oraz dodawanie użytkowników), 3 selectów (wyświetlanie wpisów, wyświetlanie komentarzy, autentykacja) i 3 updatów (zmiana treści wpisu, zmiana wpisu komentarza, dezaktywacja użytkowników). I czy dla tych 9 (słownie- dziewięciu) query warto zaprzęgać do pracy rozbudowane klasy, przerzucać między nimi obiekty? Trzeba znać umiar.

...paranoia is your firend

Z drugiej strony nie da się ukryć, że niebezpieczeństwo czai się wszędzie. SQLi albo inny google include to tylko jeden z banalnych do zabezpieczenia (głównie dlatego, ze powszechnie znany) sposób na zaatakowanie serwisu. Prawdziwe zagrożenie to jednak nie wstrzyknięty gdzieś kod, a głupota i lenistwo programistów i administratorów. Za wskazywanie potencjalnych niebezpieczeństw chwała i cześć webnullowi, za proponowane rozwiązania... a tu już każdy według własnego uznania.

Postaram się napisać parę słów jeszcze o SQLi, sql file injection, JSi i co to jest ten google include hack. To będzie parówka :)  

Komentarze

0 nowych
webnull   9 #1 16.06.2011 16:31

We wpisie był błąd - został już poprawiony.

webnull   9 #2 16.06.2011 16:32

http://wklej.org/id/547528/

Lepiej być paranoikiem jak widać...

webnull   9 #3 16.06.2011 16:44

"google include" co oznacza ten termin? Nie rozumiem tego kompletnie...

tfl   8 #4 16.06.2011 17:07

A wpisz w google "warning include function.include failed opening" (bez ") i poszukaj na dalekich stronach...

webnull   9 #5 16.06.2011 17:45

Cóż, no to ciekawą nazwę nadałeś prostemu wyszukiwaniu błędów aplikacji internetowych przy pomocy Google...

tfl   8 #6 16.06.2011 18:53

to ignorancja czy niewiedza pozwala ci tak lekko podchodzic do informacji, ktore mozna wyciagnac z googla?

  #7 16.06.2011 19:48

Panowie, po co takie "wojenki"? Nie lepiej sobie na PW wytłumaczyć wątpliwości i poprawić w tekstach?

Shun   3 #8 16.06.2011 20:22

Wpis skwituję jednym słowem - genialny.

  #9 16.06.2011 20:55

a ja go oceniam jako bardzo niepoprawny,
za taki wpis w mordę można dostać, podobno wszystkie wojny rozpoczynają tak naprawdę baby, zamiast napisać rzeczowy artykuł, przedstawić pewnie i mądre fakty
lepiej jeszcze przy okazji komuś pojechać gratuluje.

Druedain   14 #10 16.06.2011 23:55

A ja skwituję kilkoma innymi – człowieku, język polski jest fajny! Na prawdę…

tfl   8 #11 17.06.2011 07:26

nie chce wyjsc na malkontenta (heheh), ale w jezyku polski naprawde pisze sie inaczej...

GL1zdA   12 #12 17.06.2011 08:10

Największym problemem pierwotnego wpisu było wymyślanie koła na nowo. Parametryzowalne zapytania, gdzie biblioteka zajmuje się escape'owanie parametrów zostało dawno napisane, trzeba tylko z nich skorzystać. Wymyślanie pokrętnego sposobu, który z założenia niewiele zmienia, jest stratą czasu.

januszek   19 #13 17.06.2011 08:58

@wozniak.daniel: Naprawdę? Jakie zastosowania "na prawdę" masz naprawdę na myśli? Może myślałeś o "tak naprawdę"? vide: http://poradnia.pwn.pl/lista.php?id=12023 ;)

@tfl: Zainspirowany tekstem webnulla chciałem popełnić wpis pt: "Totalne włamanie na stronę internetową" ale mnie wyprzedziłeś ;P

tfl   8 #14 17.06.2011 09:34

@wozniak.daniel

:) dobrze mi wyszlo, serio

januszek   19 #15 17.06.2011 09:45

@woźniak.daniel: Już kumam, że naprawdę miałeś na myśli po prostu "prawdę" ;) Z drugiej jednak strony, gdyby taką "prawdę" mocno zkeszować (zcacheować) to kto wie, kto wie... ;P

tfl   8 #16 17.06.2011 10:14

@wozniak.daniel

naprawde, to partykula potwierdzajaca slusznosc zdania. i wlasnie w tym kontekscie zostala uzyta. chyba, ze chcemy sie bawic w utarczki slowne, ze jest inaczej. :)

ja rowniez pozdrawiam

Wolfgar   7 #17 17.06.2011 11:25

@Druedain - Nie jesteś lepszy z tym swoim "fajny".

Druedain   14 #18 17.06.2011 11:48

Ani nigdzie nie piszę, że jestem lepszy, ani nigdzie nie piszę, że piszę bezbłędnie, za to opcji poprawiania swoich komentarzy tutaj nie mam, a też jestem człowiekiem i też czasem błędy mi się wkradają. Zaś słowo „fajny” zostało użyte celowo.

Oczywiście powinno być przedtem „naprawdę”. Skoro sprawa się już wyjaśniła…

Ryan   15 #19 17.06.2011 14:07

@GL1zdA To nie wynajdowanie koła na nowo, a antypattern, który nie jest w stanie przetrwać godziny. Mnie najbardziej w tym wszystkim zniesmacza to, że webnull napisał kompletną, patentowaną bzdurę, a teraz nazywa ją "błędem", który został poprawiony. Nic nie zostało poprawione, usunięta została bzdura.