Zabezpieczenie dodawania treści

0

Cześć. W jaki sposób zabezpieczyć tekst pobierany z <textarea> przed atakami SQL Injection. Dodam, że w tym polu są tagi HTML więc np. kiedy zastosuje addshlashed to rozwali mi cały kod. Do podstawowych pól mogę używać ale co w tym przypadku?

0

ja na necie znalazłem taki kod:

#-#############################################
# Desc: escapes characters to be mysql ready
# Param: string
# returns: string
function escape($string) {
	if(get_magic_quotes_runtime()) $string = stripslashes($string);
	return @mysql_real_escape_string($string,$this->link_id);
}#-#escape()

wydaje mi się, że działa poprawnie. kod pochodzi stąd
http://www.ricocheting.com/code/php/mysql-database-class-wrapper
jest tu również cały wrapper do mysqla. trochę mało rozbudowany jest, ale już mu dorobiłem kilka funkcjonalności których mu brakowało

kod napisany bardzo przejrzyście także przyjemnie się go zmienia :)

0

Szczególnie opnięty mysql_real_escape_string, który w przypadku problemów z połączeniem do bazy danych zwróci FALSE (i w efekcie doda się pusty rekord) albo wykrzaczy skrypt.

0

to napisz jak to się powinno robić :P

0

Powinno się używać PDO lub własnej biblioteki do tego przeznaczonej. W ostateczności po prostu sprawdzić ifem, czy mysql_real_escape_string nie zwrócił FALSE i obsłużyć jakoś ten błąd (np. rzucić wyjątek, co by się pusty rekord do bazy nie dodał).

0

a tak z ciekawości: z jakiej paki to niby miałoby zwrócić false? czemu nie mogę założyć że ta funkcja będzie po prostu działać?

0

Bo połączenie z serwerem MySQL się nie udało...

0

To ponoć skrajności, ale oprócz wymienionego w poście wyżej powodu, MySQL może po prostu wykitować w czasie wykonywania skryptu. I o ile to mało prawdopodobne przy 1 użytkowniku, to przy paru tysiącach już tak...

0

ale jak mysql wykituje to nie wykona się ani mysql_real_escape_string ani samo zapytanie, więc nie doda się pusty rekord do bazy i tak o to mało prawdopodobny problem nie istnieje. chyba że coś źle rozumiem

1 użytkowników online, w tym zalogowanych: 0, gości: 1