Hoe kan ik mijn scripts beveiligen tegen injecties?
Dus als er iets wordt opgeslagen in de database van een input veld??
met addslashes()?
Zijn er nog meer mogenlijkheden?
een wachtwoord moet je volgens mij niet beveiligen tegen mysql injection, want er wordt een hash gevormd waarin geen schadelijke zaken zitten
bij land heb ik mijn twijfels, gebruik je een select?
dat van wachtwoord wist ik niet, maar naam zou normaal ook niet kunnen omdat hij daarvoor al controleert of er enkel nummers en letters inzitten, maar voor de zekerheid
<?php/**
* Prepare a variable for use in a query.
* @param mixed $value The value that needs to be prepared.
* @access public
* @return mixed
*/
public function prepareForQuery($value) {
// Strip slashes
if (get_magic_quotes_gpc()) {
$value = stripslashes($value);
}
// Only add quotes if it's not a numeric string.
if (!is_numeric($value)) {
$value = "'".mysql_real_escape_string($value)."'";
}
return $value;
}
/**
* Clean the input from a form so that hacks don't work.
* @param pointer $var The variable to clean.
* @return mixed cleaned (array of) variable(s).
*/
public function cleanFromInput($var) {
$search = array(
"'<script[^>]*?>.*?</script>'si",
"'<frame[^>]*?>.*?</frame>'si",
"'<object[^>]*?>.*?</object>'si",
"'<meta[^>]*?>.*?</meta>'si",
"'<applet[^>]*?>.*?</applet>'si",
"'<link[^>]*?>.*?</link>'si",
"'<iframe[^>]*?>.*?</iframe>'si",
"'<style[^>]*?>.*?</style>'si"
);
$replace = array('');
$resarray = array();
$tel = 0;
foreach (func_get_args() as $var) {
// Get var
// if (empty($var)) {
// continue;
//}
$ourvar = &$var;
$tel++;
if (!isset($ourvar)) {
$ourvar = NULL;
array_push($resarray, $ourvar);
continue;
}
if (empty($ourvar)) {
array_push($resarray, $ourvar);
continue;
}
// Clean var
if (get_magic_quotes_gpc()) {
if (is_array($ourvar)) {
foreach ($var as $k=>$v) {
$ourvar[$k] = stripslashes($v);
}
} else {
$ourvar = stripslashes($ourvar);
}
}
$ourvar = preg_replace($search, $replace, $ourvar);
array_push($resarray, $ourvar);
}
// Return vars
if ($tel == 1) {
return $resarray[0];
} else {
return $resarray;
}
}
?>
<?php/**
* Prepare a variable for use in a query.
* @param mixed $value The value that needs to be prepared.