Функции is_numeric и isEmail - PullRequest
       33

Функции is_numeric и isEmail

0 голосов
/ 09 ноября 2018

Я создаю поле ($login), пользователь должен зарегистрироваться по электронной почте или номеру телефона Поэтому я хочу провести проверку безопасности для проверки

Могу ли я использовать 2 функции одновременно? Я попробовал следующий код, но он не работал.

if(!is_numeric || isEmail($login)) {
    $mesaj = '<div class="msg"><div class="error">Add Valid Email or Phone Number</div></div>';
}else{
    $db->Query("UPDATE `users` SET `login`='".$login."' WHERE `id`='".$data['id']."'");
    $mesaj = '<div class="msg"><div class="success">Success</div></div>';
}

Есть идеи?

1 Ответ

0 голосов
/ 09 ноября 2018

У вас есть ошибка в вашем коде: if(!is_numeric || isEmail($login))

Вы не делаете вызов функции с is_numeric. Вам необходимо предоставить ему параметр: is_numeric($myVar)

У вас также есть проблема с SQL-инъекцией в вашем коде. Никогда объединять строки для построения запроса. Вместо этого используйте параметризованные запросы .


Возможный вектор атаки:

/***
 * Data input from client browser / app
 ***/
$data['id'] = "0' OR id > 0 OR id = '1";
$login = "', `password`='hacked";

"UPDATE `users` SET `login`='".$login."' WHERE `id`='".$data['id']."'"

Выходной SQL:

"UPDATE `users` SET `login`='', `password`='hacked' WHERE `id`='0' OR id > 0 OR id = '1'"
...