Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Lista specijalnih karaktera u MySQL

[es] :: MySQL :: Lista specijalnih karaktera u MySQL

[ Pregleda: 1401 | Odgovora: 4 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

cesare
Misko Petrovic

Član broj: 55805
Poruke: 196
*.dynamic.isp.telekom.rs.



+1 Profil

icon Lista specijalnih karaktera u MySQL25.11.2011. u 11:29 - pre 91 meseci
Pozdrav svima !!!!

Pisem program u C# koji koristi MySQL bazu. Gde mogu pronaci listu karaktera koje MySQL koristi u svom radu, npr. karakter ' sluzi za razdvajanje vrednosti polja kada se bazi prosledjuje upit iz programa. Zeleo bih da korisnike u svom programu onemogucim da unose ove karaktere, kako bi se izbegle greske u radu programa ili da ih nekako "konvertujem" (dupliram npr.) prilikom unosa, a kasnije "vratim" u prvobitno stanje kod citanja iz baze.

Unapred hvala ...
 
Odgovor na temu

bogdan.kecman
Bogdan Kecman
"specialist"
Oracle
srbistan

Član broj: 201406
Poruke: 15052
95.180.61.*

Sajt: mysql.rs


+2289 Profil

icon Re: Lista specijalnih karaktera u MySQL25.11.2011. u 11:44 - pre 91 meseci
nemoj to da radis!!!

sta ako korisnik ima u imenu apostrof (npr O'Reilly ) ...

Koristi PREPARED STATEMENTS, tako ces biti siguran da ce sadrzaj koji hoces da upises u bazu biti sigurno upisan u istu, ne moras da brines o apostrofima, zarezima, --ima i slicno

Citat:
mysql documentation:
C# example:
Code:

  private void PrepareExample()
  {
    MySqlCommand cmd = new MySqlCommand("INSERT INTO mytable VALUES (?val)", myConnection);
    cmd.Parameters.Add( "?val", 10 );
    cmd.Prepare();
    cmd.ExecuteNonQuery();
    
    cmd.Parameters[0].Value = 20;
    cmd.ExecuteNonQuery();
  }



 
Odgovor na temu

vbbojan
Atanasijevic Bojan
Digit Consulting d.o.o.
Beograd

Član broj: 31580
Poruke: 221
92.244.132.*

Sajt: www.digitconsulting.rs


+8 Profil

icon Re: Lista specijalnih karaktera u MySQL25.11.2011. u 11:49 - pre 91 meseci
Progooglaj:

1. Čišćenje user inputa za SQL zove - Sanitizing
2. A "konvertovanje / dupliranje " karaktera tako da mogu bezbedno da se prolsede se zove - Escaping,
Baci pogled ovde na primer: http://dev.mysql.com/doc/refman/5.0/en/string-syntax.html

Ako se malo potrudiš, sigurno ćeš naći već gotova rešenja i za C#.

Pozdrav.


 
Odgovor na temu

vbbojan
Atanasijevic Bojan
Digit Consulting d.o.o.
Beograd

Član broj: 31580
Poruke: 221
92.244.132.*

Sajt: www.digitconsulting.rs


+8 Profil

icon Re: Lista specijalnih karaktera u MySQL25.11.2011. u 11:58 - pre 91 meseci
Bogdan me preteče.

Dao ti je konkretno rešenje za tvoj problem.
Ovde se upravo ispod haube radi "escaping" specijalnih karaktera.
Nije loše da znaš šta se dešava ispod haube.

Edit: Lupih i ostadoh živ. Prepared Statement kod .NET konektora ne radi escaping, ovde je protokol je binaran.

@Bogdan
Vidi ti čoveka, nisam očekivao da ćeš da prljaš ruke sa .nemoj kodom :-)
 
Odgovor na temu

bogdan.kecman
Bogdan Kecman
"specialist"
Oracle
srbistan

Član broj: 201406
Poruke: 15052
95.180.61.*

Sajt: mysql.rs


+2289 Profil

icon Re: Lista specijalnih karaktera u MySQL25.11.2011. u 12:07 - pre 91 meseci
Citat:
vbbojan
Vidi ti čoveka, nisam očekivao da ćeš da prljaš ruke sa .nemoj kodom :-)


nisam ja pisao :D .. copy & paste sa stranice sa nase stranice sa dokumentacijom :D ima u vrhu i link na doticnu stranu ako hoce da procita malo vise o tome ...

Sto se tice sanatizacije input-a, treba odraditi uvek semanticku sanatizaciju, dakle ako negde ocekujes broj a dobijes slova razmislis sta je korisnik hteo, dal je debil ili je haker, i u jednom i u drugom slucaju ne treba mu pristup ... dako ocekujes ime i prezime a dobijes 2k teksta ... i slicno .. semanticku sanatizaciju obicno vezes sa nekim server side security pa recimo taj sto je poslao 2k za ime i prezime dobije 24h ip ban za tvoj server .. pa neka smara nekog drugog .. i slicno ..

Sintaksnu sanatizaciju treba da radi konektor - da li ce da radi server side preparaciju ili client side nije preterano bitno, svi mysql konektori (i .not i java i c i c++ i php i ..) rade to vrlo brzo i vrlo dobro .. razni mysql_safe() i slicni sanatizatori su bili potrebni za 3.xx i 4.xx za 5.x to vec jako dugo nije potrebno... naravno potrebno je odraditi upgrade na nove konektore etc etc .. (na primer ovi php skripteri i danas koriste mysql_*() funkcije koje su i za 4.1 zastarele a ne za 5.5 ... ali ..)
 
Odgovor na temu

[es] :: MySQL :: Lista specijalnih karaktera u MySQL

[ Pregleda: 1401 | Odgovora: 4 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.