Bun Lockfiles ਅਤੇ ਤੁਹਾਡੀ ਸਪਲਾਈ ਚੇਨ ਸੁਰੱਖਿਆ
ਬਾਈਨਰੀ ਲੌਕਫਾਈਲਾਂ (Binary lockfiles) ਇੱਕ ਸੁਰੱਖਿਆ ਟੈਕਸ ਹਨ—ਤੁਸੀਂ ਇਸਦਾ ਭੁਗਤਾਨ ਬਾਅਦ ਵਿੱਚ ਵਿਆਜ ਸਮੇਤ ਕਰਦੇ ਹੋ।
Bun ਪਹਿਲਾਂ ਡਿਪੈਂਡੈਂਸੀਆਂ (dependencies) ਨੂੰ bun.lockb ਨਾਮਕ ਇੱਕ ਬਾਈਨਰੀ ਫਾਈਲ ਵਿੱਚ ਸਟੋਰ ਕਰਦਾ ਸੀ। ਇਹ ਤੇਜ਼ ਅਤੇ ਛੋਟੀ ਸੀ, ਪਰ ਤੁਸੀਂ ਇਸਨੂੰ ਪੜ੍ਹ ਨਹੀਂ ਸਕਦੇ ਸੀ। ਤੁਸੀਂ ਪੁੱਲ ਰਿਕਵੈਸਟ (pull request) ਵਿੱਚ ਇਸਦਾ ਡਿਫ (diff) ਨਹੀਂ ਦੇਖ ਸਕਦੇ ਸੀ, ਅਤੇ ਤੁਸੀਂ ਇਹ ਵੀ ਨਹੀਂ ਦੇਖ ਸਕਦੇ ਸੀ ਕਿ ਕੀ ਬਦਲਿਆ ਹੈ।
ਜਦੋਂ ਤੁਸੀਂ ਕਿਸੇ ਡਿਪੈਂਡੈਂਸੀ ਦੇ ਬਦਲਾਅ ਦੀ ਸਮੀਖਿਆ ਨਹੀਂ ਕਰ ਸਕਦੇ, ਤਾਂ ਤੁਹਾਡੇ ਕੋਲ ਕੋਈ ਨੀਤੀ ਨਹੀਂ ਹੁੰਦੀ—ਬਸ ਇੱਕ ਅੰਦਾਜ਼ਾ ਹੁੰਦਾ ਹੈ।
Bun v1.2 ਡਿਫਾਲਟ ਨੂੰ ਟੈਕਸਟ-ਅਧਾਰਤ bun.lock ਵਿੱਚ ਬਦਲ ਦਿੰਦਾ ਹੈ। ਇਹ ਇਕੱਲਾ ਹੀ ਸੁਰੱਖਿਆ ਦੇ ਪੱਖੋਂ ਇੱਕ ਵੱਡੀ ਜਿੱਤ ਹੈ।
ਟੈਕਸਟ-ਅਧਾਰਤ ਲੌਕਫਾਈਲਾਂ ਕਿਉਂ ਮਹੱਤਵਪੂਰਨ ਹਨ
- ਅਰਥਪੂਰਨ ਡਿਫ (Meaningful diffs) – ਰਿਵਿਊਅਰਜ਼ (reviewers) ਸਹੀ ਤਰ੍ਹਾਂ ਦੇਖ ਸਕਦੇ ਹਨ ਕਿ ਕਿਹੜੇ ਪੈਕੇਜ ਹਿੱਲੇ ਹਨ ਜਾਂ ਬਦਲੇ ਹਨ।
- ਸੌਖੀਆਂ ਨੀਤੀ ਚੈੱਕਾਂ (Easy policy checks) – CI ਬੈਨ ਕੀਤੇ ਗਏ ਪੈਟਰਨਾਂ ਜਾਂ ਅਣਭਰੋਸੇਯੋਗ ਰਜਿਸਟਰੀਆਂ ਲਈ ਸਕੈਨ ਕਰ ਸਕਦਾ ਹੈ।
- ਤੇਜ਼ ਫੋਰੈਂਸਿਕਸ (Faster forensics) –
git logਉਸ ਸਹੀ ਕਮਿਟ (commit) ਨੂੰ ਦਰਸਾਉਂਦਾ ਹੈ ਜਿਸ ਨੇ ਇੱਕ ਮਾਲੀਸ਼ੀਅਸ (malicious) ਪੈਕੇਜ ਨੂੰ ਸ਼ਾਮਲ ਕੀਤਾ ਸੀ।
ਇੱਕ ਲੌਕਫਾਈਲ ਅਖੰਡਤਾ (integrity) ਅਤੇ ਦੁਬਾਰਾ ਪੈਦਾ ਕਰਨਯੋਗਤਾ (reproducibility) ਦੀ ਗਾਰੰਟੀ ਦਿੰਦੀ ਹੈ, ਪਰ ਇਹ ਕੋਈ ਜਾਦੂਈ ਹੱਲ (silver bullet) ਨਹੀਂ ਹੈ। ਇਹ ਕਿਸੇ ਅਜਿਹੇ ਮਾਲੀਸ਼ੀਅਸ ਵਰਜ਼ਨ ਨੂੰ ਨਹੀਂ ਰੋਕ ਸਕਦੀ ਜੋ ਜਾਇਜ਼ ਤੌਰ 'ਤੇ ਪ੍ਰਕਾਸ਼ਿਤ ਕੀਤਾ ਗਿਆ ਸੀ, ਅਤੇ ਨਾ ਹੀ ਕਿਸੇ ਨਾਲ ਛੇੜਛਾੜ ਕੀਤੇ ਗਏ ਮੇਨਟੇਨਰ (maintainer) ਨੂੰ।
ਟੈਕਸਟ ਲੌਕਫਾਈਲ ਜੋ ਜੋੜਦੀ ਹੈ ਉਹ ਹੈ ਦਿਖਾਈ ਦੇਣਾ (visibility)। ਦਿਖਾਈ ਦੇਣਾ ਤੁਹਾਡੀ ਰੱਖਿਆ ਦੀ ਪਹਿਲੀ ਲਾਈਨ ਹੈ।
ਆਪਣੇ Bun ਵਰਕਫਲੋ (workflow) ਨੂੰ ਕਿਵੇਂ ਸੁਰੱਖਿਅਤ ਕਰਨਾ ਹੈ
- CI ਵਿੱਚ
bun install --frozen-lockfileਚਲਾਓ। ਜੇਕਰ ਲੌਕਫਾਈਲ ਨੂੰ ਅਪਡੇਟ ਦੀ ਲੋੜ ਹੈ, ਤਾਂ ਬਿਲਡ ਫੇਲ ਹੋ ਜਾਵੇਗਾ। - CI ਵਿੱਚ
bun install --lockfile-onlyਚਲਾਓ। ਤੁਸੀਂ ਭਾਰੀ ਇੰਸਟਾਲ ਸਕ੍ਰਿਪਟਾਂ ਨੂੰ ਚਲਾਏ ਬਿਨਾਂ ਰੈਜ਼ੋਲੂਸ਼ਨ (resolution) ਦੀ ਪੁਸ਼ਟੀ ਕਰ ਸਕਦੇ ਹੋ। - ਕਿਸੇ ਵੀ bun.lockb ਫਾਈਲਾਂ ਨੂੰ ਤੁਰੰਤ bun.lock ਵਿੱਚ ਮਾਈਗ੍ਰੇਟ ਕਰੋ।
- ਲੌਕਫਾਈਲ ਦੇ ਬਦਲਾਅ ਲਈ ਮਨੁੱਖੀ ਸਮੀਖਿਆ (human review) ਦੀ ਮੰਗ ਕਰੋ।
CODEOWNERSਵਿੱਚ ਉਚਿਤ ਮਾਲਕਾਂ ਨੂੰ ਸ਼ਾਮਲ ਕਰੋ ਤਾਂ ਜੋ ਸਹੀ ਲੋਕ ਹਰ ਡਿਪੈਂਡੈਂਸੀ ਅਪਡੇਟ ਨੂੰ ਦੇਖ ਸਕਣ।
ਟੂਲ 'ਤੇ ਅੰਨ੍ਹੇਵਾਹ ਭਰੋਸਾ ਕਰਨਾ ਬੰਦ ਕਰੋ। ਇਸ ਦੀ ਬਜਾਏ ਹਰ ਬਦਲਾਅ ਦੀ ਪੁਸ਼ਟੀ ਕਰੋ।
