sql >> Database teknologi >  >> RDS >> Mysql

Beskytter mysql_real_escape_string() FULDSTÆNDIG mod SQL-injektion?

Ifølge Stefan Esser, "mysql_real_escape_string() [er] ikke sikker, når SET NAMES bruges."

Hans forklaring, fra hans blog :

SET NAMES bruges normalt til at skifte kodningen fra det, der er standard til det, applikationen har brug for. Dette gøres på en måde, som mysql_real_escape_string kender ikke til dette. Det betyder, at hvis du skifter til en multibyte-kodning, der tillader omvendt skråstreg som 2. 3. 4.... byte, løber du ind i problemer, fordi mysql_real_escape_string undslipper ikke korrekt. UTF-8 er sikker...

Sikker måde at ændre kodning på er mysql_set_charset , men det er kun tilgængeligt i nye PHP-versioner

Han nævner dog, at UTF-8 er sikkert.



  1. Kan PostgreSQL udføre en joinforbindelse mellem to SQL Server-lagrede procedurer?

  2. Multi-Cloud-implementering til MySQL-replikering

  3. Sådan implementeres et meget tilgængeligt Canvas LMS med en PostgreSQL-databaseklynge

  4. Sådan opretter og sletter du databaser og tabeller i PostgreSQL