Всем привет. Имеется приложение на 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. И при отправке этого текста возникает ошибка.
Самым простым вариантом решения будет замена одинарной кавычки на что-то типа - ` символ обратного апострофа. А правильным вариантом решения проблемы будет экранирование символов, которые могут исполнятся как код, читайте про sql-injection
Ваша ошибка скорее всего связана с тем, что Вы пишете в базу непосредственно пользовательский текст, а так делать не надо, например:
resp = get() # типа получили данные от пользователя
db.session('select * from table where id = {0}'.format(resp)) # обратились к базе
так вот, если resp = '1'
все норм, но пользователь может отправить что-то другое, и теперь у вас resp = '1; DELETE FROM table;'
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Виртуальный выделенный сервер (VDS) становится отличным выбором
Дурацкий вопрос наверное, но не могу соединить два поляНе понимаю, почему возникает ошибка
Добрый день! Подскажите пожалуйста почему происходит бесконечная утечка памяти при таких действияхВ методе OnCreate создаю объекты