Wuu Posted February 22, 2008 Report Posted February 22, 2008 Vai pietiek ar htmlspecialchars(); lai saglabātu postu mysql datubāze 100% zinot ka neko ļaunu nevar nodarīt?
PheliX Posted February 22, 2008 Report Posted February 22, 2008 htmlspecialchars jālieto lai tekstu izvadītu htmlā. Lai liktu datubāzē jālieto attiecīgās datubāzes eskeipošana ( http://au2.php.net/manual/en/function.mysq...cape-string.php vai http://au2.php.net/manual/en/function.mysq...cape-string.php atkarībā kādu extension lieto )
Wuu Posted February 23, 2008 Author Report Posted February 23, 2008 Bet vai tad htmlspecialchars(); nenoņem visas pēdiņas un vissus citus simbolus ? Un abos tavos piemēros funkcijas tiek iedarbinātas pēc query tādējādi padarot viņas bezjēdzīgas ievadot datus :/
andrisp Posted February 23, 2008 Report Posted February 23, 2008 Wuu, jaa, htmlspecialchars aizvieto peeedinjas, bet vinja nav paredzeeta tam, ko gribi dariit. mysql_real_escape_string tam ir paredzeets. taa arii aizvietos visaadas citaadas lietas, kas vareetu buut biistamas. un nezinu, kur tu izraavi, ka vinjas tiek iedarbinaatas peec kverija izpildes.
Wuu Posted February 23, 2008 Author Report Posted February 23, 2008 Wuu, jaa, htmlspecialchars aizvieto peeedinjas, bet vinja nav paredzeeta tam, ko gribi dariit. mysql_real_escape_string tam ir paredzeets. taa arii aizvietos visaadas citaadas lietas, kas vareetu buut biistamas. un nezinu, kur tu izraavi, ka vinjas tiek iedarbinaatas peec kverija izpildes. Kā tur piemēri linkos bija visur zem qwery ,kā tad man mysql_real_escape_string lietot?
andrisp Posted February 23, 2008 Report Posted February 23, 2008 Paraadi tieshi, kur tiek izpildiits peec. Es cik skatos, tad visur ir pirms. Varbuut tu jaucies, jo tajos piemeeros vispirms tiek paraadiits, kaa nedriikst un peec tam kaa driikst ?
Wuu Posted February 23, 2008 Author Report Posted February 23, 2008 Nu labi lai būtu pilnīgi drošs man jāraksta šādi? $post = htmlspecialchars($_POST['textbox']); $post = real_escape_string($post); $mysql_query ...
Grey_Wolf Posted February 23, 2008 Report Posted February 23, 2008 nevajag aizmirst par tadu labu lietu kaa trim()....
andrisp Posted February 23, 2008 Report Posted February 23, 2008 Nu parasti gan htmlspecialchars izsauc kad izvada datus (nosuuta klientam) nevis pirms ierakstiishanas db, bet nu taa arii var dariit.
Wuu Posted February 23, 2008 Author Report Posted February 23, 2008 (edited) Nu parasti gan htmlspecialchars izsauc kad izvada datus (nosuuta klientam) nevis pirms ierakstiishanas db, bet nu taa arii var dariit. Nu es to lietoju lai nevar html kodu iepostot piem. <img src='kaut kāda bilde'> :) Tad jau varbūt piemēram pirms visa php koda ielikt lopu kura iziet cauri $_GET $_POST trim(); htmlspecialchars(); real_escape_string(); izdara šis funkcija un miers? Edited February 23, 2008 by Wuu
andrisp Posted February 23, 2008 Report Posted February 23, 2008 Teoreetiski jaa. ;) Nu es to lietoju lai nevar html kodu iepostot piem. <img src='kaut kāda bilde'> :) To es ljoti labi saprotu, bet ko es saku ir tas, ka parasti to izsauc pie datu izvades nevis pie datu saglabaashanas.
Wuu Posted February 23, 2008 Author Report Posted February 23, 2008 (edited) To es ljoti labi saprotu, bet ko es saku ir tas, ka parasti to izsauc pie datu izvades nevis pie datu saglabaashanas. Kāda atšķirība pie ievades vai pēc ievades? Man liekas labāk uzreiz pie ievades un miers :) Edited February 23, 2008 by Wuu
bubu Posted February 23, 2008 Report Posted February 23, 2008 Iedomājies, ka tev būs rediģēšanas forma, kurā varēsi pamainīt tekstu, kas jau ir ievadīts datubāzē. Tavā gadījumā, ja gribēsi likt iekš db tekstu: asdf<zzz>, tad tas tiks ielikts kā asdf<zzz> un tev būs jārediģē šāds teksts. Tev nāksies mainīt < un > un citas entītes atpakaļ uz < un >. Tas ir ērti? Ja htmlspecialchars izsauksi pie teksta IZVADES, tad db glabāsies tieši tāds teksts, kādu tu ierakstīji asdf<zzz> un rediģējot nebūs jāmaina visi <, > atpakaļ uz < un >.
Wuu Posted February 23, 2008 Author Report Posted February 23, 2008 Iedomājies, ka tev būs rediģēšanas forma, kurā varēsi pamainīt tekstu, kas jau ir ievadīts datubāzē.Tavā gadījumā, ja gribēsi likt iekš db tekstu: asdf<zzz>, tad tas tiks ielikts kā asdf<zzz> un tev būs jārediģē šāds teksts. Tev nāksies mainīt < un > un citas entītes atpakaļ uz < un >. Tas ir ērti? Ja htmlspecialchars izsauksi pie teksta IZVADES, tad db glabāsies tieši tāds teksts, kādu tu ierakstīji asdf<zzz> un rediģējot nebūs jāmaina visi <, > atpakaļ uz < un >. Nu ja tu vēlies lai kāds varētu lietot šādus pastulbus loginus tad jā ,bet man jau sen stāv if ((ereg("^[A-Za-z0-9_]*$",$login)) && (ereg("^[A-Za-z0-9_]*$",$pass)) && (ereg("^[A-Za-z0-9_]*$",$pass2)) && (ereg("^[A-Za-z0-9_]*$",$pin))) { } else { $error .='Neatļauti simboli ievades datos.<br>'; }
bubu Posted February 23, 2008 Report Posted February 23, 2008 Tad kāda jēga vēl htmlspecialchars un real_escape_string laist virsū, ja jau atļauj tikai burtus, ciparus un _?
Recommended Posts