[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