Я реализую простую закрытую область на веб-сайте.
Доступ предоставляется при вводе правильного пароля. Пароль является общим, поэтому реальных учетных записей нет.
Я пытаюсь понять, если я пропускаю некоторую фильтрацию переменных, и если я должен очистить данные. Я почти уверен, что должен сделать это, но я не знаю, каков наилучший подход.
В моем коде у меня есть два места, где я использую данные из переменной $ _POST:
if(isset($_POST)&&$_POST['the_password']!="")
{
$my_password = $_POST['the_password'];
//Should i use something like this?
//$my_password = filter_input(INPUT_POST, 'the_password', FILTER_SANITIZE_STRING);
}
Второе место — где я использую переменную в операторе if:
if($a_password == $my_password)
{
//Query using the $a_password variable
}
В этой части кода $ a_password происходит из жестко закодированного запроса.
Является ли функция filter_input правильной? Я что-то пропустил?
Короткий ответ — нет; для if
Скажите, ваш код в безопасности.
Однако, если вы отредактируете код позже, вы должны использовать подготовленные операторы в запросах к базе данных.
Других решений пока нет …