ਕ੍ਰੋਮ ਐਕਸਟੈਂਸ਼ਨ ਮੈਨੀਫੈਸਟ V3 ਵਿੱਚ ਸਮਗਰੀ ਸੁਰੱਖਿਆ ਨੀਤੀ ਸਮੱਸਿਆਵਾਂ ਨੂੰ ਹੱਲ ਕਰਨਾ

ਕ੍ਰੋਮ ਐਕਸਟੈਂਸ਼ਨ ਮੈਨੀਫੈਸਟ V3 ਵਿੱਚ ਸਮਗਰੀ ਸੁਰੱਖਿਆ ਨੀਤੀ ਸਮੱਸਿਆਵਾਂ ਨੂੰ ਹੱਲ ਕਰਨਾ
ਕ੍ਰੋਮ ਐਕਸਟੈਂਸ਼ਨ ਮੈਨੀਫੈਸਟ V3 ਵਿੱਚ ਸਮਗਰੀ ਸੁਰੱਖਿਆ ਨੀਤੀ ਸਮੱਸਿਆਵਾਂ ਨੂੰ ਹੱਲ ਕਰਨਾ

ਮੈਨੀਫੈਸਟ V3 ਐਕਸਟੈਂਸ਼ਨਾਂ ਵਿੱਚ ਸਮਗਰੀ ਸੁਰੱਖਿਆ ਨੀਤੀ ਦੀਆਂ ਗਲਤੀਆਂ ਨੂੰ ਦੂਰ ਕਰਨਾ

ਇੱਕ Chrome ਐਕਸਟੈਂਸ਼ਨ ਦਾ ਵਿਕਾਸ ਕਰਨਾ ਇੱਕ ਦਿਲਚਸਪ ਪ੍ਰੋਜੈਕਟ ਹੋ ਸਕਦਾ ਹੈ, ਪਰ ਇਹ ਅਕਸਰ ਵਿਲੱਖਣ ਚੁਣੌਤੀਆਂ ਨਾਲ ਆਉਂਦਾ ਹੈ—ਖਾਸ ਕਰਕੇ Manifest V3 ਵਿੱਚ ਹਾਲੀਆ ਅੱਪਡੇਟ ਨਾਲ। ਡਿਵੈਲਪਰਾਂ ਦਾ ਇੱਕ ਆਮ ਰੁਕਾਵਟ ਸੰਰਚਨਾ ਕਰ ਰਿਹਾ ਹੈ ਸਮੱਗਰੀ ਸੁਰੱਖਿਆ ਨੀਤੀ (CSP) ਸਹੀ ਢੰਗ ਨਾਲ. ਇਹ ਨੀਤੀ ਸੁਰੱਖਿਆ ਨੂੰ ਬਣਾਈ ਰੱਖਣ ਲਈ ਜ਼ਰੂਰੀ ਹੈ, ਫਿਰ ਵੀ ਇਹ ਅਚਾਨਕ ਗਲਤੀਆਂ ਵੀ ਪੇਸ਼ ਕਰ ਸਕਦੀ ਹੈ ਜੋ ਐਕਸਟੈਂਸ਼ਨ ਨੂੰ ਉਦੇਸ਼ ਅਨੁਸਾਰ ਕੰਮ ਕਰਨ ਤੋਂ ਰੋਕਦੀ ਹੈ। 🚧

ਕਿਸੇ ਐਕਸਟੈਂਸ਼ਨ ਨੂੰ ਸੰਪੂਰਨ ਕਰਨ ਲਈ ਦਿਨ ਬਿਤਾਉਣ ਦੀ ਕਲਪਨਾ ਕਰੋ, ਕੇਵਲ ਇੱਕ ਅਵੈਧ CSP ਸੰਰਚਨਾ ਦੇ ਕਾਰਨ ਇਸਨੂੰ Chrome ਵੈੱਬ ਸਟੋਰ ਦੁਆਰਾ ਰੱਦ ਕਰਨ ਲਈ। ਇਹ ਸਮੱਸਿਆ ਖਾਸ ਤੌਰ 'ਤੇ ਨਿਰਾਸ਼ਾਜਨਕ ਹੋ ਸਕਦੀ ਹੈ ਜਦੋਂ ਤੁਹਾਡੇ ਐਕਸਟੈਂਸ਼ਨ ਨੂੰ ਬਾਹਰੀ API ਨਾਲ ਸੁਰੱਖਿਅਤ ਢੰਗ ਨਾਲ ਸੰਚਾਰ ਕਰਨ ਦੀ ਲੋੜ ਹੁੰਦੀ ਹੈ, ਜਿਵੇਂ ਕਿ `api.example.com` 'ਤੇ API ਅੰਤਮ ਬਿੰਦੂ। ਅਜਿਹੀ ਬਾਹਰੀ ਪਹੁੰਚ ਦੀ ਇਜਾਜ਼ਤ ਦੇਣ ਲਈ CSP ਨੂੰ ਸੈਟ ਅਪ ਕਰਨ ਦੀ ਕੋਸ਼ਿਸ਼ ਸਿੱਧੇ ਲੱਗ ਸਕਦੀ ਹੈ, ਪਰ ਹਾਲ ਹੀ ਦੇ ਮੈਨੀਫੈਸਟ V3 ਤਬਦੀਲੀਆਂ ਇਸ ਸੈੱਟਅੱਪ ਨੂੰ ਕਾਫ਼ੀ ਗੁੰਝਲਦਾਰ ਬਣਾ ਸਕਦੀਆਂ ਹਨ।

ਇਸ ਪੋਸਟ ਵਿੱਚ, ਅਸੀਂ ਮੈਨੀਫੈਸਟ V3 ਵਿੱਚ CSP ਪ੍ਰਮਾਣਿਕਤਾ ਤਰੁਟੀਆਂ ਦੇ ਨਾਲ ਇੱਕ ਡਿਵੈਲਪਰ ਦੀ ਯਾਤਰਾ ਵਿੱਚ ਡੁਬਕੀ ਲਗਾਵਾਂਗੇ। ਅਜ਼ਮਾਇਸ਼ ਅਤੇ ਅਸ਼ੁੱਧੀ ਦੁਆਰਾ, ਤੁਸੀਂ `content_security_policy` ਖੇਤਰ ਨੂੰ ਸਹੀ ਢੰਗ ਨਾਲ ਫਾਰਮੈਟ ਕਰਨ ਦੀਆਂ ਕਈ ਕੋਸ਼ਿਸ਼ਾਂ ਦੇਖੋਗੇ। ਹਰ ਕੋਸ਼ਿਸ਼ ਆਮ ਗਲਤੀਆਂ ਅਤੇ ਅਧਿਕਾਰਤ ਦਸਤਾਵੇਜ਼ਾਂ ਤੋਂ ਖਿੱਚੀਆਂ ਉਪਯੋਗੀ ਸੂਝਾਂ ਦੇ ਨਾਲ, ਹੱਲ ਦੇ ਨੇੜੇ ਇੱਕ ਕਦਮ ਨੂੰ ਦਰਸਾਉਂਦੀ ਹੈ।

ਭਾਵੇਂ ਤੁਸੀਂ ਇੱਕ AdBlocker, ਇੱਕ ਉਤਪਾਦਕਤਾ ਟੂਲ, ਜਾਂ ਕੋਈ ਹੋਰ ਐਕਸਟੈਂਸ਼ਨ ਬਣਾ ਰਹੇ ਹੋ, ਇਹ ਗਾਈਡ CSP ਲੋੜਾਂ ਨੂੰ ਸਪੱਸ਼ਟ ਕਰੇਗੀ, ਪ੍ਰਮਾਣਿਕਤਾ ਤਰੁਟੀਆਂ ਦੇ ਨਿਪਟਾਰੇ ਵਿੱਚ ਤੁਹਾਡੀ ਮਦਦ ਕਰੇਗੀ, ਅਤੇ ਇਹ ਯਕੀਨੀ ਬਣਾਉਣ ਵਿੱਚ ਤੁਹਾਡੀ ਮਦਦ ਕਰੇਗੀ ਕਿ ਤੁਹਾਡਾ ਐਕਸਟੈਂਸ਼ਨ ਸੁਰੱਖਿਅਤ ਅਤੇ ਅਨੁਕੂਲ ਹੈ। ਆਉ ਇਹਨਾਂ ਸੀਐਸਪੀ ਰੁਕਾਵਟਾਂ ਨੂੰ ਪਾਰ ਕਰਨ ਦੀ ਨਿੱਕੀ-ਨਿੱਕੀ ਗੱਲ ਵਿੱਚ ਸ਼ਾਮਲ ਹੋਈਏ!

ਹੁਕਮ ਵਰਤੋਂ ਅਤੇ ਵਰਣਨ ਦੀ ਉਦਾਹਰਨ
host_permissions ਇੱਕ Chrome ਐਕਸਟੈਂਸ਼ਨ ਨੂੰ ਮੈਨੀਫੈਸਟ V3 ਵਿੱਚ ਖਾਸ ਬਾਹਰੀ ਡੋਮੇਨਾਂ ਲਈ ਅਨੁਮਤੀਆਂ ਦੀ ਬੇਨਤੀ ਕਰਨ ਦੀ ਇਜਾਜ਼ਤ ਦਿੰਦਾ ਹੈ, ਉਦਾਹਰਨ ਲਈ, "host_permissions": ["https://api.example.com/*"]। ਇਹ Chrome ਵੈੱਬ ਸਟੋਰ ਦੀਆਂ ਸੁਰੱਖਿਆ ਲੋੜਾਂ ਦਾ ਆਦਰ ਕਰਦੇ ਹੋਏ ਬਾਹਰੀ ਸਰੋਤਾਂ ਤੱਕ ਸੁਰੱਖਿਅਤ ਪਹੁੰਚ ਨੂੰ ਸਮਰੱਥ ਬਣਾਉਂਦਾ ਹੈ।
content_security_policy ਐਕਸਟੈਂਸ਼ਨ ਲੋਡ ਕਰ ਸਕਣ ਵਾਲੇ ਸਰੋਤਾਂ ਨੂੰ ਸੀਮਤ ਕਰਨ ਲਈ ਮੈਨੀਫੈਸਟ ਵਿੱਚ ਸੁਰੱਖਿਆ ਨਿਯਮਾਂ ਨੂੰ ਪਰਿਭਾਸ਼ਿਤ ਕਰਦਾ ਹੈ। ਮੈਨੀਫੈਸਟ V3 ਵਿੱਚ, ਇਸ ਵਿੱਚ ਅਕਸਰ ਐਕਸਟੈਂਸ਼ਨਾਂ ਲਈ ਇੱਕ ਸੈਂਡਬਾਕਸਡ ਨੀਤੀ ਨਿਰਧਾਰਤ ਕਰਨਾ ਸ਼ਾਮਲ ਹੁੰਦਾ ਹੈ, ਉਦਾਹਰਨ ਲਈ, "content_security_policy": { "extension_pages": "script-src 'self'; object-src 'self';" }.
fetch HTTP ਬੇਨਤੀਆਂ ਕਰਨ ਲਈ JavaScript ਵਿੱਚ ਵਰਤੀ ਗਈ ਇੱਕ ਵਿਧੀ, ਖਾਸ ਤੌਰ 'ਤੇ API ਤੋਂ ਡਾਟਾ ਪ੍ਰਾਪਤ ਕਰਨ ਲਈ ਸੇਵਾ ਕਰਮਚਾਰੀਆਂ ਵਿੱਚ ਉਪਯੋਗੀ। ਇੱਥੇ, ਇਸਦੀ ਵਰਤੋਂ ਬਾਹਰੀ URL ਤੋਂ ਸੁਰੱਖਿਅਤ ਢੰਗ ਨਾਲ ਡਾਟਾ ਪ੍ਰਾਪਤ ਕਰਨ ਲਈ ਕੀਤੀ ਜਾਂਦੀ ਹੈ, ਉਦਾਹਰਨ ਲਈ, fetch('https://api.example.com/data')।
chrome.runtime.onInstalled.addListener Registers an event that runs when the Chrome extension is installed, enabling developers to initialize settings or perform setup tasks, e.g., chrome.runtime.onInstalled.addListener(() =>ਇੱਕ ਇਵੈਂਟ ਰਜਿਸਟਰ ਕਰਦਾ ਹੈ ਜੋ Chrome ਐਕਸਟੈਂਸ਼ਨ ਦੇ ਸਥਾਪਿਤ ਹੋਣ 'ਤੇ ਚੱਲਦਾ ਹੈ, ਡਿਵੈਲਪਰਾਂ ਨੂੰ ਸੈਟਿੰਗਾਂ ਸ਼ੁਰੂ ਕਰਨ ਜਾਂ ਸੈੱਟਅੱਪ ਕਾਰਜ ਕਰਨ ਦੇ ਯੋਗ ਬਣਾਉਂਦਾ ਹੈ, ਉਦਾਹਰਨ ਲਈ, chrome.runtime.onInstalled.addListener(() => {...})।
chrome.runtime.onMessage.addListener ਐਕਸਟੈਂਸ਼ਨ ਦੇ ਅੰਦਰ ਸੁਨੇਹਿਆਂ ਨੂੰ ਸੁਣਦਾ ਹੈ, ਵੱਖ-ਵੱਖ ਭਾਗਾਂ (ਉਦਾਹਰਨ ਲਈ, ਸੇਵਾ ਕਰਮਚਾਰੀ ਅਤੇ ਸਮੱਗਰੀ ਸਕ੍ਰਿਪਟਾਂ) ਨੂੰ ਸੰਚਾਰ ਕਰਨ ਲਈ ਸਮਰੱਥ ਬਣਾਉਂਦਾ ਹੈ। ਇੱਥੇ, ਇਹ API ਕਾਲਾਂ ਨੂੰ ਟਰਿੱਗਰ ਕਰਨ ਲਈ ਇੱਕ "fetchData" ਕਮਾਂਡ ਦੀ ਪ੍ਰਕਿਰਿਆ ਕਰਦਾ ਹੈ।
sendResponse ਇੱਕ Chrome ਐਕਸਟੈਂਸ਼ਨ ਸੁਨੇਹਾ-ਪਾਸਿੰਗ ਸਿਸਟਮ ਵਿੱਚ ਸੁਨੇਹਾ ਭੇਜਣ ਵਾਲੇ ਨੂੰ ਜਵਾਬ ਵਾਪਸ ਭੇਜਦਾ ਹੈ, ਕਾਲਰ ਨੂੰ API ਡੇਟਾ ਵਾਪਸ ਕਰਨ ਲਈ ਇੱਥੇ ਵਰਤਿਆ ਜਾਂਦਾ ਹੈ। ਇਹ ਸੰਦੇਸ਼-ਅਧਾਰਤ ਢਾਂਚੇ ਵਿੱਚ ਅਸਿੰਕ੍ਰੋਨਸ ਜਵਾਬਾਂ ਦੇ ਪ੍ਰਬੰਧਨ ਲਈ ਮਹੱਤਵਪੂਰਨ ਹੈ।
fetchMock ਯੂਨਿਟ ਟੈਸਟਾਂ ਵਿੱਚ ਪ੍ਰਾਪਤ ਕਰਨ ਦੀਆਂ ਬੇਨਤੀਆਂ ਦਾ ਮਖੌਲ ਕਰਨ ਲਈ ਇੱਕ ਟੈਸਟਿੰਗ ਲਾਇਬ੍ਰੇਰੀ। ਇਹ ਤੁਹਾਨੂੰ ਇੱਕ API ਤੋਂ ਜਵਾਬਾਂ ਦੀ ਨਕਲ ਕਰਨ ਦੀ ਇਜਾਜ਼ਤ ਦਿੰਦਾ ਹੈ, ਮਜ਼ਬੂਤ ​​​​ਟੈਸਟ ਦ੍ਰਿਸ਼ਾਂ ਨੂੰ ਸਮਰੱਥ ਬਣਾਉਂਦਾ ਹੈ, ਉਦਾਹਰਨ ਲਈ, fetchMock.get('https://api.example.com/data', ...)।
expect ਟੈਸਟ ਦੇ ਨਤੀਜਿਆਂ ਨੂੰ ਪ੍ਰਮਾਣਿਤ ਕਰਨ ਲਈ ਵਰਤੀ ਜਾਂਦੀ ਚਾਈ ਅਸੈਸਸ਼ਨ ਲਾਇਬ੍ਰੇਰੀ ਤੋਂ ਇੱਕ ਕਮਾਂਡ। ਇਸਦੀ ਵਰਤੋਂ ਇੱਥੇ ਪੁਸ਼ਟੀ ਕਰਨ ਲਈ ਕੀਤੀ ਜਾਂਦੀ ਹੈ ਕਿ API ਕਾਲਾਂ ਸੰਭਾਵਿਤ ਵਿਸ਼ੇਸ਼ਤਾਵਾਂ ਨੂੰ ਵਾਪਸ ਕਰਦੀਆਂ ਹਨ, ਟੈਸਟ ਭਰੋਸੇਯੋਗਤਾ ਨੂੰ ਵਧਾਉਂਦੀਆਂ ਹਨ, ਉਦਾਹਰਨ ਲਈ, expect(data).to.have.property('key')।
allow-scripts ਸੈਂਡਬੌਕਸ CSP ਡਾਇਰੈਕਟਿਵ ਵਿੱਚ ਅਨੁਮਤੀਆਂ ਨੂੰ ਪਰਿਭਾਸ਼ਿਤ ਕਰਦਾ ਹੈ, ਸਿਰਫ਼ ਸਕ੍ਰਿਪਟਾਂ ਨੂੰ ਚਲਾਉਣ ਦੀ ਇਜਾਜ਼ਤ ਦਿੰਦਾ ਹੈ। ਉਦਾਹਰਨ ਲਈ, "ਸੈਂਡਬਾਕਸ": "ਸੈਂਡਬਾਕਸ ਆਗਿਆ-ਸਕ੍ਰਿਪਟਾਂ;" ਐਕਸਟੈਂਸ਼ਨ ਦੇ ਅੰਦਰ ਸੈਂਡਬਾਕਸਡ iframe ਵਿੱਚ ਨਿਯੰਤਰਿਤ ਸਕ੍ਰਿਪਟ ਐਗਜ਼ੀਕਿਊਸ਼ਨ ਨੂੰ ਸਮਰੱਥ ਬਣਾਉਂਦਾ ਹੈ।
return true ਕ੍ਰੋਮ ਮੈਸੇਜਿੰਗ ਦੇ ਸੰਦਰਭ ਵਿੱਚ, ਇਹ ਸੁਨੇਹੇ ਪ੍ਰਤੀਕਿਰਿਆ ਚੈਨਲ ਨੂੰ ਅਸਿੰਕਰੋਨਸ ਕਾਰਵਾਈਆਂ ਲਈ ਖੁੱਲ੍ਹਾ ਰੱਖਦਾ ਹੈ, ਜਿਸ ਨਾਲ ਸੁਣਨ ਵਾਲੇ ਨੂੰ ਦੇਰੀ ਤੋਂ ਬਾਅਦ ਜਵਾਬ ਭੇਜਣ ਦੀ ਇਜਾਜ਼ਤ ਮਿਲਦੀ ਹੈ। ਐਕਸਟੈਂਸ਼ਨਾਂ ਵਿੱਚ API ਕਾਲ ਦੇ ਸਮੇਂ ਦੇ ਪ੍ਰਬੰਧਨ ਵਿੱਚ ਜ਼ਰੂਰੀ।

ਕ੍ਰੋਮ ਐਕਸਟੈਂਸ਼ਨਾਂ ਲਈ ਸਮੱਗਰੀ ਸੁਰੱਖਿਆ ਨੀਤੀ ਕੌਂਫਿਗਰੇਸ਼ਨ ਵਿੱਚ ਮੁੱਖ ਭਾਗਾਂ ਨੂੰ ਸਮਝਣਾ

ਉਦਾਹਰਨ ਸਕ੍ਰਿਪਟਾਂ ਦਾ ਉਦੇਸ਼ ਸੰਰਚਨਾ ਵਿੱਚ ਇੱਕ ਆਮ ਚੁਣੌਤੀ ਨੂੰ ਦੂਰ ਕਰਨਾ ਹੈ ਸਮੱਗਰੀ ਸੁਰੱਖਿਆ ਨੀਤੀ (CSP) Chrome ਐਕਸਟੈਂਸ਼ਨਾਂ ਲਈ ਸੈਟਿੰਗਾਂ, ਖਾਸ ਤੌਰ 'ਤੇ Manifest V3 ਵਿੱਚ। ਮੈਨੀਫੈਸਟ ਫਾਈਲ ਵਿੱਚ ਪਹਿਲੀ ਸੰਰਚਨਾ ਪਹੁੰਚ ਦੀ ਵਰਤੋਂ ਕਰਦੀ ਹੈ host_permissions ਵਿਸ਼ੇਸ਼ਤਾ. ਇਹ ਕਮਾਂਡ ਬਾਹਰੀ ਡੋਮੇਨਾਂ ਨੂੰ ਨਿਸ਼ਚਿਤ ਕਰਦੀ ਹੈ ਜਿਨ੍ਹਾਂ ਤੱਕ ਐਕਸਟੈਂਸ਼ਨ ਸਿੱਧੇ ਪਹੁੰਚ ਕਰ ਸਕਦੀ ਹੈ, ਇਸ ਕੇਸ ਵਿੱਚ, "https://api.example.com/*." ਇਸਨੂੰ ਮੈਨੀਫੈਸਟ ਵਿੱਚ ਜੋੜ ਕੇ, ਅਸੀਂ Chrome ਨੂੰ ਸੂਚਿਤ ਕਰਦੇ ਹਾਂ ਕਿ ਸਾਡੀ ਐਕਸਟੈਂਸ਼ਨ ਇੱਕ ਬਾਹਰੀ API ਨਾਲ ਸੁਰੱਖਿਅਤ ਢੰਗ ਨਾਲ ਸੰਚਾਰ ਕਰਨ ਦੀ ਯੋਜਨਾ ਬਣਾ ਰਹੀ ਹੈ, ਜੋ ਵਿਸ਼ੇਸ਼ਤਾਵਾਂ ਲਈ ਇੱਕ ਲੋੜ ਹੈ ਜੋ ਬਾਹਰੀ ਡੇਟਾ ਪ੍ਰਾਪਤ ਕਰਨ 'ਤੇ ਨਿਰਭਰ ਕਰਦੀ ਹੈ। ਦੂਜਾ ਜ਼ਰੂਰੀ ਤੱਤ, the ਸਮੱਗਰੀ_ਸੁਰੱਖਿਆ_ਨੀਤੀ, ਐਕਸਟੈਂਸ਼ਨ ਨੂੰ ਲੋਡ ਕਰਨ ਦੀ ਇਜਾਜ਼ਤ ਦਿੱਤੇ ਸਰੋਤਾਂ 'ਤੇ ਪਾਬੰਦੀ ਲਗਾਉਂਦੀ ਹੈ। ਇੱਥੇ, ਇਹ ਪਰਿਭਾਸ਼ਿਤ ਕਰਦਾ ਹੈ ਕਿ ਖਾਸ ਐਕਸਟੈਂਸ਼ਨ ਵਾਤਾਵਰਨ ਵਿੱਚ ਕਿਹੜੀਆਂ ਸਕ੍ਰਿਪਟਾਂ ਦੀ ਇਜਾਜ਼ਤ ਹੈ, ਜਿਵੇਂ ਕਿ ਸੈਂਡਬਾਕਸਡ ਪੰਨੇ, Chrome ਦੀਆਂ ਸਖ਼ਤ ਸੁਰੱਖਿਆ ਲੋੜਾਂ ਦੀ ਪਾਲਣਾ ਕਰਦੇ ਹੋਏ।

ਬੈਕਗਰਾਊਂਡ ਸਰਵਿਸ ਵਰਕਰ ਸਕ੍ਰਿਪਟ, background.js ਵਿੱਚ ਪ੍ਰਦਾਨ ਕੀਤੀ ਗਈ ਉਦਾਹਰਨ ਸਕ੍ਰਿਪਟ, ਇੱਕ ਫੰਕਸ਼ਨ ਦਾ ਲਾਭ ਲੈਂਦੀ ਹੈ ਜੋ ਬਾਹਰੀ API ਨੂੰ ਕਾਲ ਕਰਦਾ ਹੈ। ਇਹ ਫੰਕਸ਼ਨ ਅਸਿੰਕਰੋਨਸ HTTP ਬੇਨਤੀਆਂ ਨੂੰ ਸੰਭਾਲਣ ਲਈ JavaScript fetch ਕਮਾਂਡ ਦੀ ਵਰਤੋਂ ਕਰਦਾ ਹੈ, ਜੋ APIs ਤੋਂ ਡਾਟਾ ਪ੍ਰਾਪਤ ਕਰਨ ਲਈ ਜ਼ਰੂਰੀ ਹਨ। ਜਦੋਂ ਇੱਕ API ਬੇਨਤੀ ਦੀ ਲੋੜ ਹੁੰਦੀ ਹੈ, ਤਾਂ ਫੰਕਸ਼ਨ ਮਨੋਨੀਤ ਐਂਡਪੁਆਇੰਟ ਨਾਲ ਜੁੜਦਾ ਹੈ ਅਤੇ ਡੇਟਾ ਵਾਪਸ ਕਰਦਾ ਹੈ। ਇਹ ਕਾਰਜਕੁਸ਼ਲਤਾ ਚਿੰਤਾਵਾਂ ਨੂੰ ਸਾਫ਼-ਸੁਥਰਾ ਵੱਖ ਕਰਨ ਵਿੱਚ ਮਦਦ ਕਰਦੀ ਹੈ, ਜਿੱਥੇ ਹਰੇਕ ਫੰਕਸ਼ਨ ਇੱਕ ਕਾਰਵਾਈ ਕਰਦਾ ਹੈ, ਕੋਡ ਨੂੰ ਮਾਡਿਊਲਰ ਅਤੇ ਮੁੜ ਵਰਤੋਂ ਯੋਗ ਬਣਾਉਂਦਾ ਹੈ। ਇਸ ਪ੍ਰਕਿਰਿਆ ਦੀ ਸਹੂਲਤ ਲਈ, ਸਕ੍ਰਿਪਟ ਵਰਤਦੀ ਹੈ chrome.runtime.onMessage.addListener ਕੋਡਬੇਸ ਦੇ ਵੱਖ-ਵੱਖ ਹਿੱਸਿਆਂ ਵਿਚਕਾਰ ਪ੍ਰਭਾਵੀ ਸੰਚਾਰ ਨੂੰ ਯਕੀਨੀ ਬਣਾਉਣ ਲਈ, ਐਕਸਟੈਂਸ਼ਨ ਦੇ ਹੋਰ ਹਿੱਸਿਆਂ ਤੋਂ ਖਾਸ ਕਮਾਂਡਾਂ ਜਿਵੇਂ ਕਿ “fetchData” ਸੁਣਨ ਲਈ।

ਉਦਾਹਰਨ ਵਿੱਚ ਇੱਕ ਹੋਰ ਮਹੱਤਵਪੂਰਨ ਪਹਿਲੂ ਵੀ ਸ਼ਾਮਲ ਹੈ: ਗਲਤੀ ਸੰਭਾਲਣਾ। ਸਕ੍ਰਿਪਟ API ਕਾਲ ਨੂੰ ਟਰਾਈ-ਕੈਚ ਬਲਾਕ ਵਿੱਚ ਲਪੇਟਦੀ ਹੈ, ਜੋ ਕਿ ਕਿਸੇ ਵੀ ਨੈੱਟਵਰਕ-ਨਿਰਭਰ ਫੰਕਸ਼ਨ ਵਿੱਚ ਮਹੱਤਵਪੂਰਨ ਹੈ। ਜੇਕਰ API ਬੇਨਤੀ ਫੇਲ੍ਹ ਹੋ ਜਾਂਦੀ ਹੈ, ਤਾਂ ਸਕ੍ਰਿਪਟ ਡਿਵੈਲਪਰ ਨੂੰ ਸੰਭਾਵੀ ਸਮੱਸਿਆਵਾਂ ਬਾਰੇ ਸੂਚਿਤ ਕਰਨ ਲਈ ਇੱਕ ਗਲਤੀ ਸੁਨੇਹਾ ਲੌਗ ਕਰਦੀ ਹੈ, ਜਿਵੇਂ ਕਿ ਇੱਕ ਅਵੈਧ URL ਜਾਂ ਇੱਕ ਨੈੱਟਵਰਕ ਸਮੱਸਿਆ। ਇਸ ਤਰੀਕੇ ਨਾਲ ਗਲਤੀਆਂ ਨੂੰ ਸੰਭਾਲਣਾ ਇਹ ਵੀ ਯਕੀਨੀ ਬਣਾਉਂਦਾ ਹੈ ਕਿ ਐਕਸਟੈਂਸ਼ਨ ਮਜਬੂਤ ਰਹੇਗੀ ਅਤੇ ਜੇਕਰ ਇੱਕ ਨੈੱਟਵਰਕ ਬੇਨਤੀ ਫੇਲ ਹੋ ਜਾਂਦੀ ਹੈ ਤਾਂ ਪੂਰੀ ਤਰ੍ਹਾਂ ਅਸਫਲ ਨਹੀਂ ਹੁੰਦੀ ਹੈ। ਇਹ ਇੱਕ ਨਿਰਵਿਘਨ ਉਪਭੋਗਤਾ ਅਨੁਭਵ ਪ੍ਰਦਾਨ ਕਰਦਾ ਹੈ, ਕਿਉਂਕਿ ਸਾਰੀਆਂ ਐਕਸਟੈਂਸ਼ਨ ਦੀ ਕਾਰਜਕੁਸ਼ਲਤਾ ਵਿੱਚ ਵਿਘਨ ਪਾਉਣ ਦੀ ਬਜਾਏ, ਤਰੁੱਟੀਆਂ ਨੂੰ ਅਲੱਗ ਕੀਤਾ ਜਾਂਦਾ ਹੈ ਅਤੇ ਸੁੰਦਰਤਾ ਨਾਲ ਸੰਭਾਲਿਆ ਜਾਂਦਾ ਹੈ।

ਅੰਤ ਵਿੱਚ, ਕੋਡ ਗੁਣਵੱਤਾ ਨੂੰ ਯਕੀਨੀ ਬਣਾਉਣ ਲਈ, ਯੂਨਿਟ ਟੈਸਟਾਂ ਦਾ ਇੱਕ ਸੈੱਟ ਇਹਨਾਂ ਸੰਰਚਨਾਵਾਂ ਦੀ ਇਕਸਾਰਤਾ ਨੂੰ ਪ੍ਰਮਾਣਿਤ ਕਰਦਾ ਹੈ। ਇੱਕ ਟੈਸਟਿੰਗ ਫਰੇਮਵਰਕ ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਹੋਏ, ਯੂਨਿਟ ਟੈਸਟ ਸਕ੍ਰਿਪਟ API ਜਵਾਬਾਂ ਦੀ ਨਕਲ ਕਰਨ ਲਈ fetchMock ਲਾਇਬ੍ਰੇਰੀ ਨੂੰ ਲਾਗੂ ਕਰਦੀ ਹੈ, ਇਸ ਤਰ੍ਹਾਂ ਟੈਸਟਿੰਗ ਲਈ ਇੱਕ ਨਿਯੰਤਰਿਤ ਵਾਤਾਵਰਣ ਪ੍ਰਦਾਨ ਕਰਦੀ ਹੈ। ਇਹ ਟੈਸਟ ਇਸ ਗੱਲ ਦੀ ਪੁਸ਼ਟੀ ਕਰਦੇ ਹਨ ਕਿ CSP ਨਿਯਮ ਉਚਿਤ ਤੌਰ 'ਤੇ ਕੌਂਫਿਗਰ ਕੀਤੇ ਗਏ ਹਨ, ਇਸ ਗੱਲ ਦੀ ਪੁਸ਼ਟੀ ਕਰਦੇ ਹੋਏ ਕਿ ਕੀ ਐਕਸਟੈਂਸ਼ਨ ਬਾਹਰੀ ਸਰੋਤਾਂ ਨੂੰ ਸੁਰੱਖਿਅਤ ਢੰਗ ਨਾਲ ਅਤੇ ਉਦੇਸ਼ ਅਨੁਸਾਰ ਪਹੁੰਚ ਕਰ ਸਕਦੀ ਹੈ। ਇਹਨਾਂ ਵਿੱਚੋਂ ਹਰੇਕ ਟੈਸਟ ਇੱਕ ਤੋਂ ਵੱਧ ਦ੍ਰਿਸ਼ਾਂ ਵਿੱਚ ਐਕਸਟੈਂਸ਼ਨ ਦੇ ਵਿਹਾਰ ਦੀ ਜਾਂਚ ਕਰਨ ਲਈ ਕੰਮ ਕਰਦਾ ਹੈ, ਇਹ ਯਕੀਨੀ ਬਣਾਉਂਦਾ ਹੈ ਕਿ ਇਹ Chrome ਸੰਸਕਰਣਾਂ ਵਿੱਚ ਕੰਮ ਕਰਦਾ ਹੈ ਅਤੇ ਇਹ ਕਿ CSP ਨਿਯਮ Chrome ਵੈੱਬ ਸਟੋਰ ਦੀਆਂ ਸੁਰੱਖਿਆ ਨੀਤੀਆਂ ਦੇ ਅਨੁਕੂਲ ਹਨ। ਇਹ ਟੈਸਟਿੰਗ ਸੂਟ ਹੋਣ ਨਾਲ, ਵਿਕਾਸਕਾਰ ਆਪਣੇ ਐਕਸਟੈਂਸ਼ਨ ਨੂੰ ਭਰੋਸੇ ਨਾਲ ਅੱਪਲੋਡ ਕਰ ਸਕਦੇ ਹਨ, ਇਹ ਜਾਣਦੇ ਹੋਏ ਕਿ ਇਹ Chrome ਦੇ ਸੁਰੱਖਿਆ ਮਾਪਦੰਡਾਂ ਦੀ ਪਾਲਣਾ ਕਰਦਾ ਹੈ ਅਤੇ ਆਮ "'content_security_policy' ਲਈ ਅਵੈਧ ਮੁੱਲ" ਗਲਤੀ ਤੋਂ ਬਚਦਾ ਹੈ। 🛠️

ਹੱਲ 1: Chrome ਐਕਸਟੈਂਸ਼ਨ (ਮੈਨੀਫੈਸਟ V3) ਲਈ ਸਮੱਗਰੀ ਸੁਰੱਖਿਆ ਨੀਤੀ ਨੂੰ ਅੱਪਡੇਟ ਕਰਨਾ

ਵੱਖਰੀ ਸਕ੍ਰਿਪਟ ਸੁਰੱਖਿਆ ਨੀਤੀ ਸੈੱਟਅੱਪ ਦੇ ਨਾਲ manifest.json ਲਈ ਕੌਂਫਿਗਰੇਸ਼ਨ ਹੱਲ

{
  "manifest_version": 3,
  "name": "AdBlocker Upsia",
  "version": "1.0",
  "permissions": ["storage"],
  "host_permissions": ["https://api.example.com/*"],
  "content_security_policy": {
    "extension_pages": "script-src 'self'; object-src 'self';",
    "sandbox": "sandbox allow-scripts; script-src 'self' https://api.example.com;"
  }
}

ਹੱਲ 2: ਬਾਹਰੀ API ਕਾਲਾਂ ਲਈ ਬੈਕਗ੍ਰਾਊਂਡ ਸਰਵਿਸ ਵਰਕਰ ਦੀ ਵਰਤੋਂ ਕਰਨਾ

ਸੇਵਾ ਕਰਮਚਾਰੀ ਦੇ ਅੰਦਰ ਸੁਰੱਖਿਅਤ API ਕਾਲਾਂ ਕਰਨ ਲਈ ਮਾਡਿਊਲਰ ਸਕ੍ਰਿਪਟ

// background.js
chrome.runtime.onInstalled.addListener(() => {
  console.log("Service Worker registered");
});

// Function to make API call securely
async function fetchDataFromAPI() {
  try {
    const response = await fetch('https://api.example.com/data', {
      method: 'GET',
      headers: { 'Content-Type': 'application/json' }
    });
    const data = await response.json();
    console.log("API data received:", data);
    return data;
  } catch (error) {
    console.error("API fetch error:", error);
  }
}

// Call API when a message is received
chrome.runtime.onMessage.addListener((message, sender, sendResponse) => {
  if (message.command === "fetchData") {
    fetchDataFromAPI().then(data => sendResponse({ data }));
    return true; // keeps the response channel open
  }
});

ਹੱਲ 3: ਯੂਨਿਟ ਟੈਸਟ ਪ੍ਰਮਾਣਿਕਤਾ ਦੇ ਨਾਲ CSP ਕੌਂਫਿਗਰੇਸ਼ਨ ਦੀ ਜਾਂਚ ਕਰਨਾ

ਸਮਗਰੀ ਸੁਰੱਖਿਆ ਨੀਤੀ ਕਾਰਜਕੁਸ਼ਲਤਾ ਨੂੰ ਪ੍ਰਮਾਣਿਤ ਕਰਨ ਲਈ ਯੂਨਿਟ ਟੈਸਟ

// test/cspTest.js
const { expect } = require('chai');
const { describe, it } = require('mocha');
const fetchMock = require('fetch-mock');

describe("CSP Configuration Tests", () => {
  it("should allow secure API call with valid CSP", async () => {
    fetchMock.get('https://api.example.com/data', { status: 200, body: { key: "value" } });

    const data = await fetchDataFromAPI();
    expect(data).to.have.property('key');
  });

  it("should throw error on invalid API call attempt", async () => {
    fetchMock.get('https://api.fake.com/data', 403);

    try {
      await fetchDataFromAPI();
    } catch (error) {
      expect(error).to.exist;
    }
  });
});

ਕਰੋਮ ਐਕਸਟੈਂਸ਼ਨਾਂ ਵਿੱਚ ਬਾਹਰੀ API ਏਕੀਕਰਣ ਲਈ CSP ਨੂੰ ਕੌਂਫਿਗਰ ਕਰਨਾ

ਨਾਲ ਵਿਕਾਸ ਕਰਦੇ ਸਮੇਂ ਕਰੋਮ ਐਕਸਟੈਂਸ਼ਨ ਮੈਨੀਫੈਸਟ V3, ਬਾਹਰੀ API ਨੂੰ ਸੁਰੱਖਿਅਤ ਢੰਗ ਨਾਲ ਏਕੀਕ੍ਰਿਤ ਕਰਨ ਲਈ ਅੱਪਡੇਟ ਕੀਤੀ ਸਮੱਗਰੀ ਸੁਰੱਖਿਆ ਨੀਤੀ (CSP) ਨਿਯਮਾਂ ਦੀ ਸਪਸ਼ਟ ਸਮਝ ਦੀ ਲੋੜ ਹੁੰਦੀ ਹੈ। ਮੈਨੀਫੈਸਟ V3 ਨੇ ਸੁਰੱਖਿਆ ਨੂੰ ਵਧਾਉਣ ਲਈ ਸਖਤ ਨੀਤੀਆਂ ਪੇਸ਼ ਕੀਤੀਆਂ, ਪਰ ਇਹਨਾਂ ਤਬਦੀਲੀਆਂ ਨੇ ਕੁਝ ਸੈੱਟਅੱਪਾਂ ਨੂੰ ਹੋਰ ਚੁਣੌਤੀਪੂਰਨ ਬਣਾ ਦਿੱਤਾ ਹੈ, ਖਾਸ ਤੌਰ 'ਤੇ ਜਦੋਂ ਬਾਹਰੀ API ਨਾਲ ਜੁੜਨਾ https://api.example.com. ਐਕਸਟੈਂਸ਼ਨਾਂ ਨੂੰ ਇਹਨਾਂ ਨਵੇਂ ਦਿਸ਼ਾ-ਨਿਰਦੇਸ਼ਾਂ ਦੀ ਪਾਲਣਾ ਕਰਨੀ ਚਾਹੀਦੀ ਹੈ, ਸੁਰੱਖਿਆ ਅਤੇ ਕਾਰਜਸ਼ੀਲਤਾ ਦੋਵਾਂ ਨੂੰ ਸੰਤੁਲਿਤ ਕਰਦੇ ਹੋਏ। ਸਹੀ ਸੰਰਚਨਾ ਦੇ ਬਿਨਾਂ, ਐਕਸਟੈਂਸ਼ਨ ਸਬਮਿਸ਼ਨ ਦੌਰਾਨ ਤਰੁੱਟੀਆਂ ਨੂੰ ਟਰਿੱਗਰ ਕਰ ਸਕਦੀ ਹੈ, ਜਿਵੇਂ ਕਿ "'content_security_policy' ਲਈ ਅਵੈਧ ਮੁੱਲ", ਜੋ ਕਿ CSP ਸੰਟੈਕਸ ਜਾਂ ਅਨੁਮਤੀਆਂ ਨਾਲ ਇੱਕ ਸਮੱਸਿਆ ਦਰਸਾਉਂਦਾ ਹੈ।

ਇੱਥੇ ਇੱਕ ਮੁੱਖ ਤੱਤ ਉਹਨਾਂ ਸਰੋਤਾਂ ਨੂੰ ਸੀਮਤ ਕਰਨ ਜਾਂ ਆਗਿਆ ਦੇਣ ਵਿੱਚ CSP ਦੀ ਭੂਮਿਕਾ ਹੈ ਜੋ ਐਕਸਟੈਂਸ਼ਨ ਲੋਡ ਕਰ ਸਕਦੇ ਹਨ। ਐਕਸਟੈਂਸ਼ਨਾਂ ਜੋ ਡਾਇਨਾਮਿਕ ਸਮਗਰੀ ਦੀ ਵਰਤੋਂ ਕਰਦੀਆਂ ਹਨ, ਜਿਵੇਂ ਕਿ ਡੇਟਾ ਲਈ ਇੱਕ ਬਾਹਰੀ API ਨੂੰ ਕਾਲ ਕਰਨਾ, ਨੂੰ ਸਿੱਧੇ ਵਿੱਚ ਮਨਜ਼ੂਰ ਡੋਮੇਨਾਂ ਨੂੰ ਨਿਰਧਾਰਤ ਕਰਨ ਦੀ ਲੋੜ ਹੁੰਦੀ ਹੈ host_permissions ਖੇਤਰ. ਇਹ ਇੰਦਰਾਜ਼ ਐਕਸਟੈਂਸ਼ਨ ਨੂੰ ਮਨੋਨੀਤ URL ਨਾਲ ਸੁਰੱਖਿਅਤ ਢੰਗ ਨਾਲ ਜੁੜਨ ਲਈ ਅਧਿਕਾਰਤ ਕਰਦਾ ਹੈ। ਇਸ ਤੋਂ ਇਲਾਵਾ, CSP ਨਿਰਦੇਸ਼ਾਂ ਨੂੰ ਵੱਖ ਕਰਨਾ—ਜਿਵੇਂ ਕਿ ਸੰਵੇਦਨਸ਼ੀਲ ਸਕ੍ਰਿਪਟਾਂ ਲਈ ਸੈਂਡਬੌਕਸਡ ਵਾਤਾਵਰਣ ਨੂੰ ਨਿਰਧਾਰਿਤ ਕਰਨਾ—ਮੈਨੀਫੈਸਟ V3 ਦੀਆਂ ਅੱਪਡੇਟ ਕੀਤੀਆਂ ਨੀਤੀਆਂ ਨਾਲ ਐਕਸਟੈਂਸ਼ਨ ਦੀ ਪਾਲਣਾ ਨੂੰ ਬਿਹਤਰ ਬਣਾ ਸਕਦਾ ਹੈ। ਲਾਗੂ ਕਰਨਾ object-src ਅਤੇ script-src ਨੀਤੀਆਂ ਡਿਵੈਲਪਰਾਂ ਨੂੰ ਇਹ ਪਰਿਭਾਸ਼ਿਤ ਕਰਨ ਦੇ ਯੋਗ ਬਣਾਉਂਦੀਆਂ ਹਨ ਕਿ ਬਾਹਰੀ ਸਰੋਤਾਂ ਤੋਂ ਕਿਸ ਕਿਸਮ ਦੀ ਸਮੱਗਰੀ ਲੋਡ ਕੀਤੀ ਜਾ ਸਕਦੀ ਹੈ।

ਇਕ ਹੋਰ ਜ਼ਰੂਰੀ ਪਹਿਲੂ ਸ਼ਾਮਲ ਹੈ background service workers. ਮੈਨੀਫੈਸਟ V3 ਬੈਕਗ੍ਰਾਊਂਡ ਪੰਨਿਆਂ ਨੂੰ ਸੇਵਾ ਕਰਮਚਾਰੀਆਂ ਨਾਲ ਬਦਲਦਾ ਹੈ, ਜੋ ਕਿ ਐਕਸਟੈਂਸ਼ਨ ਨੂੰ ਲਗਾਤਾਰ ਬੈਕਗ੍ਰਾਊਂਡ ਪਹੁੰਚ ਦੀ ਲੋੜ ਤੋਂ ਬਿਨਾਂ APIs ਨਾਲ ਸੁਰੱਖਿਅਤ, ਚੱਲ ਰਹੇ ਸੰਚਾਰ ਨੂੰ ਬਣਾਈ ਰੱਖਣ ਦੀ ਇਜਾਜ਼ਤ ਦਿੰਦਾ ਹੈ। ਸੇਵਾ ਕਰਮਚਾਰੀ ਦੀ ਵਰਤੋਂ ਕਰਕੇ, ਤੁਸੀਂ API ਕਾਲਾਂ ਨੂੰ ਅਸਿੰਕਰੋਨਸ ਢੰਗ ਨਾਲ ਪ੍ਰਬੰਧਿਤ ਕਰ ਸਕਦੇ ਹੋ ਅਤੇ ਜਵਾਬਾਂ ਨੂੰ ਪ੍ਰਭਾਵਸ਼ਾਲੀ ਢੰਗ ਨਾਲ ਸੰਭਾਲ ਸਕਦੇ ਹੋ। ਇਹ ਪਹੁੰਚ ਨਾ ਸਿਰਫ਼ ਮੈਨੀਫੈਸਟ V3 ਦੇ ਸੁਰੱਖਿਆ ਸੁਧਾਰਾਂ ਨਾਲ ਮੇਲ ਖਾਂਦੀ ਹੈ ਬਲਕਿ ਐਕਸਟੈਂਸ਼ਨ ਦੀ ਕਾਰਗੁਜ਼ਾਰੀ ਨੂੰ ਵੀ ਅਨੁਕੂਲਿਤ ਕਰਦੀ ਹੈ, ਕਿਉਂਕਿ ਸੇਵਾ ਕਰਮਚਾਰੀ ਘੱਟ ਸਰੋਤਾਂ ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਹਨ। ਇਹਨਾਂ ਤਕਨੀਕਾਂ ਨੂੰ ਲਾਗੂ ਕਰਨਾ ਡਿਵੈਲਪਰਾਂ ਨੂੰ ਸੁਰੱਖਿਅਤ ਅਤੇ ਕੁਸ਼ਲ ਐਕਸਟੈਂਸ਼ਨਾਂ ਬਣਾਉਣ ਦੀ ਇਜਾਜ਼ਤ ਦਿੰਦਾ ਹੈ ਜੋ Chrome ਦੇ ਨਵੀਨਤਮ ਮਿਆਰਾਂ ਦੀ ਪਾਲਣਾ ਕਰਦੇ ਹਨ। 🌐

CSP ਅਤੇ Chrome ਐਕਸਟੈਂਸ਼ਨ ਮੈਨੀਫੈਸਟ V3 'ਤੇ ਆਮ ਸਵਾਲ

  1. ਦਾ ਮਕਸਦ ਕੀ ਹੈ host_permissions ਮੈਨੀਫੈਸਟ V3 ਵਿੱਚ?
  2. host_permissions ਮੈਨੀਫੈਸਟ V3 ਵਿੱਚ ਫੀਲਡ ਦੱਸਦੀ ਹੈ ਕਿ ਇੱਕ ਐਕਸਟੈਂਸ਼ਨ ਕਿਹੜੇ ਡੋਮੇਨਾਂ ਤੱਕ ਪਹੁੰਚ ਕਰ ਸਕਦੀ ਹੈ। ਇਹ ਬਾਹਰੀ API ਸੰਚਾਰ ਲਈ ਜ਼ਰੂਰੀ ਹੈ।
  3. ਮੈਂ "'content_security_policy' ਲਈ ਅਵੈਧ ਮੁੱਲ" ਗਲਤੀ ਤੋਂ ਕਿਵੇਂ ਬਚਾਂ?
  4. ਯਕੀਨੀ ਬਣਾਓ ਕਿ ਤੁਹਾਡਾ content_security_policy ਮੈਨੀਫੈਸਟ V3 ਦੇ CSP ਨਿਯਮਾਂ ਦੀ ਪਾਲਣਾ ਕਰਦੇ ਹੋਏ, ਅਤੇ ਵਰਤੋਂ ਨੂੰ ਸਹੀ ਢੰਗ ਨਾਲ ਪਰਿਭਾਸ਼ਿਤ ਕੀਤਾ ਗਿਆ ਹੈ host_permissions ਬਾਹਰੀ ਡੋਮੇਨ ਲਈ.
  5. ਸੇਵਾ ਕਰਮਚਾਰੀ ਕੀ ਹਨ, ਅਤੇ ਉਹ ਮੈਨੀਫੈਸਟ V3 ਵਿੱਚ ਮਹੱਤਵਪੂਰਨ ਕਿਉਂ ਹਨ?
  6. ਸੇਵਾ ਕਰਮਚਾਰੀਆਂ ਦੀ ਵਰਤੋਂ ਮੈਨੀਫੈਸਟ V3 ਵਿੱਚ ਪਿਛੋਕੜ ਦੇ ਕੰਮਾਂ ਨੂੰ ਸੰਭਾਲਣ ਲਈ ਕੀਤੀ ਜਾਂਦੀ ਹੈ, ਜਿਵੇਂ ਕਿ API ਕਾਲਾਂ, ਬੈਕਗ੍ਰਾਉਂਡ ਵਿੱਚ ਲਗਾਤਾਰ ਚੱਲੇ ਬਿਨਾਂ। ਇਹ ਸਰੋਤਾਂ ਨੂੰ ਅਨੁਕੂਲ ਬਣਾਉਂਦਾ ਹੈ ਅਤੇ ਸੁਰੱਖਿਆ ਨੂੰ ਵਧਾਉਂਦਾ ਹੈ।
  7. ਕੀ ਮੈਂ ਮੈਨੀਫੈਸਟ V3 ਵਿੱਚ ਕਿਸੇ ਬਾਹਰੀ ਸਰੋਤ ਤੋਂ ਸਕ੍ਰਿਪਟਾਂ ਲੋਡ ਕਰ ਸਕਦਾ ਹਾਂ?
  8. ਕਿਸੇ ਬਾਹਰੀ ਸਰੋਤ ਤੋਂ ਸਕ੍ਰਿਪਟਾਂ ਨੂੰ ਸਿੱਧੇ ਲੋਡ ਕਰਨ ਦੀ ਇਜਾਜ਼ਤ ਨਹੀਂ ਹੈ। ਵਰਤੋ fetch ਇਸਦੀ ਬਜਾਏ ਡਾਟਾ ਪ੍ਰਾਪਤ ਕਰਨ ਲਈ ਸੇਵਾ ਕਰਮਚਾਰੀਆਂ ਦੇ ਅੰਦਰ ਆਦੇਸ਼ ਦਿੰਦਾ ਹੈ।
  9. ਮੈਨੂੰ ਮੇਰੇ ਵਿੱਚ ਕੀ ਸ਼ਾਮਲ ਕਰਨਾ ਚਾਹੀਦਾ ਹੈ content_security_policy ਬਾਹਰੀ API ਕਾਲਾਂ ਲਈ?
  10. ਪਰਿਭਾਸ਼ਿਤ ਕਰੋ script-src ਅਤੇ object-src ਵਿੱਚ ਨਿਰਦੇਸ਼ content_security_policy, ਅਤੇ ਲੋੜੀਂਦੇ URL ਸ਼ਾਮਲ ਕਰੋ host_permissions.
  11. ਮੈਂ ਮੈਨੀਫੈਸਟ V3 ਲਈ ਆਪਣੇ CSP ਸੈੱਟਅੱਪ ਦੀ ਜਾਂਚ ਕਿਵੇਂ ਕਰ ਸਕਦਾ ਹਾਂ?
  12. ਇਹ ਤਸਦੀਕ ਕਰਨ ਲਈ Chrome ਦੇ ਵਿਕਾਸਕਾਰ ਟੂਲਾਂ ਦੀ ਵਰਤੋਂ ਕਰੋ ਕਿ CSP ਉਦੇਸ਼ ਅਨੁਸਾਰ ਕੰਮ ਕਰ ਰਿਹਾ ਹੈ ਅਤੇ ਵਿਕਾਸ ਦੌਰਾਨ ਹੋਣ ਵਾਲੀਆਂ ਕਿਸੇ ਵੀ ਤਰੁੱਟੀਆਂ ਨੂੰ ਡੀਬੱਗ ਕਰੋ।
  13. ਕੀ ਸਿੱਧਾ Chrome ਵਿੱਚ CSP ਗਲਤੀਆਂ ਨੂੰ ਡੀਬੱਗ ਕਰਨ ਦਾ ਕੋਈ ਤਰੀਕਾ ਹੈ?
  14. ਹਾਂ, Chrome DevTools ਖੋਲ੍ਹੋ, ਕੰਸੋਲ ਟੈਬ 'ਤੇ ਜਾਓ, ਅਤੇ CSP ਗਲਤੀਆਂ ਦੀ ਜਾਂਚ ਕਰੋ ਜੋ ਇਹ ਦਰਸਾਉਂਦੀਆਂ ਹਨ ਕਿ ਕਿਹੜੀਆਂ ਨੀਤੀਆਂ ਗਲਤ ਢੰਗ ਨਾਲ ਕੌਂਫਿਗਰ ਕੀਤੀਆਂ ਗਈਆਂ ਹਨ।
  15. ਕੀ ਹੈ sandbox ਨਿਰਦੇਸ਼ਕ, ਅਤੇ ਮੈਨੂੰ ਇਸਦੀ ਵਰਤੋਂ ਕਦੋਂ ਕਰਨੀ ਚਾਹੀਦੀ ਹੈ?
  16. sandbox ਨਿਰਦੇਸ਼ਕ ਦੀ ਵਰਤੋਂ ਸੁਰੱਖਿਅਤ ਵਾਤਾਵਰਣ ਵਿੱਚ ਸਮੱਗਰੀ ਨੂੰ ਅਲੱਗ ਕਰਨ ਲਈ ਕੀਤੀ ਜਾਂਦੀ ਹੈ। ਇਹ ਅਕਸਰ ਗਤੀਸ਼ੀਲ ਸਮੱਗਰੀ ਲੋੜਾਂ ਵਾਲੇ ਐਕਸਟੈਂਸ਼ਨਾਂ ਲਈ ਜ਼ਰੂਰੀ ਹੁੰਦਾ ਹੈ।
  17. ਮੈਨੀਫੈਸਟ V3 ਇਨਲਾਈਨ ਸਕ੍ਰਿਪਟਾਂ ਦੀ ਇਜਾਜ਼ਤ ਕਿਉਂ ਨਹੀਂ ਦਿੰਦਾ ਹੈ?
  18. ਮੈਨੀਫੈਸਟ V3 ਸੁਰੱਖਿਆ ਨੂੰ ਬਿਹਤਰ ਬਣਾਉਣ ਲਈ ਇਨਲਾਈਨ ਸਕ੍ਰਿਪਟਾਂ ਨੂੰ ਅਸਵੀਕਾਰ ਕਰਦਾ ਹੈ, ਸੰਭਾਵੀ ਤੌਰ 'ਤੇ ਖਤਰਨਾਕ ਸਕ੍ਰਿਪਟਾਂ ਨੂੰ ਐਕਸਟੈਂਸ਼ਨ ਦੇ ਅੰਦਰ ਚੱਲਣ ਤੋਂ ਰੋਕਦਾ ਹੈ।
  19. ਮੈਨੀਫੈਸਟ V3 ਇਜਾਜ਼ਤਾਂ ਨੂੰ V2 ਤੋਂ ਵੱਖਰੇ ਤਰੀਕੇ ਨਾਲ ਕਿਵੇਂ ਸੰਭਾਲਦਾ ਹੈ?
  20. ਮੈਨੀਫੈਸਟ V3 ਨੂੰ ਡਿਵੈਲਪਰਾਂ ਦੀ ਵਰਤੋਂ ਕਰਨ ਦੀ ਲੋੜ ਹੈ host_permissions ਅਤੇ ਹੋਰ CSP ਨਿਰਦੇਸ਼ਾਂ ਨੂੰ ਸਪੱਸ਼ਟ ਤੌਰ 'ਤੇ ਪਹੁੰਚ ਲੋੜਾਂ ਦਾ ਐਲਾਨ ਕਰਨ ਲਈ, ਉਪਭੋਗਤਾ ਸੁਰੱਖਿਆ ਨੂੰ ਵਧਾਉਂਦਾ ਹੈ।
  21. ਕਿਵੇਂ ਕਰਦਾ ਹੈ fetch ਮੈਨੀਫੈਸਟ V3 ਵਿੱਚ ਸਕ੍ਰਿਪਟਾਂ ਨੂੰ ਲੋਡ ਕਰਨ ਤੋਂ ਵੱਖਰਾ ਹੈ?
  22. fetch ਵਿਧੀ ਦੀ ਵਰਤੋਂ ਬਾਹਰੀ ਸਕ੍ਰਿਪਟਾਂ ਨੂੰ ਲੋਡ ਕਰਨ ਦੇ ਉਲਟ, ਸੇਵਾ ਕਰਮਚਾਰੀਆਂ ਵਿੱਚ ਅਸਿੰਕਰੋਨਸ ਤੌਰ 'ਤੇ ਡਾਟਾ ਪ੍ਰਾਪਤ ਕਰਨ ਲਈ ਕੀਤੀ ਜਾਂਦੀ ਹੈ, ਜੋ ਕਿ ਮੈਨੀਫੈਸਟ V3 ਵਿੱਚ ਪ੍ਰਤਿਬੰਧਿਤ ਹੈ।

ਕਰੋਮ ਐਕਸਟੈਂਸ਼ਨ CSP ਸੈੱਟਅੱਪ 'ਤੇ ਅੰਤਿਮ ਵਿਚਾਰ

ਸੰਰਚਨਾ ਸਮੱਗਰੀ ਸੁਰੱਖਿਆ ਨੀਤੀ ਨਵੀਂ ਸੁਰੱਖਿਆ ਲੋੜਾਂ ਦੇ ਕਾਰਨ ਮੈਨੀਫੈਸਟ V3 ਵਿੱਚ ਸ਼ੁੱਧਤਾ ਦੀ ਲੋੜ ਹੈ। CSP ਦੀ ਪਾਲਣਾ ਕਰਕੇ ਅਤੇ host_permissions ਪ੍ਰੋਟੋਕੋਲ, ਤੁਸੀਂ API ਨੂੰ ਸੁਰੱਖਿਅਤ ਰੂਪ ਨਾਲ ਏਕੀਕ੍ਰਿਤ ਕਰ ਸਕਦੇ ਹੋ ਅਤੇ ਆਮ ਪ੍ਰਮਾਣਿਕਤਾ ਗਲਤੀਆਂ ਨੂੰ ਰੋਕ ਸਕਦੇ ਹੋ। ਸੋਚ-ਸਮਝ ਕੇ, ਕ੍ਰੋਮ ਐਕਸਟੈਂਸ਼ਨ ਡਿਵੈਲਪਰ ਵਧੇਰੇ ਸੁਰੱਖਿਅਤ, ਵਧੇਰੇ ਪ੍ਰਭਾਵਸ਼ਾਲੀ ਟੂਲ ਬਣਾ ਸਕਦੇ ਹਨ। 😊

ਸੰਟੈਕਸ ਪ੍ਰਮਾਣਿਕਤਾ ਤੋਂ ਲੈ ਕੇ ਵੱਖ-ਵੱਖ ਸੰਸਕਰਣਾਂ ਵਿੱਚ ਟੈਸਟਿੰਗ ਤੱਕ, ਹਰ ਕਦਮ ਤੁਹਾਡੇ ਐਕਸਟੈਂਸ਼ਨ ਦੀ ਪਾਲਣਾ ਵਿੱਚ ਵਿਸ਼ਵਾਸ ਪੈਦਾ ਕਰਦਾ ਹੈ। JSON ਨੂੰ ਪ੍ਰਮਾਣਿਤ ਕਰਨਾ, ਕੌਂਫਿਗਰੇਸ਼ਨਾਂ ਦੀ ਜਾਂਚ ਕਰਨਾ ਅਤੇ Chrome ਦੇ ਦਸਤਾਵੇਜ਼ਾਂ ਦੀ ਸਮੀਖਿਆ ਕਰਨਾ ਯਾਦ ਰੱਖੋ। ਇੱਕ ਠੋਸ ਸੈੱਟਅੱਪ ਦੇ ਨਾਲ, ਤੁਹਾਡਾ ਐਕਸਟੈਂਸ਼ਨ ਅੱਜ ਦੇ ਸੁਰੱਖਿਆ ਮਾਪਦੰਡਾਂ ਨੂੰ ਨਿਰਵਿਘਨ ਪੂਰਾ ਕਰਦੇ ਹੋਏ, Chrome ਵੈੱਬ ਸਟੋਰ ਲਈ ਤਿਆਰ ਹੋਵੇਗਾ। 🔒

ਕਰੋਮ ਐਕਸਟੈਂਸ਼ਨ ਵਿਕਾਸ ਲਈ ਹਵਾਲੇ ਅਤੇ ਵਾਧੂ ਰੀਡਿੰਗ
  1. Chrome ਐਕਸਟੈਂਸ਼ਨ ਮੈਨੀਫੈਸਟ V3 ਅਤੇ CSP ਸੈੱਟਅੱਪ 'ਤੇ ਵਿਸਤ੍ਰਿਤ ਦਿਸ਼ਾ-ਨਿਰਦੇਸ਼ਾਂ ਲਈ, ਅਧਿਕਾਰਤ ਕਰੋਮ ਡਿਵੈਲਪਰ ਦਸਤਾਵੇਜ਼ ਵੇਖੋ ਕਰੋਮ ਐਕਸਟੈਂਸ਼ਨ ਮੈਨੀਫੈਸਟ V3 ਰੂਪ-ਰੇਖਾ .
  2. ਕ੍ਰੋਮ ਐਕਸਟੈਂਸ਼ਨਾਂ ਵਿੱਚ CSP ਕੌਂਫਿਗਰੇਸ਼ਨ ਤਰੁਟੀਆਂ ਨੂੰ ਸੁਲਝਾਉਣ ਲਈ ਸੁਝਾਵਾਂ ਲਈ, ਇਹ ਗਾਈਡ ਵਿਹਾਰਕ ਸਮੱਸਿਆ-ਨਿਪਟਾਰਾ ਸਲਾਹ ਪੇਸ਼ ਕਰਦੀ ਹੈ Chrome ਐਕਸਟੈਂਸ਼ਨਾਂ ਲਈ ਸਮੱਗਰੀ ਸੁਰੱਖਿਆ ਨੀਤੀ .
  3. ਮੈਨੀਫੈਸਟ V3 ਵਿੱਚ ਕਮਿਊਨਿਟੀ ਇਨਸਾਈਟਸ ਅਤੇ CSP ਮੁੱਦਿਆਂ ਦੇ ਸਾਂਝੇ ਹੱਲ GitHub 'ਤੇ ਲੱਭੇ ਜਾ ਸਕਦੇ ਹਨ ਗੂਗਲ ਕਰੋਮ ਡਿਵੈਲਪਰ GitHub .
  4. ਸਟੈਕ ਓਵਰਫਲੋ 'ਤੇ ਮੈਨੀਫੈਸਟ V3 ਅਤੇ CSP ਦੇ ਨਾਲ ਤਕਨੀਕੀ ਚਰਚਾ ਅਤੇ ਵਿਕਾਸਕਾਰ ਅਨੁਭਵ ਅਸਲ-ਸੰਸਾਰ ਸਮੱਸਿਆ-ਹੱਲ ਕਰਨ ਦੇ ਤਰੀਕੇ ਪ੍ਰਦਾਨ ਕਰਦੇ ਹਨ। ਕਰੋਮ ਐਕਸਟੈਂਸ਼ਨ ਸਟੈਕ ਓਵਰਫਲੋ ਚਰਚਾਵਾਂ .