2014-10-29 4 views
1

Я вставляю данные в 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); 
+3

При использовании подготовленных операторов не нужно ничего подобного. –

+0

Вы можете игнорировать все проблемы безопасности, вызванные одинарными кавычками, просто используя подготовленные операторы вместо использования mysqli_real_escape_string – Ali

+0

@ Fred-ii- Wow! Отлично. Один ответ строки. Но, по моему вопросу, у вас есть ответ? – creativeartbd

ответ

-1
  1. Есть ли какие-либо вопросы безопасности будут появляться, если я принимаю "и & и @ и. ?
    Там будут вопросы безопасности, как одинарные кавычки (') используется для SQL Injection

  2. Если это не вопросы безопасности, то это вставка \ к БД. Проблема в хранении данных с обратной косой чертой?
    Нет, нет проблем с хранением данных с помощью обратных косых черт, вот как работает экранирование.

  3. Если это не проблема для безопасности, то в данных панели пользователя отображается с. Так что нужно бежать с помощью stripslashes ($ var) ;?
    Да, это вызовет проблемы среди дисплея, как одинарные кавычки будут экранированы с помощью обратной косой черты, чтобы отобразить его без обратной косой черты, вы можете использовать stripslashes()

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

Смежные вопросы