[TYPO3-german] Crossite Scripting t3lib_div::_POST('variable')
Christian Wolff
chris at connye.com
Thu Jul 1 16:11:16 CEST 2010
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Am 01.07.2010 12:11, schrieb Chris Bernhard:
> Hi zusammen,
> vielen Dank für Eure ausführlichen Antworten, jetzt bin ich wieder in
> Stück weiter, sprich, folgendes teste ich jetzt und hier nochmal die
> Frage, ist das nun sicher?
> $clause = "p.plz LIKE '$plz' LIMIT 1 ";
> $clause = $GLOBALS['TYPO3_DB']->escapeStrForLike($clause,'tableb');
> $res = $GLOBALS['TYPO3_DB']->exec_SELECTquery('*','tablea p LEFT JOIN
> tableb a ON p.bd = a.bd', $clause);
> Allerbeste Grüße vom Chris
Hi Chris,
das die function eescapeStrForLike
escaped lediglich die speziellen zeicen des like ausdrucks.
hier die funktions definition:
function escapeStrForLike($str, $table) {
return preg_replace('/[_%]/','\\\$0',$str);
}
dies gibt keinen Schutz irgend einer art!!!!!!
deswegen sollst du deine paramter mit fullQuoteStr() escapen.
dein beispel code sollte dann ungefär so aussehen:
<?php
// Eingabe aus % (prozent) \% (backslash Prozent) machen.
$plz = $GLOBALS['TYPO3_DB']->escapeStrForLike($plz,'tableb');
// prozent zeichen anhängen um teil suche der plz zu ermöglichen.
$plz .= '%';
// PLZ string escapen um sich vor SQL injections zu schützen.
$plz = $GLOBALS['TYPO3_DB']->fullQuoteStr($plz,'tableb');
// query zusammen bauen und datenbank abfragen.
$clause = 'p.plz LIKE '. $plz .' LIMIT 1 ';
$res = $GLOBALS['TYPO3_DB']->exec_SELECTquery('*',
'tablea p LEFT JOIN tableb a ON p.bd = a.bd',
$clause);
?>
gruss chris
- --
Christian Wolff // Berlin
http://www.connye.com
some projects:
http://richtermediagroup.com | http://titanic.de |
http://fairplay-homepage.de
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (MingW32)
iEYEARECAAYFAkwsogMACgkQIcCaXPh/JHGZwQCeJTNYX+Pr1c+Cpz6WlHisJMWK
R20AnjRiGCSazpr3b0v1QqQzo41P/i8F
=DMat
-----END PGP SIGNATURE-----
More information about the TYPO3-german
mailing list