 |
| Hinweise |
Willkommen im TP-Hilfe-Forum!Dies ist ein Forum zu den Themen Photoshop, Dreamweaver, Flash, Selbständigkeit und mehr, in dem Du Hilfe, Anleitung oder eine Lösung zu Deinen Problemen erhältst. Aktuell bist Du in unseren Foren als Gast mit reinen Leserechten unterwegs. Wenn Du Dich registrierst, kannst Du eigene Themen verfassen, deine Frage stellen und privat mit anderen TPlern kommunizieren. Weitere Foren werden zugänglich, und Du wirst – falls gewünscht – per Mail über neue Beiträge informiert. Die Registrierung ist schnell und kostenlos. Sollten bei der Registrierung Fragen auftauchen, reicht ein Klick in unsere Hilfe - Häufig gestellte Fragen oder eine kurze Mitteilung an das Support-Team. Viel Spaß bei Traum-Projekt.com |
22.08.2003, 14:17
|
#1
|
|
TP-Senior
Registriert seit: Mar 2003
Ort: Leipzig
|
Sicherheit: Input slashen u. register_globals killen
Folgender Code am Anfang eines Script sollte alle an das Script übergebenen Daten sicher machen, indem ggf. addslashes verwendet wird. Damit wird SQL-Injektion unmöglich. Zusätzlich werden, falls register_globals aktiviert ist, diese Variablen gelöscht.
PHP-Code:
if( !@get_magic_quotes_gpc() )
{
$vars = array(
array(&$HTTP_GET_VARS, &$_GET),
array(&$HTTP_POST_VARS, &$_POST),
array(&$HTTP_COOKIE_VARS, &$_COOKIE),
array(&$HTTP_POST_FILES, &$_FILES),
array(&$HTTP_SESSION_VARS, &$_SESSION)
);
for($i = 0; $i<count($vars); $i++)
{
if( is_array($vars[$i][0]) )
{
while( list($k, $v) = each($vars[$i][0]) )
{
if( is_array($vars[$i][0][$k]) )
{
while( list($k2, $v2) = each($vars[$i][0][$k]) )
{
$vars[$i][0][$k][$k2] = addslashes($v2);
}
@reset($vars[$i][0][$k]);
}
else
{
$vars[$i][0][$k] = addslashes($v);
}
}
@reset($vars[$i][0]);
$vars[$i][1] = $vars[$i][0];
}
}
unset($vars);
}
if( (@get_cfg_var('register_globals') == true) || (@get_cfg_var('register_globals') === false) )
{
if( is_array($_REQUEST) )
{
while( list($k, $v) = each($_REQUEST) )
{
unset($$k);
}
}
}
__________________
[ httpsmog]
"I have not failed. I've just found 10,000 ways that won't work." - Thomas Alva Edison (1847-1931)
|
|
|
22.08.2003, 18:00
|
#2
|
|
TP-Moderator
Registriert seit: Feb 2001
Ort: Helmstedt/Wolfsburg
|
Das mit dem magic_quotes isn bissel zu kompliziert, oder?
Ich benutze das hier:
PHP-Code:
function my_magic_quotes(&$var, $quotes = true) {
foreach($var AS $key => $value) {
if (is_array($var[$key])) {
my_magic_quotes($var[$key],$quotes);
} else {
if(get_magic_quotes_gpc() && !$quotes) {
$var[$key] = stripslashes($var[$key]);
} else if (!get_magic_quotes_gpc() && $quotes) {
$var[$key] = addslashes($var[$key]);
}
}
}
}
-> http://php3.de/manual/en/function.ge...quotes-gpc.php ...bei den User-Comments. Allerdings hab ichs nochn bissel ausgebaut. Einfach das Array übergeben und fertisch
Gruss
Jan
|
|
|
22.08.2003, 19:57
|
#3
|
|
TP-Senior
Registriert seit: Mar 2003
Ort: Leipzig
|
wieso ist das kompliziert? einmal inlcluden und fertig.
mir ging es einfach darum mit einem script alle eventualitäten zu erschlagen.
__________________
[ httpsmog]
"I have not failed. I've just found 10,000 ways that won't work." - Thomas Alva Edison (1847-1931)
|
|
|
25.08.2003, 07:58
|
#4
|
|
TP-Moderator
Registriert seit: Feb 2001
Ort: Helmstedt/Wolfsburg
|
Naja... das Anwenden nicht aber das Script ansich... so wie ich das sehe arbeitet dein Script nicht rekursiv, sondern du gehst manuell nur bis in die 2te Array-Ebene. Mit einer rekursiven Funktion ist man da besser bedient.
Eine andere Frage, die sich auftut ist die, ob man Session-Daten auch mit Slashes versehen sollte?? Wozu? Spätestens nach dem 2ten Seitenausfruf wären die Daten doch schon "zugeslashed"  ... Jeder Aufruf escaped jeden Slash...
Genau das gleiche gilt für $_FILES... da hatte vor einer Weile mal jemand ne Frage zu gestellt (warst du das nicht sogar?)... ob die Daten auch durch magic_quotes escaped werden. Ich konnte es aber bisher auch noch nicht ausprobieren.
Gruss
Jan
|
|
|
25.08.2003, 08:41
|
#5
|
|
TP-Senior
Registriert seit: Mar 2003
Ort: Leipzig
|
ok, das mit den sessions ist richtig. ich hatte damit zwar noch keine probleme aber ggf. werden die wohl mehrfach geslashed.
das gilt aber nicht für $_FILES, denn das wird nicht über mehrere seiten 'mitgeschleppt'. $_FILES besteht aber überwiegend aus daten, die vom browser des users kommen. warum sollen die also nicht auch manipulierbar sein?
__________________
[ httpsmog]
"I have not failed. I've just found 10,000 ways that won't work." - Thomas Alva Edison (1847-1931)
|
|
|
25.08.2003, 08:46
|
#6
|
|
TP-Moderator
Registriert seit: Feb 2001
Ort: Helmstedt/Wolfsburg
|
wie gesagt... mit Files bin ich mir nicht sicher, da ichs auch noch nicht probiert habe diese zu manipulieren... 
|
|
|
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
|
| Themen-Optionen |
Thema durchsuchen |
|
|
|
| Thema bewerten |
|
|
Forumregeln
|
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
Alle Zeitangaben in WEZ +2. Es ist jetzt 04:32 Uhr.
|
 |