htmlspecialchars kullanın SQL açığı olmaz
htmlspecialchars sadece ufak bir önlem, %100 güvende değilsin bu şekilde.
Önerim get, post gibi işlemlerde bu tip bir mantıkla gidilmesi.
/*--------------------- $_GET & $_POST ----------------- START */
// Secure via $_GET
public function get($parameter){
return !isset($_GET[$parameter]) ? false : strip_tags(trim(addslashes(htmlspecialchars($_GET[$parameter]))));
}
// Secure via $_POST
public function post($parameter){
if (!empty($_POST[$parameter])) {
if (is_array($_POST[$parameter])) {
$request = array();
foreach ($_POST[$parameter] as $param)
$request[] = htmlspecialchars(addslashes(trim($param)));
return $request;
}
return htmlspecialchars(addslashes(trim($_POST[$parameter])));
}
return false;
}
/*--------------------- $_GET & $_POST ----------------- END */
Ayrıca
ugurgunes19 birbirini tekrarlayan gereksiz kullanımlardan kaçınmalısın ve md5 ve sha1 yerine sha512 kullanırsan daha iyi bir sonuç alabileceğine inanıyorum çünkü md5 ve sha1 hakkında pek iyi şeyler söylenmiyor, kırıldı, eskisi kadar güvenli değil vs. Sonuçta işlem kapasitesi gelişen makineler için saatler bile sürebilir kırılmaları.
Sha512 128 karakterlerlik bir sonuç üretir, tek başına ekstrem durumlar için yeterli olmasa da en azından hash işini görür.
$hashed = hash('sha512', $data);