Mailinglisten-Archive |
Hallo Ron Opitz,
> Ich denke da an Stichwörter wie
> - cross-site-scripting
Uebergeneben Werte vom Browser werden wieder dargestellt,
und damit sind Ausfuehrungen ueber ein Tag moeglich z.B.
Javascript.
Der Server erwertet eine normale textuelle oder numerische
Eingabe und der User antwortet mit Javascript.
Die Funktion strip_tags entfernt Tags und bereinigt sie.
> - session-manipulation
Am Besten open_basedir und session.save_path fuer jede Domain
setzen.
> - url-modifikation
In dem Fall register_globals ist aktiviert werden die
per URL uebergebenen Parameter innerhalb des PHP
Skriptes uebernommen.
www.openfile.org/fopen.php?id=/etc/passwd
Benutzt fopen.php einen Leseprozess und uebernimmt den
fuer id verwendeten Parameter koennen systemweit ueber
Webserverberechtigungen Auswertungen vorgenommen werden.
Andere Fall eher wahrscheinlich:
$USER = $_GET['username'];
$PASS = $_GET['passwd'];
if (isset($USER) == "developer" && isset($PASS) == "x$3&h/§G") {
$log_auth = 1;
}
if ($log_auto == 1) {
echo "Your authenticated";
}
www.openfile.org/login.php?log_auto=1
Wuerde ohne eine Berechtigungspruefung Zugang gewaehren. Also
am Besten $log_auth = 0, am Amfang vor der Ueberpruefung setzen
oder anders coden:
if (isset($USER) == "developer" && isset($PASS) == "x$3&h/§G") {
start_session();
$_SESSION['SESS_CUS'] = $user_id;
}
> - Prüfung von <form>-Daten
Ja wie gesagt Tags sollte man entfernen, in dem Fall die Daten
werden wieder ueber den Browser ausgegeben.
addslashes wandelt single quote ('), double quote ("), backslash (\) and NUL
(the NULL byte) um.
Das ist wichtig in dem Fall die Formularuebergabe wird in einem
SQL-Query z.B. bei Page-Sliding ueber limit benutzt.
Hier entseht SQL Injection.
Aus der php.net Docu eine Funktion:
function quote_smart($value)
{
// Stripslashes
if (get_magic_quotes_gpc()) {
$value = stripslashes($value);
}
// Quote if not integer
if (!is_numeric($value)) {
$value = "'" .
mysql_real_escape_string($value) . "'";
}
return $value;
}
quote_meta ist auch noch wichtig und kann ohne PHP beinflussen.
Hoffe ich konnte dir weiterhelfen :-)
--
Best Regards,
Mark
php::bar PHP Wiki - Listenarchive