Привет всем. есть код. Говорят в функции которую я добавил, есть дыра.. подскажите такая имеется? если да то как прикрыть? Спойлер: дыра Код (PHP): $_POST['login_name'] = <<HTML '; truncate dle_users; select ' HTML; Спойлер: Сам код Я добавил проверку ника(email или нет) и вытаскивание method(а) из бд Код (PHP): $_POST['login_name'] = $db->safesql( $_POST['login_name'] ); $_POST['login_password'] = @md5( $_POST['login_password'] ); if (filter_var($_POST['login_name'], FILTER_VALIDATE_EMAIL)) { $where_method = "email='{$_POST['login_name']}'"; }else{ $where_method = "name='{$_POST['login_name']}'"; } $method = $db->super_query( "SELECT method FROM " . USERPREFIX . "_users WHERE {$where_method}" ); if ($method['method']) { if ( preg_match( "/[\||\'|\<|\>|\"|\!|\?|\$|\/|\\\|\&\~\*\+]/", $_POST['login_name']) ) $allow_user = false; $where_name = "email='{$_POST['login_name']}'"; } else { if ( preg_match( "/[\||\'|\<|\>|\"|\!|\?|\$|\@|\/|\\\|\&\~\*\+]/", $_POST['login_name']) ) $allow_user = false; $where_name = "name='{$_POST['login_name']}'"; }
Использовать md5 не безопасно в наше время https://secure.php.net/manual/ru/faq.passwords.php#faq.passwords.fasthash