Сервер mysql ругается на ' - одинарную кавычку

252
12 июня 2017, 21:17

Всем привет. Имеется приложение на objective-c. Приложение периодически отправляет текст на сервер. Но если в передаваемом тексте имеется ' - одинарная кавычка, то от сервера приходит следующее сообщение:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'dded. Dad add\"'','','')' at line 1";

Передается текст в POST запросе. Как решить эту проблему??

...

Дело в том что на сервер отправляется скажем так текст сообщения, который набирает пользователь приложения. Текст с остальными атрибутами упаковывается в NSDictionary и далее отправляется в виде POST параметров на сервер. Текст набранный пользователем может иметь например такой вид: I'll be back. И при отправке этого текста возникает ошибка.

Answer 1

Самым простым вариантом решения будет замена одинарной кавычки на что-то типа - ` символ обратного апострофа. А правильным вариантом решения проблемы будет экранирование символов, которые могут исполнятся как код, читайте про sql-injection

Ваша ошибка скорее всего связана с тем, что Вы пишете в базу непосредственно пользовательский текст, а так делать не надо, например:

resp = get()  # типа получили данные от пользователя
db.session('select * from table where id = {0}'.format(resp))  # обратились к базе

так вот, если resp = '1' все норм, но пользователь может отправить что-то другое, и теперь у вас resp = '1; DELETE FROM table;'

READ ALSO
даты в строгой последовательности mysql

даты в строгой последовательности mysql

Есть таблицав ней поле даты

288
Не получается соединить два поля из таблиц БД

Не получается соединить два поля из таблиц БД

Дурацкий вопрос наверное, но не могу соединить два поляНе понимаю, почему возникает ошибка

245
После removeView не очищается оперативка

После removeView не очищается оперативка

программно добавляю элемент

168
Утечка памяти java

Утечка памяти java

Добрый день! Подскажите пожалуйста почему происходит бесконечная утечка памяти при таких действияхВ методе OnCreate создаю объекты

202