2013-03-14 4 views
0

ребята, я новичок в безопасности mysql, и когда я ищу эту проблему в google, многие люди предупреждают, что мы должны проверить строку mysql, чтобы увидеть, содержит ли она 'или нет, иначе вы рискуете получить mysql базы данных, но они не сказали, почему? Можете ли вы рассказать мне причину? Большое спасибо.Почему строка MYSQL, которая содержит ', не является безопасной?

+2

Вам необходимо избегать строк, прежде чем вставлять их в базу данных mySQL. Это все. Глядя, не содержит ли он '' ', не нужно. Для получения дополнительной информации сообщите нам, какую платформу вы используете для доступа к базе данных - каждая библиотека языка программирования/базы данных имеет свои методы для экранирования данных. –

+4

http://xkcd.com/327/ –

+0

Использование некоторых API, которые берут строку и используют их напрямую, поскольку пакетный SQL является опасным. Но вы редко используете такой API сегодня. Это полностью зависит от вашего кода приложения и библиотек. –

ответ

0

Представьте, что у вас есть пользовательская таблица и форма для входа. Обычно, когда пользователь входит в систему вы хотите определить, есть ли у него счета:

Это очень плохо PHP:

"SELECT * FROM users WHERE username = '$username' AND password = MD5('$password');" 

Теперь у вас есть пользователь с именем

1' ; DROP TABLE, #

Что произойдет?

+0

О, мой бог. Я знаю причину сейчас! Большое вам спасибо, кроме фильтра «, есть ли какие-то другие вещи, которые я должен обратить внимание? еще раз спасибо! –