Максим
современная малварь умеет сканировать диск на предмет конфигурационных файлов популярных фрейморков или продуктов
Там не мальварь скорее, просто лазают боты по сети, сканируют порты и пытаются искать открытые для доступа бд и дропают их, оставляют сообщение о выкупе. Как то посмотрел на сервере активности, там каждый день пачки китайских ип пытаются по ссш залогиниться. Можно для эксперимента в атласе бд открытую оставить и посмотреть что будет 😁
Максим
Может даже лог можно посмотреть и выяснить качают ли бд, шифруют или дропают
Максим
Чтобы понимать, есть ли вообще смысл думать, платить ли
Максим
Этот момент мне тоже интересен
Вот можно на эту тему поспрашивать. Нужно посмотреть объем бд. Есть ли там вообще что-то или там только вот этот документ с запиской?
Максим
Если есть, то возможно зашифровано, если нет то дропнули. Если дропнули, выяснить качали ли.
Kozimjon
Вот такая ситуация с бд Было две бд - casting и casting_dev 1й полностью дропнут, 2й очищен - то есть сам док есть, но пустой
Максим
Вот такая ситуация с бд Было две бд - casting и casting_dev 1й полностью дропнут, 2й очищен - то есть сам док есть, но пустой
Ну это выяснилось. Значит интересно было бы узнать качали ли они что-то. По поводу угроз, можно не волноваться. Нужно отправить ему дикпик на почту 😂
Kozimjon
А вы случайно в биткоинах не раздаете свой профит? А то мне как раз нужны были, совсем немного, ровно 0,02
Kozimjon
Если есть, то возможно зашифровано, если нет то дропнули. Если дропнули, выяснить качали ли.
вот логи - подключились - дропнули все - я единственное не понял подчеркнутую строку - что за запрос и что он делает не подскажете?
Kozimjon
Дропает базу. Сначала дропнули коллекции, потом базу
не, это ясно)) просто хотели уточнить - делал ли он какой-нибудь бэкап, чтоб хотя бы появилась надежда, что после оплаты все вернут))) чисто ради интереса логи глянул
Viktar
да не, плата за урок - реальные данные)))
Это не оплата. Они имеют ценность только для вас.
Yura
Ребят, а я могу использовать бесплатную БД для простенького приложения с количеством юзеров менее 5000 и объёмом базы в пару мегабайт? Есть какие-нибудь подводные камни?
Anonymous
Ага, атлас
Ну до атласа большой пинг. Ответы на запросы слишком долго будут приходить. А так можно
Yura
Ну впринципе терпимо
Ruslan
привет. есть ли в монге какой-нибудь bulk только для find? мне нужно выполнить find N раз в цикле. но вызывать find N раз не очень. хотелось бы какой-нибудь bulk/batch, которые отправит все эти find команды одним запросом. в монге есть bulk, но он работает только с записью в бд как я понял. можно конечно отправить один find, но все запросы кинуть в $or. но там потом весь результат будет в одном массиве. а мне так не надо пример: бд: [ { "type": "car", "name": "123" }, { "type": "car", "name": "456" }, { "type": "boat", "name": "abc" } ] в коде цикл for по массиву type из какого-нибудь пейлоада: it. 1: find({ type: type[0] }) // 'car' it. 2: find({ type: type[1] }) // 'boat' .... мне нельзя использовать for, т.к. внутри цикла может быть 2к+ итераций. т.е. find будет вызываться 2к+ раз. можно через $or одним find. но тогда я получу массив объектов. а мне бы массив массивов объектов: [ [ { "type": "car", "name": "123" }, { "type": "car", "name": "456" } ], [ { "type": "boat", "name": "abc" } ] ] какой-нибудь bulk/batch помог бы
Ilya
агрегации?
Ruslan
агрегации?
т.е. группировать по type?
Максим
Это он с до получается подключился?
Kozimjon
Получается так. Но там в логах было что-то о питоне
Максим
Получается так. Но там в логах было что-то о питоне
Это драйвер которым он подлючался. Код на питоне у него.
Максим
Можно конечно в поддержку до написать, если есть желание. Не факт конечно что он свою кредитную карту использовал. Но всё же.
Максим
ping 134.209.170.96 Сервак по крайней мере ещё живой
Максим
Почта там анонимная. Интересно, можно ли с ней что-то сделать..
Anonymous
привет, подскажите пожалуйста, как удалить документ вместе с рефом на него из другой колекции?
Anonymous
Чтобы не писать вот так const cart = await Cart.findOneAndDelete({ _id: cartId }); const user = await User.findOneAndUpdate({ username }, { $pull: { cart: cart._id } });
Nick
Чтобы не писать вот так const cart = await Cart.findOneAndDelete({ _id: cartId }); const user = await User.findOneAndUpdate({ username }, { $pull: { cart: cart._id } });
это нормальный способ. Каскадное удаление - часть бизнес логики, бизнес логику реализовываете в коде приложения. Возможно в монгусе есть какието опции, но то что видел 9https://stackoverflow.com/questions/14348516/cascade-style-delete-in-mongoose) по сути там тоже самое, только чуть упрощающее жизнь через мидлвари
Ilya
лично я создаю админа (как рут) и для каждой бд своего юзера, везде стоят пароли 20 символов
Kozimjon
какие юзеры и с какими ролями были вообще?
только рут юзер со всеми правами у бд был пароль 🤷‍♂️🤷‍♂️
Nick
это мидлваре монгуса?
да, pre/post save/delete/update
Anonymous
спасибо, почитаю
Ilya
и какой пароль был по сложности?
Kozimjon
и какой пароль был по сложности?
😂😂 8 символов - из категории стандартных
Kozimjon
Kozimjon
12345678?
почти
Максим
почти
А там в логе много строк. Это его попытки подобрать пароль?
Maxim
Добрый день, подскажите, пожалуйста как сделать запрос с условием мне нужно получить из бд данные которые были изменены больше часа назад В бд есть поле dateChange и туда записывается дата последнего изменения Можно ли это сразу сделать в запросе к коллекции или так нельзя сделать?
Ilya
можно на пароль посмотреть теперь?)
Ilya
раз его уже знают
Andrey
ping 134.209.170.96 Сервак по крайней мере ещё живой
не факт что живой, там динамически IP раздаются инстансам, а вот написать абузу в их SOC - с приложением логов и прувов
Andrey
Вообщем, DO - очень быстро реагирует на абузы, и ему точно заблочат аккаунт
Kozimjon
можно на пароль посмотреть теперь?)
да, сменим везде где этот пароль есть - потом только могу сказать)
Ilya
ок
Ilya
а набор символов хотя бы какой?
Kozimjon
а набор символов хотя бы какой?
там точно есть 1234 😂😂
Ilya
1234qwer
Bogdan
4321
Kozimjon
1234qwer
не, у тебя еще 13 попыток
Kozimjon
Bogdan
admin1234
Bogdan
root1234
Kozimjon
admin1234
-. Там еще есть @
Bogdan
sobaka1234
Anonymous
ПХАХАХ
Максим
с 14й попытки подобрал
Вот как. Думал они ищут только бд без пароля. Они ещё и брутфорсят.
Viktar
Господа подскажите есть в документе массив [ {id:1, value:1}, {id:2, value:2}, {id:3, value:3}, {id:4, value:4}, ... {id:n, value:n} ] хочу в агрегации его отфильтровать, оставить те значения, которые удовлетворяют какому нибудь условию ну например все элементы где value >3, но не знаю как?
Максим
Тогда нужно настраивать и файрвол и допустимые ип. А бд на одном сервере с приложением?
Максим
axa
Тогда в конфиге монги нужно вообще только для локахоста доступ оставить. А если нужно с компаса подключаться, то делать проброс порта монги по ссш на свою локальную машину.
Viktar
https://docs.mongodb.com/manual/reference/operator/aggregation/filter/#mongodb-expression-exp.-filter
db.sales.aggregate([ { $project: { items: { $filter: { input: "$items", as: "item", cond: { $gte: [ "$$item.price", 100 ] } } } } } ]) Этот пример решил мою задачу
Anonymous
import {CartSchema, ICartSchema} from "../models/shop/Cart"; CartSchema.post("remove", (doc: ICartSchema) => { console.log(doc._id); }); const cart = await Cart.findOne({ _id: cartId }); await cart.remove(); почему я не попадаю в мидлваре