Задать вопрос
Anatolios
@Anatolios
Новичок в IT. Инженер технической поддержки

Как сделать INSERT поля password, которое содержит два доллара и одинарную кавычку?

Задача перенести поля из redis в postgresql, для этого использую расширение phpredis.
Перед выполнением INSERT использую функцию php preg_quote() чтобы экранировать специальные символы, в данном случае экранируются два доллара в пароле, после чего пароль выглядит так: 'lsa\$\$331'bc'
В противном случае postgresql будет ругаться на синтаксис ($$...$$...$$)
$ssh_password = preg_quote($infoClient['pass'], '/');

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

$query = "INSERT INTO client_ssh(client_name, ssh_login, ssh_password)
                          VALUES ('".$client_name."',  '".$ssh_login."', $$'".$ssh_password."'$$)";


В данном случае это работает, однако пароль в таблице отличается от исходного:
До:
lsa$$331'bc
После:
lsa\$\$331'bc

Можно ли сделать INSERT так, чтобы пароль в таблице не отличался от исходного, т.е. не содержал бы слэши?

Забыл добавить, что таблица не используется для авторизации, нужно будет доставать исходный пароль, поэтому использование md5 и соли не приемлемо
  • Вопрос задан
  • 105 просмотров
Подписаться 1 Простой 2 комментария
Пригласить эксперта
Ответы на вопрос 1
Fragster
@Fragster
помогло? отметь решением!
Выкинуть вставку параметров в запросы через конкатенацию, использовать prepared statements
Не хранить в базе пароль, а только хэш от него (причем засоленный)
exploits_of_a_mom.png
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы