Hello Mathias,
Omkring SQL injections og hvordan man beskytter sig imod dem:Du skal lave det som jeg kalder for en SQLtype-funktion.
Grunden til at jeg kalder det for en SQLtype-funktion, er at den ikke arbejder med PHPs typeset, men derimod med Databasen.
Selv om mysql i PHP kommer med en funktion - mysql_real_escape_string() - så er det efter min mening langt fra nok.
<?PHP
function SQLtype($Value) {
$sqlType = "";
/**
*
*
*/
switch ($Value) {
case is_numeric($Value):
/**
* Analysere en numerisk värdi
* - numerisk
* - integer
* - float
*/
if(is_string($Value)) {
$sqlType = "'" . $Value . "'";
}
else if(is_integer($Value)) {
$sqlType = $Value;
}
else if(is_float($Value)) {
$sqlType = $Value;
}
break;
case is_string($Value):
/**
*
*/
if(($Value == "") || strlen($Value) == 0) {
$sqlType = "'NULL'";
}
else {
$aRepSource = array("'", "\"");
$aRepSourceWith = array("\'", "\\\"");
$sqlType = "'" . str_replace($aRepSource , $aRepSourceWith , $Value) . "'";
}
break;
case is_bool($Value):
/**
*
*/
if($Value == TRUE) {
$sqlType = "'1'";
}
elseif($Value == FALSE) {
$sqlType = "'0'";
}
break;
case is_null($Value):
$sqlType = "'NULL'";
break;
}
return $sqlType;
}
?>
Du kan jo pröve at lege lidt med denne funktion. SQL injections er en meget anvendt måde at kompromitere et website på og få websitet til at göre ting som absolut ikke er hensigten. Derfor, denne funktion.
Håber at du kan bruge funktionen, Mathias.
Omkring kort betalinger:Omkring kort betalinger, så er det sådan at du __SKAL__ kryptere de data du opbevare i din database. Til dette vil jeg anbefale MCrypt til opgaven, hvis du anvender PHP - selv om jeg nok må sige at jeg absolut IKKE vil anbefale PHP hvis du skal lave noget somhelst med betalinger, osv. Det er PHP ALT for "usikkert til" - PHP er ikke Type-stärkt nok i variabler og data håndtering til dette. Java og ASP.NET, derimod er rigtig gode til at håndtere denne opgave.
MCrypt er praktisk fordi MCrypt tillader både kryptering og dekryptering. :-)
Du er velkommen til at kontakte mig hvis du har flere spörgsmål. God luck!