Cytat(lukaskolista @ 5.11.2011, 09:35:30 )

Cudny, jestes hardcorem! Zapytan do bazy sie tak nie zabezpiecza (w przypadku MySQL jest to funkcja
mysql_real_escape_string). Co do tekstu wyswietlanego na stronie - stary ale jary BBCode, wedlug mnie trzeba odroznic "HTML" wstawiany przez uzytkownikow od tego natywnego z aplikacji.
Zatem jestem harcorem

Czy kolega przeczytał najpierw jak działa funkcja addslashes();

?
W przypadku kodowania utf8 jest ona bezpieczna dla sql injection bo nie jesteś w stanie dodać w żadnym wypadku pojedynczego znaku ' bądź "
Poniżej artykuł opisujący atak sql injection pomimo użycia addslashes:
http://shiflett.org/blog/2006/jan/addslash...l-escape-stringProszę jednak zapoznać się z dopiskiem na końcu strony:
Cytat
This type of attack is possible with any character encoding where there is a valid multi-byte character that ends in 0x5c, because addslashes() can be tricked into creating a valid multi-byte character instead of escaping the single quote that follows. UTF-8 does not fit this description.
Wnioski:
Jak mądrze rozwiążesz aplikację to i validacja będzie łatwiejsza.
Oczywiście sam używam mysql_real_escape_string(); ale powyższy przykład udowadnia, że piszesz o czymś o czym nigdy nie czytałeś.
Warto zapoznać się z funkcjami predefiniowanymi w php
A tu ciekawostka dotycząca bezpieczeństwa mysql_real_escape_string(); przy użyciu kodowania ISO-8859-1
http://ilia.ws/archives/103-mysql_r...Statements.htmlNie ma super bezpiecznej validacji danych. Można jedynie zabezpieczyć dane bardzo dobrze, ale i tak znajdzie się na to sposób. SHA1 też zostało złamane i szybki komputer jest w stanie w (tu nie pamiętam dokładnego czasu, nie chce mi się szukać) tydzień czy dwa odczytać hasło wykradzione z bazy danych.
Niestety często się to zdarza przy backupach, wiec... jak piszą, "było włamanie do servisu, wykradziono hasła, ale nie martwcie się, były hashowane", to i tak zmień sobie to hasło. To taka ciekawostka sytuacyjna

Co do BBCode, nie widzę najmniejszego sensu używania go w aplikacjach, chyba że jest to forum.
Czemu ? A z racji wydajności.
Lepiej zapisać pełny html do pliku i potem require_once($file); niż przy użyciu wyrażeń regularnych parsować cały kod i zamieniać znaczniki.
Moim zdaniem lepiej mądrze rozwiązać widoki aplikacji niż używać BBCode.
Oczywiście możliwość tworzenia HTML w tym wypadku może mieć tylko i wyłącznie admin, czyli osoba odpowiedzialna za poprawne działanie całej aplikacji.
Możliwość tylko i wyłącznie po autoryzacji.
Jak zwalisz validacje logowania to i tak aplikacja nadaje się do kosza