Экранирование кавычек (PHP + Firebird)

Руслан

Новичок
Доброго дня.
Ситуация такая. Прикупили систему (автоматизация работы с оборудованием) и дополнительной фичей к ней идёт веб интерфейс (php + firebird).
Немного посмотрел на интерфейс и обнаружил такую проблему. Незаэкранированны кавычки при приёме данных от формы авторизации. То есть я ввожу в поле "имя пользователя":

' or 1=1--

И соответственно вхожу в админку. Пароль при этом не имеет значения, потому что вид запрос приобретает следующий:

WHERE USER_NAME = ' ' or 1=1--' AND USER_PASSWORD = F_CIPHERPSWD('123');

логично, что кавычку надо заэкранировать.

Почитал фак Фаната по этой теме, так как с firebird ранее никогда не работал, но к сожалению у него рассматривается только варианты с mysql.
Попробовал банальный addslashes - для firebird он не работает, похоже что экранируется другими симоволами. (вроде как ещё одним ' , но не уверен).

Вобщем вопрос - кто работал с firebird подскажите - чем в нем экранируется кавычка и какая функция для неё будет аналогична функции mysql_real_escape_string() ?
 

флоппик

promotor fidei
Команда форума
Партнер клуба
Я процитировал, что процитировал, и указал откуда процитировал. Это отвечало на поставленный вопрос. Я не предлагал magic quotes использовать.
 

Руслан

Новичок
Ребята, ну вобщем сообщение флопика подтвердило моё предположение, о том что экранирование для firebird производится с помощью single quote ( ' )

Но более важен другой вопрос какой функцией заэкранировать ( ' ), то есть если я в поле ввожу ' or 1=1-- , то должно получиться что-то вроде
where `username` = ' '' or 1=1--' AND
Где введеная мной синглквот заэкранированна и значит входит в значение (value).

Насчёт плейсхолдеров почитал. Но не понял как они могут помочь - в рассматриваемом варианте плейсхолдеры приводили к формату
where `username` = ' \' or 1=1--' AND
что к сожалению не помогает.. или я что-то не так сделал?
 
Сверху