Ämne: Säkerhet?
Visa ett inlägg
Oläst 2009-06-03, 10:29 #7
danjel danjel är inte uppkopplad
Medlem
 
Reg.datum: Nov 2003
Inlägg: 214
danjel danjel är inte uppkopplad
Medlem
 
Reg.datum: Nov 2003
Inlägg: 214
Använd PDO för databas frågor, då blir det enklare att göra säkra frågor, du slipper addslashes motsvarande tex..utan använder prepared statements (eller vad det heter )

Fånga upp alla fel med set_error_handler() och visa en felsida då fel uppstår..hackers kan använda genererade fel för att få mer information om systemet
Logga felen i en fil som ligger utanför webbkatalogen. Om du inte kan spara loggen
utanför webbmappen, så kan man skriva in <?php exit; ?> för varje fel , då kan man inte surfa in till felloggen, se nedan för exempel..


Kod:
function error_handler ($type, $message, $file=__FILE__, $line=__LINE__) {
	global $ERR;

	if ($type == 8 || $ERR != '') return;
	$err = "<?php exit; ?>"; //secure
	$err .= date ("M d Y H:i:s"). "\n\nmess: " . $message ."\n\nfil: $file ";
	$err .= "\n\ntyp: " . $type ."\n\nline: " . $line . "\n\n" .'phpfil: ' .$_SERVER['PHP_SELF'] ."\n\n";
	$err .= "cookie: " .var_export($_COOKIE, true) ."\n\n";
	$err .= "REFERER: " . $_SERVER['HTTP_REFERER'];
	$err .= "\n----------------------- \n\n\n\n";
	
	error_log($err, 3, REAL_PATH . 'log/'. date("Ymd"). '_err.php');

	if(B_PROD && DEBUG == false){ 
 
 ob_end_clean();
 redir("scripts/error_page.php");
	}else{
 print nl2br("ERROR");
 $ERR=$err;
	}
	
}
if( ! defined("ERR_HANDLE_DISABLE")){	
	set_error_handler('error_handler');
}
Använd krypterade lösenord i databasen, obs att endast md5() hash inte är fullgott skydd.

Ha koll på Cross site scripting, XSS..
Använd inte <form action="<?php print $_SERVER['PHP_SELF']?>">, vilket öppnar för XSS attacker tex...


Ha koll på konfig filen med lösenord, så att den ej heter config..inc eller liknande utan .php , och gärna att den ligger utanför webbkatalogen
danjel är inte uppkopplad   Svara med citatSvara med citat