Я вставляю данные в db со следующей валидацией, где принимаю только '
и &
и @
и .
. После этого я использую mysqli_real_escape_string($var)
.Безопасное выражение Php для вставки данных в базу данных?
Так я вижу это выход:
I\'m a good boy &@ is it secure var for input to DB.
Мои вопросы:
1) Есть ли какие-либо вопросы безопасности будут появляться, если я принимаю '
и &
и @
и .
?
2) Если это не проблемы с безопасностью, то вставляется \
в db. Проблема в хранении данных с обратной косой чертой?
3) Если это не проблема для безопасности, то в пользовательских панелях данные отображаются с \
. Так что нужно бежать с stripslashes($var);
?
Моя проверка:
$var = "I'm a good boy &@ is it secure var for input to DB.";
if(preg_match("/^[a-zA-Z0-9.'&@ ]+$/", $var) !== 1)
echo "var is NOT OK.<br/>";
else
echo "var is ok.<br/>";
mysqli_real_escape_string($link, $var);
При использовании подготовленных операторов не нужно ничего подобного. –
Вы можете игнорировать все проблемы безопасности, вызванные одинарными кавычками, просто используя подготовленные операторы вместо использования mysqli_real_escape_string – Ali
@ Fred-ii- Wow! Отлично. Один ответ строки. Но, по моему вопросу, у вас есть ответ? – creativeartbd