TGViewer
Заметки Бэкендера Заметки Бэкендера @backend_it · 18.9K subscribers
Post #5048 312
❗️Баг с долларом в JavaScript replace

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

Проблема оказалась в семантике String.prototype.replace: в JavaScript знак $ — служебный символ для подстановок. Когда Postgres-запрос с долларовыми кавычками $$meta$$ проходил через JS-шаблонную замену, символы $ интерпретировались как команды, а не как часть строки.


Отличный пример того, как знание особенностей языка может спасти от неочевидных багов в продакшене

🔥Ссылка на статью

Заметки Бэкендера & Max
More from @backend_it
  1. Sep 26, 2026❗️Создание скриптового языка для WireMock Что делать, когда стандартного языка для мок-сер…
  2. Sep 26, 2026Post #5047
  3. Sep 25, 2026❗️Курс Amazon DynamoDB — Полное руководство: знакомство с готовым к промышленному использо…
  4. Sep 25, 2026❗️Effect TS: зачем пробовать функциональный фреймворк Надоело бороться с неожиданными ошиб…
  5. Sep 24, 2026❗️Курс Создание сервера баз данных: узнайте, как работают системы баз данных, следуя этому…
  6. Sep 24, 2026❗️SSH-туннели: локальный и удалённый проброс портов Запутался в командах SSH-проброса порт…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →