Re: [TYPO3-german] Crossite Scripting t3lib_div::_POST('variable')

2010-07-02 Diskussionsfäden Chris Bernhard

Am 01.07.2010 16:11, schrieb Christian Wolff:

-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-


Hi Chris,

besten Dank mal wieder für Deine Antwort! Hat mir sehr geholfen, hatte
das auch schon genauso integriert, allerdings lieferte mir der Query 
kein Ergebnis zurück, was wohl an dem doppelten Quote innerhalb von


.plz LIKE '$plz' LIMIT 1

Entferne ich die '' funktionert das Ganze wunderbar und ist hoffentlich 
jetzt wirklich save. Na, sicher ist sicher ;-)


Viele Grüße vom Chris

___
TYPO3-german mailing list
TYPO3-german@lists.typo3.org
http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german

Re: [TYPO3-german] Crossite Scripting t3lib_div::_POST('variable')

2010-07-02 Diskussionsfäden Christian Wolff
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

Am 02.07.2010 11:53, schrieb Chris Bernhard:


 Hi Chris,

 besten Dank mal wieder für Deine Antwort! Hat mir sehr geholfen, hatte
 das auch schon genauso integriert, allerdings lieferte mir der Query
 kein Ergebnis zurück, was wohl an dem doppelten Quote innerhalb von

 .plz LIKE '$plz' LIMIT 1

 Entferne ich die '' funktionert das Ganze wunderbar und ist hoffentlich
 jetzt wirklich save. Na, sicher ist sicher ;-)

 Viele Grüße vom Chris

Hallo Chris,
ich finde es gut das du die extra Mühen auf dich nimmst um zu versuchen
einen möglichst sicheren quellcode abzuliefern. da helfe ich auch gerne
weiter wo ich kann. am ende kommt es ja der ganzen typo3 community zu
gute wenn der code sicher ist.

das die funktion fullQuoteStr() den string escaped und dann auch noch
mit anführungen versieht hat mich auch erstmal stolpern lassen. aber
wenn man es weiss kann man ja damit umgehen.

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)

iEYEARECAAYFAkwtu+gACgkQIcCaXPh/JHF/UwCgoKpGA0D8cKVhQJO9Pg24I4cy
DlUAoIvnLfozi6RZUErRHUzt9YtL9vKq
=XYsZ
-END PGP SIGNATURE-
___
TYPO3-german mailing list
TYPO3-german@lists.typo3.org
http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german

Re: [TYPO3-german] Crossite Scripting t3lib_div::_POST('variable')

2010-07-01 Diskussionsfäden Chris Bernhard

Am 30.06.2010 23:31, schrieb Christian Wolff:

-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

Am 30.06.2010 22:29, schrieb Chris Bernhard:

Hi zusammen,

wenn ich eine Variable über t3lib_div::_POST('variable') verarbeite
und damit meinetwegen eine MySQL Abfrage starte, bin ich dann
schon vor XSS Scripting sicher oder muss ich hier noch irgendwas beachten?

Viele Grüße und Dankeschön,

Chris


Hallo Chris,
die functionen:
t3lib_div::_POST(), t3lib_div::_GET() ,t3lib_div::_GP()

kümmern sich lediglich darum das die variablen unabhängig von der server
konfiguration ohne escaping bei dir ankommen.

wenn du sie in datenbank abfragen verwenden willst solltest du sie escapen.

dafür gibts in der classe t3lib_DB die function fullQuoteStr($str,$table)

also folgende verwendung:
$myPostVar = t3lib_div::_POST();
$myPostVar = $GLOBALS['TYPO3_DB']-fullQuoteStr($myPostVar,'pages');

die funktion setzt den string direkt in anführungzeihen. da rüber bin
das erst mal gestolpert.

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)

iEYEARECAAYFAkwrt6gACgkQIcCaXPh/JHH3SwCgz6HDxLKRDCt9FIFK7JYhMKWI
SqYAoLd1PB/2ZtOdzLUptSUfuGc86pQC
=dw2M
-END PGP SIGNATURE-


Hi Chris auch :-)

Okay, dankeschön für den Hinweis, aber reicht dann nicht schon sowas wie

$this-myfunction(htmlspecialchars(t3lib_div::_POST('mypostvar')));

So sieht dann die Funktion aus:

function myfunction($test)
{

$clause = p.plz LIKE '$test' LIMIT 1 ;

$res = $GLOBALS['TYPO3_DB']-exec_SELECTquery('*','tx_blablabla_huhu p 
LEFT JOIN tx_blablabla_huhuhu a ON p.id= a.pid', $clause);


um eine Attacke komplett auszuschließen? Möchte ja nur sichergehen, dass 
meine Extensions auch wirklich sicher sind :-)


Vielen Dank und beste Grüße,

Chris
___
TYPO3-german mailing list
TYPO3-german@lists.typo3.org
http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german

Re: [TYPO3-german] Crossite Scripting t3lib_div::_POST('variable')

2010-07-01 Diskussionsfäden Georg Ringer
Am 01.07.2010 08:46, schrieb Chris Bernhard:
 Okay, dankeschön für den Hinweis, aber reicht dann nicht schon sowas wie

 $this-myfunction(htmlspecialchars(t3lib_div::_POST('mypostvar')));

nein ein htmlspecialchars reicht *nicht* aus

Georg
___
TYPO3-german mailing list
TYPO3-german@lists.typo3.org
http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german

Re: [TYPO3-german] Crossite Scripting t3lib_div::_POST('variable')

2010-07-01 Diskussionsfäden Chris Bernhard

Am 01.07.2010 09:30, schrieb Georg Ringer:

Am 01.07.2010 08:46, schrieb Chris Bernhard:

Okay, dankeschön für den Hinweis, aber reicht dann nicht schon sowas wie



$this-myfunction(htmlspecialchars(t3lib_div::_POST('mypostvar')));


nein ein htmlspecialchars reicht *nicht* aus

Georg


Okay, danke erstmal zusammen, habs nun mit ner kleinen Helper
Funktion gebastelt, also dann so:

function escapeString($value)
{
return mysql_real_escape_string($value);
}   

Viele Grüße vom Chris
___
TYPO3-german mailing list
TYPO3-german@lists.typo3.org
http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german

Re: [TYPO3-german] Crossite Scripting t3lib_div::_POST('variable')

2010-07-01 Diskussionsfäden Georg Ringer
Am 01.07.2010 10:28, schrieb Chris Bernhard:
 return mysql_real_escape_string($value);

resistent gegen beratung? ;)

nimm doch bitte $GLOBALS['TYPO3_DB']-fullQuoteStr($myPostVar, $tablename);

georg
___
TYPO3-german mailing list
TYPO3-german@lists.typo3.org
http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german


Re: [TYPO3-german] Crossite Scripting t3lib_div::_POST('variable')

2010-07-01 Diskussionsfäden Patric Pesch
schrieb Georg Ringer:
 Am 01.07.2010 08:46, schrieb Chris Bernhard:
 Okay, dankeschön für den Hinweis, aber reicht dann nicht schon sowas wie
 
 $this-myfunction(htmlspecialchars(t3lib_div::_POST('mypostvar')));
 
 nein ein htmlspecialchars reicht *nicht* aus
 
 Georg

IMHO ist es gerade bei so einer Frage immer nett auch kurz zu erklären,
warum das so ist.

1. htmlspecialchars() ist eben nur für eine halbwegs sichere Ausgabe per
html gedacht. Für die die DB bringt das nichts!

2. Vorausgesetzt du nutzt mysql hätte dir mysql_real_escape_string das
gleiche Ergebnis geliefert wie fullQuoteStr.

3. Wenn man ein Framework einsetzt, dann sollte man sich auch die
Methoden des Frameworks halten. Gerade bei Erweiterungen, die ggf. nicht
nur von dir genutzt werden, ist das wichtig. Z.B. bringt dir ein
mysql_real_escape_string nichts, wenn du eine andere DB einsetzt (per
DBAL). Und da greift dann die fullQuoteStr Methode von DBAL, die die
Standard Methode überschreibt und sich um das richtige escapen kümmert.
So wird die Erweiterung stabiler und sicherer.

Grüße
Patric
___
TYPO3-german mailing list
TYPO3-german@lists.typo3.org
http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german

Re: [TYPO3-german] Crossite Scripting t3lib_div::_POST('variable')

2010-07-01 Diskussionsfäden Christian Wolff
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

Am 01.07.2010 08:46, schrieb Chris Bernhard:
 Am 30.06.2010 23:31, schrieb Christian Wolff:
 Am 30.06.2010 22:29, schrieb Chris Bernhard:
 Hi zusammen,

 wenn ich eine Variable über t3lib_div::_POST('variable') verarbeite
 und damit meinetwegen eine MySQL Abfrage starte, bin ich dann
 schon vor XSS Scripting sicher oder muss ich hier noch irgendwas
 beachten?

 Viele Grüße und Dankeschön,

 Chris
 
 Hallo Chris,
 die functionen:
 t3lib_div::_POST(), t3lib_div::_GET() ,t3lib_div::_GP()
 
 kümmern sich lediglich darum das die variablen unabhängig von der server
 konfiguration ohne escaping bei dir ankommen.
 
 wenn du sie in datenbank abfragen verwenden willst solltest du sie
 escapen.
 
 dafür gibts in der classe t3lib_DB die function fullQuoteStr($str,$table)
 
 also folgende verwendung:
 $myPostVar = t3lib_div::_POST();
 $myPostVar = $GLOBALS['TYPO3_DB']-fullQuoteStr($myPostVar,'pages');
 
 die funktion setzt den string direkt in anführungzeihen. da rüber bin
 das erst mal gestolpert.
 
 gruss chris
 
 
 
 

 Hi Chris auch :-)

 Okay, dankeschön für den Hinweis, aber reicht dann nicht schon sowas wie

 $this-myfunction(htmlspecialchars(t3lib_div::_POST('mypostvar')));

 So sieht dann die Funktion aus:

 function myfunction($test)
 {

 $clause = p.plz LIKE '$test' LIMIT 1 ;

 $res = $GLOBALS['TYPO3_DB']-exec_SELECTquery('*','tx_blablabla_huhu p
 LEFT JOIN tx_blablabla_huhuhu a ON p.id= a.pid', $clause);

 um eine Attacke komplett auszuschließen? Möchte ja nur sichergehen, dass
 meine Extensions auch wirklich sicher sind :-)

 Vielen Dank und beste Grüße,

 Chris


Hi Bernhard wie Georg Ja ja auch schon gesagt hat ein htmlspecialchars
reicht nicht aus.

htmlspecialchars konvertier html eigene zeichen in die entinites also
,, ,' werden in ihre entsprechenden entinies umgewandelt.

htmlspecialchars schützt dich nicht vor SQL injections. und das sind die
dinge um die dur dir sorgen machst wenn du sachen mit der datenbank machst.

also dein oben genanntes beisiel baut ungefähr folgendes SQL zusammen

SELECT *
FROM tx_blablabla_huhu p
LEFT JOIN tx_blablabla_huhuhu a ON p.id= a.pid
WHERE * p.plz LIKE '$test' LIMIT 1


wenn ich jetz als angreifer angreifer folgendes in $test übergebe.

%' LIMIT 1; INSERT INTO be_users SET
username=`eviladmin`,
 'password'=`4faa70cd67f1101dc39ae6629def1aef`,
admin=1

könnte ich eventuell einen admin user anlegen der. und das will man ja
nicht. deswegen gilt es alle werte die du der datenbank übergibst durch:
$GLOBALS['TYPO3_DB']-fullQuoteStr() zu schicken. so kannst du dir
sicher sein das keiner ausbüchst.

falls du nutezerdaten (kommentare oder ähnliches) in deiner datenbank
speicherst und später wieder ausgibst solltest du dann bei der ausgabe
darauf achten das kein böser html/javascript erlaubt ist.

das kann im einfachsten falle über htmlentities() geschehen in dem du
einfach alles in für den menschen lesbaren text konvertierst.

wenn du den leuten aber etwas html erlauben willst. und nur bei der
ausgabe sicherstellen willst das nix böse drin ist stellt typo3 dafür
eine funktion bereit:

tslib_cObj.removeBadHTML($text,$conf)

in normalen plugins hast du eine instanz von tslib_cObj schon geerbt.
und solltest sie über
$this-cObj-removeBadHTML($text,$conf) erreichen können.

damit kannst du dann für die FE ausgabe alle schön filtern.

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)

iEYEARECAAYFAkwsVuIACgkQIcCaXPh/JHEUGQCeONGghuBt53BicSgaPA6IC8ga
xt8AoK4G6ZohpiaYJ+gQ+BqbtNScTSiW
=cZtR
-END PGP SIGNATURE-
___
TYPO3-german mailing list
TYPO3-german@lists.typo3.org
http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german

Re: [TYPO3-german] Crossite Scripting t3lib_div::_POST('variable')

2010-07-01 Diskussionsfäden Chris Bernhard

Am 01.07.2010 10:50, schrieb Christian Wolff:

-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

Am 01.07.2010 08:46, schrieb Chris Bernhard:

Am 30.06.2010 23:31, schrieb Christian Wolff:
Am 30.06.2010 22:29, schrieb Chris Bernhard:

Hi zusammen,

wenn ich eine Variable über t3lib_div::_POST('variable') verarbeite
und damit meinetwegen eine MySQL Abfrage starte, bin ich dann
schon vor XSS Scripting sicher oder muss ich hier noch irgendwas
beachten?

Viele Grüße und Dankeschön,

Chris


Hallo Chris,
die functionen:
t3lib_div::_POST(), t3lib_div::_GET() ,t3lib_div::_GP()

kümmern sich lediglich darum das die variablen unabhängig von der server
konfiguration ohne escaping bei dir ankommen.

wenn du sie in datenbank abfragen verwenden willst solltest du sie
escapen.

dafür gibts in der classe t3lib_DB die function fullQuoteStr($str,$table)

also folgende verwendung:
$myPostVar = t3lib_div::_POST();
$myPostVar = $GLOBALS['TYPO3_DB']-fullQuoteStr($myPostVar,'pages');

die funktion setzt den string direkt in anführungzeihen. da rüber bin
das erst mal gestolpert.

gruss chris







Hi Chris auch :-)



Okay, dankeschön für den Hinweis, aber reicht dann nicht schon sowas wie



$this-myfunction(htmlspecialchars(t3lib_div::_POST('mypostvar')));



So sieht dann die Funktion aus:



function myfunction($test)
{



$clause = p.plz LIKE '$test' LIMIT 1 ;



$res = $GLOBALS['TYPO3_DB']-exec_SELECTquery('*','tx_blablabla_huhu p
LEFT JOIN tx_blablabla_huhuhu a ON p.id= a.pid', $clause);



um eine Attacke komplett auszuschließen? Möchte ja nur sichergehen, dass
meine Extensions auch wirklich sicher sind :-)



Vielen Dank und beste Grüße,



Chris



Hi Bernhard wie Georg Ja ja auch schon gesagt hat ein htmlspecialchars
reicht nicht aus.

htmlspecialchars konvertier html eigene zeichen in die entinites also
,,  ,' werden in ihre entsprechenden entinies umgewandelt.

htmlspecialchars schützt dich nicht vor SQL injections. und das sind die
dinge um die dur dir sorgen machst wenn du sachen mit der datenbank machst.

also dein oben genanntes beisiel baut ungefähr folgendes SQL zusammen

SELECT *
FROM tx_blablabla_huhu p
LEFT JOIN tx_blablabla_huhuhu a ON p.id= a.pid
WHERE * p.plz LIKE '$test' LIMIT 1


wenn ich jetz als angreifer angreifer folgendes in $test übergebe.

%' LIMIT 1; INSERT INTO be_users SET
username=`eviladmin`,
  'password'=`4faa70cd67f1101dc39ae6629def1aef`,
admin=1

könnte ich eventuell einen admin user anlegen der. und das will man ja
nicht. deswegen gilt es alle werte die du der datenbank übergibst durch:
$GLOBALS['TYPO3_DB']-fullQuoteStr() zu schicken. so kannst du dir
sicher sein das keiner ausbüchst.

falls du nutezerdaten (kommentare oder ähnliches) in deiner datenbank
speicherst und später wieder ausgibst solltest du dann bei der ausgabe
darauf achten das kein böser html/javascript erlaubt ist.

das kann im einfachsten falle über htmlentities() geschehen in dem du
einfach alles in für den menschen lesbaren text konvertierst.

wenn du den leuten aber etwas html erlauben willst. und nur bei der
ausgabe sicherstellen willst das nix böse drin ist stellt typo3 dafür
eine funktion bereit:

tslib_cObj.removeBadHTML($text,$conf)

in normalen plugins hast du eine instanz von tslib_cObj schon geerbt.
und solltest sie über
$this-cObj-removeBadHTML($text,$conf) erreichen können.

damit kannst du dann für die FE ausgabe alle schön filtern.

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)

iEYEARECAAYFAkwsVuIACgkQIcCaXPh/JHEUGQCeONGghuBt53BicSgaPA6IC8ga
xt8AoK4G6ZohpiaYJ+gQ+BqbtNScTSiW
=cZtR
-END PGP SIGNATURE-


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
___
TYPO3-german mailing list
TYPO3-german@lists.typo3.org
http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german

Re: [TYPO3-german] Crossite Scripting t3lib_div::_POST('variable')

2010-07-01 Diskussionsfäden Christian Wolff
-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-
___
TYPO3-german mailing list
TYPO3-german@lists.typo3.org
http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german

Re: [TYPO3-german] Crossite Scripting t3lib_div::_POST('variable')

2010-06-30 Diskussionsfäden Christian Wolff
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

Am 30.06.2010 22:29, schrieb Chris Bernhard:
 Hi zusammen,
 
 wenn ich eine Variable über t3lib_div::_POST('variable') verarbeite
 und damit meinetwegen eine MySQL Abfrage starte, bin ich dann
 schon vor XSS Scripting sicher oder muss ich hier noch irgendwas beachten?
 
 Viele Grüße und Dankeschön,
 
 Chris

Hallo Chris,
die functionen:
t3lib_div::_POST(), t3lib_div::_GET() ,t3lib_div::_GP()

kümmern sich lediglich darum das die variablen unabhängig von der server
konfiguration ohne escaping bei dir ankommen.

wenn du sie in datenbank abfragen verwenden willst solltest du sie escapen.

dafür gibts in der classe t3lib_DB die function fullQuoteStr($str,$table)

also folgende verwendung:
$myPostVar = t3lib_div::_POST();
$myPostVar = $GLOBALS['TYPO3_DB']-fullQuoteStr($myPostVar,'pages');

die funktion setzt den string direkt in anführungzeihen. da rüber bin
das erst mal gestolpert.

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)

iEYEARECAAYFAkwrt6gACgkQIcCaXPh/JHH3SwCgz6HDxLKRDCt9FIFK7JYhMKWI
SqYAoLd1PB/2ZtOdzLUptSUfuGc86pQC
=dw2M
-END PGP SIGNATURE-
___
TYPO3-german mailing list
TYPO3-german@lists.typo3.org
http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german