Jump to content
php.lv forumi

Kaa izgriezt sliktos simbolus?


Recommended Posts

Posted

Man ir uztaisits memberships, es gribu uzlikt kaut kaadu nebuut droshiibu, lai ievadot parolu un/vai username nebuutu iespeejas palaist kaadu evil scriptu. userneimi un paroles glabaajas uz SQL.

 

Zinu, ka tas jaadara ar preg_replace() vai liidziigu f-ciju, bet iesakiet kaadus simbolus vajadzeetu izgriezt!

Posted
Man ir uztaisits memberships, es gribu uzlikt kaut kaadu nebuut droshiibu, lai ievadot parolu un/vai username nebuutu iespeejas palaist kaadu evil scriptu. userneimi un paroles glabaajas uz SQL.

 

Zinu, ka tas jaadara ar preg_replace() vai liidziigu f-ciju, bet iesakiet kaadus simbolus vajadzeetu izgriezt!

16747[/snapback]

 

 

nevis izgriezt sliktos, bet aizliedz visus simbolus izņemot labos, tā būs garantija ka neesi aizmirsis kādu slikto noķert.

Posted

daudz un dažādi veidi. skaties par regulārajam izteiksmēm un experimentējies.

te iesākumam viens piemērs kā no stringa izgriezt ārā tikai lielos un mazos burtus

preg_match_all(
'/[a-z]/i',
'\'"A!br*()&a ka!!!2 3 _° Dabra-.ka',
$m);
echo implode('',$m[0]);

Posted

Nu jaa OK! Tik taalu es saprotu, bet kaa var tiem paterniem pievienot veel kaadu? Tevis dotajaa piemeeraa ir atljauts lietot tikai burtus, bet ja piemeeram man vajag burtus, ciparus un veel piem. "_". Kaa tad? Kaadaa taa patterna sintaxe ir?

Posted

Labi! Iebraucu visaa tajaa lietaa, tagad shancee! Tikai es gribeetu uzzinaat vai stringaa ir bijis kaads aizliegtais simbols vai nee. Kaa lai to dabon???

Posted
if (preg_match('@[a-z0-9_\.]@',$string))

echo 'strings satur ne tikai latīņu burtus, ciparus un punktu vai apakšstrīpu!';

Droši vien biji domājis: if (preg_match('@[^a-z0-9_\.]@',$string)) ne?

Posted

Vai kādam ir koda piemērs, kuru var palaist caur login/parole formu un uztaisīt blēņas? Gribētos izpētīt no kā jabaidās. Vai tie ir tikai mēli?

Posted

Ja tev ir formā:

<input name="username"><input name="password">

un tu nosūtītos datus pārbaudi šādu sql kverijā vai ir tāds lietotājs:

$q = mysql_query("SELECT COUNT(*) FROM users WHERE name='".$_POST['username']."' AND password='".$_POST['password']."'");
list($cnt) = mysql_fetch_row($q);
if ($cnt==0) {
  // nav tāda usera
} else {
  // ir tāds useris
}

Tad vienkārši ievadot password lauciņā tekstu "blabla' OR 1" (bez " pēdiņām apkārt)kverijs vienmēr atgriezīs visu useru skaitu, tb lielāku par 0 vērtību un notiks veiksmīga ielogošanās.

Posted

Bubu, tava koda: list($cnt) = mysql_fetch_rows($result) vietaa

eertaak nav rakstiit: $count = mysql_num_rows($result).

 

Tipa vajadzeetu buut aatraak! :)

Posted

Tā kā kveriji veidā "SELECT COUNT(*) FROM ..." atgriež vienmēr 1 rindu, tad mysql_num_rows(..) atgriezīs vienmēr skaitli 1 un nav nekādas jēgas to izsaukt.

×
×
  • Create New...