
никогда не слушайте
08.10.2018
10:37:41

Nick
08.10.2018
10:40:21

никогда не слушайте
08.10.2018
10:42:16
Step-by-step как говорится)

Google

Nick
08.10.2018
10:43:42
если вы начинаете озабачиваться о безопасности, то стоит расписат ьвектор атак от которых вы хотете защититься, этакая модель угроз. относительно ее уже дальше проектироват ьвсю систему. без этого все бессмысленно.
например, человек получивший доступ к бд не мог получить пароль пользователя, а лишь его испортить или подменить

никогда не слушайте
08.10.2018
10:45:31
Ну, у меня пожалуй весьма стандартный стек.
0. Челок получивший доступ к бд не мог получить пароль пользователя
1. Обезопасить себя, от слива всей базы
2. Новый пользователь не мог иметь доступа к записям чужого пользователя
Короче, я понял, первое что мне нужно, это зашифровать пароли)

Nick
08.10.2018
10:47:57
это самое простое, а вот второе и третье - это уже больше организационные методы и предотвращение эксплойтов на стороне приложухи. ведь абсолютно бессмысленно упарываться в безопасность, если на сервак можно залит ьфайлик и потом его удаленно запустить

никогда не слушайте
08.10.2018
10:49:47
Ну, дело в том, что я позиционирую свой проект больше как портфолио и глубоко углубляться в безопасность мне бы не хотелось, все таки, это уже работа тех людей, который настраивают сервера, а пока, все у меня крутиться на локальной машинке.

Nick
08.10.2018
10:50:00
в хорошо спроектированной софтине и полностью лояльной команде админов можно полностью исключить настройку безопасности за приложухой (БД, всякие файлопомйки и т.п.)

никогда не слушайте
08.10.2018
10:51:36
Ладно. Для старта. Мои текущие действия.
Я создаю коллекцию зарегистрированных пользователей с зашифрованными паролями.
А дальше вернусь уже дальше вопросики свои задавать)

Nick
08.10.2018
10:52:38
ага, пока не надо на это распыляться, просто держать в голове что этим надо будет озаботиться

AstraSerg
08.10.2018
11:02:02

никогда не слушайте
08.10.2018
11:02:25

KhuzhA.GQ
08.10.2018
11:04:56
Ребят, а как искать по айди объекта в бд? Делаю вот так:
db.collection('complete').find({_id: objId}).toArray()
- не находит.
*objId == айди объекта в формате 5bbb37a64631322f2c819606

AstraSerg
08.10.2018
11:05:07
Соль — это не секрет и метод — это не секрет. По этому поводу можно почитать как сделана аутентификация в *nix системах. Ща ссыль поищу....

Google

Nick
08.10.2018
11:08:10

Alexander
08.10.2018
11:08:42

KhuzhA.GQ
08.10.2018
11:09:03

AstraSerg
08.10.2018
11:09:34

Nick
08.10.2018
11:10:18
зависит от языка и драйвера, проще всего в доке найти пример

KhuzhA.GQ
08.10.2018
12:15:34

никогда не слушайте
08.10.2018
17:47:04
Ох, что-то странное происходит.
В общем. Тут лучше гистами уже отправлять.
Вот так я создал экземпляр своего соединения
https://gist.github.com/demidborodin/39f9588b611c374a48657ec685bfc242
Я принимаю пост запрос, с другого сервера, в первый раз все окей, но стоит отправить запрос повторно
Ну и вот код моего супер сложного сервера)))
https://gist.github.com/demidborodin/515c57937780c31435db1375163f10ba
Есть какие нибудь идеи

Alexander
08.10.2018
17:48:57

никогда не слушайте
08.10.2018
17:49:47
Хм, ну что бы создать "экземпляр" коннекта и потом его во все модули таскать, куда мне нужно...

Alexander
08.10.2018
17:49:47
а вообще, я бы взял монгуз

никогда не слушайте
08.10.2018
17:50:40

Alexander
08.10.2018
17:50:51
ну, читабельнее код, это для начала

никогда не слушайте
08.10.2018
17:52:57
Ну у меня привычка давно такая.
Сначала либы, потом константы, потом модуль который я экспортирую.
Суть дела это вроде не меняет)

Alexander
08.10.2018
17:53:38

Google

никогда не слушайте
08.10.2018
17:53:55
4.0.2

KhuzhA.GQ
08.10.2018
17:54:41
вечер добрый! Подскажите, пожалуйста, при каких обстоятельствах (как надо налажать) может не находиться объект в монгe?
Пишу
bot.action(/sendLoc_*/, (ctx) => {
let objId = ctx.match.input.substr(8)
ctx.answerCbQuery()
console.log(objId)
db.collection('complete').find({orderId: objId}).toArray()
.then((src) => {
console.log(src)
bot.telegram.sendLocation(62253745, src[0].location.latitude, src[0].location.longitude)
})
.catch((err) => console.log(err))
})
, выходит пустой массив. Смотрю в комассе, там точно есть объект, который мне нужен и в нужной коллекции

Alexander
08.10.2018
17:57:44

никогда не слушайте
08.10.2018
17:58:56
Я второй день или третий уже с монго бадаюсь и пока я не стремлюсь за качеством кода... мне бы как бы, пришли данные, проверить данные, записать данные... на данном этапе меня вроде как больше ничего не интересует)
кроме как ошибки в консоле)

AstraSerg
08.10.2018
17:59:08

KhuzhA.GQ
08.10.2018
18:02:08

Alexander
08.10.2018
18:03:03

никогда не слушайте
08.10.2018
18:03:44

KhuzhA.GQ
08.10.2018
18:04:01

AstraSerg
08.10.2018
18:09:12
Не, я спрашиваю ваши запросы если в консоли выполнить, работает?

никогда не слушайте
08.10.2018
18:10:45
Ща через Postman попробую.
Я по факту ничего не делаю.
Просто перехожу по урлу, открываю коннект, закрываю коннект. Все...
Никаких запросов и т.д.

AstraSerg
08.10.2018
18:12:04
Просто я в монгузе, как ? в апельсинах :)

никогда не слушайте
08.10.2018
18:24:16
Да дичь какая-то...
Вроде все пашет, но зачем мне каждый раз такое вываливать в консоль
Ща пойду ишью почитаю

Google

никогда не слушайте
08.10.2018
18:25:51
М, кайф, у них ишью нет...
Пришлось на редеете тему запилить)
Мда, просто целый день в никуда, так я и не понял от куда этот варниннг лезет

Gleb
08.10.2018
21:38:59
ребята, я подвис с $lookup. Он как то не так работает в монгусе, да?

Alexander
08.10.2018
21:40:18
А как он должен работать?

Gleb
08.10.2018
21:41:14
это я к тому, что есть ли разница в работе без монгуса или нет

Alexander
08.10.2018
21:41:32
Ну, в плане?

Gleb
08.10.2018
21:41:54
может просто есть очевидные моменты. если нет, то тогда щас распишу кейс

Alexander
08.10.2018
21:41:56
Монгуз на нативном драйвере работает так-то

Gleb
08.10.2018
21:42:33
да, щас
короче есть коллекция тикетов. есть коллекция сообщений. у каждого сообщения назначен тикет через ref.
мне нужно получить сколько-то тикетов и к ним получить последние 3 сообщения
сейчас покажу как у меня это выглядит
let tickets = await Ticket.aggregate([
{ $match: { opened: true}},
{
$lookup: {
from: 'messages',
let: { tid: '$_id' },
pipeline: [
{ $sort: { createdAt: -1 } },
{ $limit: 3 },
{ $match: { $expr: {ticket: '$$tid' }}},
],
as: 'messages'
}
},
])

Alexander
08.10.2018
21:44:33
А шо не так?

Gleb
08.10.2018
21:45:01
он выдает месседжи только по одному тикету, который был первым в запросе

Alexander
08.10.2018
21:45:17
Ну значит не матчится

Gleb
08.10.2018
21:45:20
то есть в итоге в каждом тикете у меня получаются месседжи для одного первого тикета
дап ) в этом и вопрос. не пойму где криво
читаю доку, вроде все верно делаю

Google

Alexander
08.10.2018
21:46:04
А у тебя в pipeline $match идёт последним, так должно быть?

Gleb
08.10.2018
21:46:22
по тикетам да, иначе не срабатывает сортировка

Alexander
08.10.2018
21:46:35
Ща

Gleb
08.10.2018
21:46:36
сорри, по месседжам

Alexander
08.10.2018
21:46:36
Поняо
Вижу

Gleb
08.10.2018
21:47:30
поправил, у меня там в let не хватало $

Alexander
08.10.2018
21:48:22
Получилось?

Gleb
08.10.2018
21:48:53
нене, не помогает

Alexander
08.10.2018
21:48:57
Пиши $match: { $expr :{ $eq:['$ticket', '$$ttid']}}
Пробуй так

Gleb
08.10.2018
21:50:06
теперь в пером тикете есть, а в остальных пусто

Alexander
08.10.2018
21:50:54
Ты match вверх передвинь, как я понял. Он же там лимитит сразу и потом матчит
Мб поэтому

Gleb
08.10.2018
21:51:20
щас