Size: a a a

2020 December 05

MD

Maxim Dororonin in Go-go!
Роман Иванов
Подскажите пожалуйста, есть код https://pastebin.com/qN0K5EnT, который создает блюда и ингридиенты к нему. Почему то insertedDishId и insertedIngridientId всегда 0. Примерно почему я знаю, возможно пока коммит не произошел, то ид не вернул. Если так, то каким образом можно сделать вставки пачками, чтобы id возвращалось ?
А что за база?
источник

РИ

Роман Иванов... in Go-go!
Maxim Dororonin
А что за база?
постгрес
источник

MD

Maxim Dororonin in Go-go!
Роман Иванов
постгрес
Не работает с постгресом LastInsertId
источник

РИ

Роман Иванов... in Go-go!
Maxim Dororonin
Не работает с постгресом LastInsertId
хм, а что тогда использовать нужно?
источник

MD

Maxim Dororonin in Go-go!
insert ... returning id
источник

РИ

Роман Иванов... in Go-go!
Maxim Dororonin
insert ... returning id
попробую, спасибо
источник

MD

Maxim Dororonin in Go-go!
Роман Иванов
попробую, спасибо
sqlStatement := `
INSERT INTO users (age, email, first_name, last_name)
VALUES ($1, $2, $3, $4)
RETURNING id`
id := 0
err = db.QueryRow(sqlStatement, 30, "jon@calhoun.io", "Jonathan", "Calhoun").Scan(&id)
if err != nil {
 panic(err)
}
источник

РИ

Роман Иванов... in Go-go!
Maxim Dororonin
sqlStatement := `
INSERT INTO users (age, email, first_name, last_name)
VALUES ($1, $2, $3, $4)
RETURNING id`
id := 0
err = db.QueryRow(sqlStatement, 30, "jon@calhoun.io", "Jonathan", "Calhoun").Scan(&id)
if err != nil {
 panic(err)
}
Все заработало
источник

СГ

Сергей Гришаев... in Go-go!
Валерьевич?
тут увидел ключ прям в коде. И коду этому 5 лет. Сделал запрос с этим ключом — всё работает.
Т.е. ключ провисел в открытом доступе столько времени — и он до сих пор активен. Значит, никаких правил это не нарушает
Как простой вариант: закодируйте ключ base64, а перед использованием раскодируйте
источник

DD

Daniil Dubitsky in Go-go!
Сергей Гришаев
Как простой вариант: закодируйте ключ base64, а перед использованием раскодируйте
Но это же не обеспечит конфиденциальность ключа
источник

СГ

Сергей Гришаев... in Go-go!
Безусловно, но это помешает его парсингу в исполняемом файле (не предотвратит, но усложнит). При желании ключ все равно можно украсть через анализ запросов, как сказали выше
источник

DD

Daniil Dubitsky in Go-go!
Сергей Гришаев
Безусловно, но это помешает его парсингу в исполняемом файле (не предотвратит, но усложнит). При желании ключ все равно можно украсть через анализ запросов, как сказали выше
Определенно да, просто первоначальная идея хоть и обеспечивает максимальный комфорт пользователям разработанного приложения, но противоречит идеи API ключей
Все таки думаю, что пользователи, которые пулят репу с гита достаточно осведомлены для того, чтобы вставить свой API ключ в файл конфигурации, аргумент командной строки и т.д.
источник

@

@mr_tron in Go-go!
Сергей Гришаев
Как простой вариант: закодируйте ключ base64, а перед использованием раскодируйте
Самый простой вариант хоть сколько-нибудь секурно хранить ключ в бинаре это хранить его как два слайса байт внутри функции и возвращать ксор динамически
источник

@

@mr_tron in Go-go!
Как минимум strings на бинарь не покажет ключа
источник

@

@mr_tron in Go-go!
Base64 будет заметен
источник

ВС

Владимир Столяров... in Go-go!
Ну и тогда ssl pinning, чтобы анализатором так просто не влезть в трафик
источник

@

@mr_tron in Go-go!
Владимир Столяров
Ну и тогда ssl pinning, чтобы анализатором так просто не влезть в трафик
Да
источник

ZH

Zhan He in Go-go!
You can't
источник

AB

Alex Butenko in Go-go!
дайте 100 миллионов. честное слово отдам
источник

p

pragus in Go-go!
Владимир Столяров
Ну и тогда ssl pinning, чтобы анализатором так просто не влезть в трафик
Эээ.. а зачем?
источник