function guvenlik ($veri) {
$veri = htmlspecialchars(strip_tags(mysql_escape_string($veri)));
$veri=trim($veri);
return $veri;
}sizce burada açık bıraktığım birşey var mı? replace etmem gereken bir şey mesela? htmlspecialchars kullandıktan sonra başka bir şey yapmaya gerek yok sanırım & vs. için?bir de arama yaptığımda buldum, taylanaktepe şu kodu paylaşmış;
function ttt_injection($str = NULL) {
$rplce = array(">", "<", "#", "$", "%", "^", "&", "*", "(", ")", "~", "`", "=", "+", "\\", "'", "\"", "|", ";", "?", "!", "[", "{", "]", "}", "CREATE", "INSERT", "DROP", "drop", "DROp", "DRoP", "DrOP", "dROP", "DRop", "Drop", "drOP", "dROp", "DrOp", "dRoP", "UPDATE", "SELECT", "NULL", "FROM", "", "%20", "%3C", "%3E", "%23", "%25", "%7B", "%7D", "%7C", "%5C", "%5E", "%7E", "%5B", "%5D", "%60", "%3B", "%2F", "%3F", "%3A", "%40", "%3D", "%26", "%24");
$protected = htmlspecialchars($str);
if (get_magic_quotes_gpc()) {
$protected = stripslashes($str);
}
if (function_exists("mysql_real_escape_string")) {
$protected = mysql_real_escape_string($str);
} else {
$protected = addslashes($str);
}
$protected = strip_tags(trim(str_replace($rplce, "", $str))) ;
return $protected;
}Konu burdaReplace ederken update gibi terimleri de katmış diziye ama gelen formda bu veriler masum şekilde kullanılıyor olabilir, bunu yapmak doğru değil gibi geldi bana bu yüzden, değil mi?
Bir de burda mysql_real_escape_string ve magic_quotes da kullanılmış.
Bu fonksiyonların hangisini kullanmak yada hangilerini kullanmak yeterli, kısacası temiz bir güvenlik sağlama fonksiyonu nasıl olmalı?