ਪੈਂਟੇਸਟਰਾਂ ਲਈ ਸੀਐਸਪੀ: ਬੁਨਿਆਦੀ ਗੱਲਾਂ ਨੂੰ ਸਮਝਣਾ | Mewayz Blog Skip to main content
Hacker News

ਪੈਂਟੇਸਟਰਾਂ ਲਈ ਸੀਐਸਪੀ: ਬੁਨਿਆਦੀ ਗੱਲਾਂ ਨੂੰ ਸਮਝਣਾ

ਟਿੱਪਣੀਆਂ

2 min read Via www.kayssel.com

Mewayz Team

Editorial Team

Hacker News

ਹਰੇਕ ਪੇਂਟੇਸਟਰ ਨੂੰ ਸਮੱਗਰੀ ਸੁਰੱਖਿਆ ਨੀਤੀ ਵਿੱਚ ਮੁਹਾਰਤ ਹਾਸਲ ਕਰਨ ਦੀ ਲੋੜ ਕਿਉਂ ਹੈ

ਸਮੱਗਰੀ ਸੁਰੱਖਿਆ ਨੀਤੀ (CSP) ਕ੍ਰਾਸ-ਸਾਈਟ ਸਕ੍ਰਿਪਟਿੰਗ (XSS), ਡਾਟਾ ਇੰਜੈਕਸ਼ਨ, ਅਤੇ ਕਲਿੱਕਜੈਕਿੰਗ ਹਮਲਿਆਂ ਦੇ ਵਿਰੁੱਧ ਸਭ ਤੋਂ ਨਾਜ਼ੁਕ ਬ੍ਰਾਊਜ਼ਰ-ਸਾਈਡ ਰੱਖਿਆ ਵਿਧੀਆਂ ਵਿੱਚੋਂ ਇੱਕ ਬਣ ਗਈ ਹੈ। ਫਿਰ ਵੀ ਪ੍ਰਵੇਸ਼ ਟੈਸਟਿੰਗ ਰੁਝੇਵਿਆਂ ਵਿੱਚ, CSP ਸਿਰਲੇਖ ਸਭ ਤੋਂ ਵੱਧ ਅਕਸਰ ਗਲਤ ਸੰਰਚਨਾ ਕੀਤੇ ਗਏ — ਅਤੇ ਗਲਤ ਸਮਝੇ — ਸੁਰੱਖਿਆ ਨਿਯੰਤਰਣਾਂ ਵਿੱਚੋਂ ਇੱਕ ਬਣੇ ਰਹਿੰਦੇ ਹਨ। 1 ਮਿਲੀਅਨ ਤੋਂ ਵੱਧ ਵੈੱਬਸਾਈਟਾਂ ਦਾ ਵਿਸ਼ਲੇਸ਼ਣ ਕਰਨ ਵਾਲੇ 2024 ਦੇ ਅਧਿਐਨ ਨੇ ਪਾਇਆ ਕਿ ਸਿਰਫ਼ 12.8% ਨੇ ਹੀ CSP ਸਿਰਲੇਖਾਂ ਨੂੰ ਤੈਨਾਤ ਕੀਤਾ ਹੈ, ਅਤੇ ਇਹਨਾਂ ਵਿੱਚੋਂ, ਲਗਭਗ 94% ਵਿੱਚ ਘੱਟੋ-ਘੱਟ ਇੱਕ ਨੀਤੀਗਤ ਕਮਜ਼ੋਰੀ ਹੈ ਜਿਸਦਾ ਸ਼ੋਸ਼ਣ ਕੀਤਾ ਜਾ ਸਕਦਾ ਹੈ। ਪੈਂਟੈਸਟਰਾਂ ਲਈ, CSP ਨੂੰ ਸਮਝਣਾ ਵਿਕਲਪਿਕ ਨਹੀਂ ਹੈ — ਇਹ ਇੱਕ ਸਤਹ-ਪੱਧਰ ਦੇ ਮੁਲਾਂਕਣ ਅਤੇ ਇੱਕ ਰਿਪੋਰਟ ਵਿੱਚ ਅੰਤਰ ਹੈ ਜੋ ਅਸਲ ਵਿੱਚ ਇੱਕ ਗਾਹਕ ਦੀ ਸੁਰੱਖਿਆ ਸਥਿਤੀ ਨੂੰ ਮਜ਼ਬੂਤ ਕਰਦਾ ਹੈ।

ਭਾਵੇਂ ਤੁਸੀਂ ਵੈੱਬ ਐਪਲੀਕੇਸ਼ਨ ਮੁਲਾਂਕਣ ਕਰ ਰਹੇ ਹੋ, ਬੱਗ ਬਾਊਂਟੀ ਸ਼ਿਕਾਰ ਕਰ ਰਹੇ ਹੋ, ਜਾਂ ਇੱਕ ਵਪਾਰਕ ਪਲੇਟਫਾਰਮ ਵਿੱਚ ਸੁਰੱਖਿਆ ਬਣਾ ਰਹੇ ਹੋ ਜੋ ਸੰਵੇਦਨਸ਼ੀਲ ਗਾਹਕ ਡੇਟਾ ਨੂੰ ਸੰਭਾਲਦਾ ਹੈ, CSP ਗਿਆਨ ਬੁਨਿਆਦੀ ਹੈ। ਇਹ ਗਾਈਡ ਇਸ ਗੱਲ ਨੂੰ ਤੋੜਦੀ ਹੈ ਕਿ CSP ਕੀ ਹੈ, ਇਹ ਹੁੱਡ ਦੇ ਹੇਠਾਂ ਕਿਵੇਂ ਕੰਮ ਕਰਦਾ ਹੈ, ਇਹ ਕਿੱਥੇ ਅਸਫਲ ਹੁੰਦਾ ਹੈ, ਅਤੇ ਕਿਵੇਂ ਪੈਨਟੇਸਟਰ ਕਮਜ਼ੋਰ ਨੀਤੀਆਂ ਦਾ ਯੋਜਨਾਬੱਧ ਢੰਗ ਨਾਲ ਮੁਲਾਂਕਣ ਅਤੇ ਬਾਈਪਾਸ ਕਰ ਸਕਦੇ ਹਨ।

ਸਮੱਗਰੀ ਸੁਰੱਖਿਆ ਨੀਤੀ ਅਸਲ ਵਿੱਚ ਕੀ ਕਰਦੀ ਹੈ

ਇਸਦੇ ਮੂਲ ਵਿੱਚ, CSP ਇੱਕ ਘੋਸ਼ਣਾਤਮਕ ਸੁਰੱਖਿਆ ਵਿਧੀ ਹੈ ਜੋ ਇੱਕ HTTP ਜਵਾਬ ਸਿਰਲੇਖ (ਜਾਂ ਘੱਟ ਆਮ ਤੌਰ 'ਤੇ, ਇੱਕ ਟੈਗ) ਦੁਆਰਾ ਪ੍ਰਦਾਨ ਕੀਤੀ ਜਾਂਦੀ ਹੈ। ਇਹ ਬ੍ਰਾਊਜ਼ਰ ਨੂੰ ਨਿਰਦੇਸ਼ ਦਿੰਦਾ ਹੈ ਕਿ ਸਮੱਗਰੀ ਦੇ ਕਿਹੜੇ ਸਰੋਤ — ਸਕ੍ਰਿਪਟਾਂ, ਸਟਾਈਲ, ਚਿੱਤਰ, ਫੌਂਟ, ਫਰੇਮ, ਅਤੇ ਹੋਰ — ਨੂੰ ਦਿੱਤੇ ਗਏ ਪੰਨੇ 'ਤੇ ਲੋਡ ਕਰਨ ਅਤੇ ਚਲਾਉਣ ਦੀ ਇਜਾਜ਼ਤ ਹੈ। ਜਦੋਂ ਕੋਈ ਸਰੋਤ ਨੀਤੀ ਦੀ ਉਲੰਘਣਾ ਕਰਦਾ ਹੈ, ਤਾਂ ਬ੍ਰਾਊਜ਼ਰ ਇਸਨੂੰ ਬਲੌਕ ਕਰ ਦਿੰਦਾ ਹੈ ਅਤੇ ਵਿਕਲਪਿਕ ਤੌਰ 'ਤੇ ਕਿਸੇ ਖਾਸ ਅੰਤਮ ਬਿੰਦੂ ਨੂੰ ਉਲੰਘਣਾ ਦੀ ਰਿਪੋਰਟ ਕਰਦਾ ਹੈ।

CSP ਪਿੱਛੇ ਮੂਲ ਪ੍ਰੇਰਣਾ XSS ਹਮਲਿਆਂ ਨੂੰ ਘੱਟ ਕਰਨਾ ਸੀ। ਪਰੰਪਰਾਗਤ XSS ਬਚਾਅ ਜਿਵੇਂ ਕਿ ਇਨਪੁਟ ਸੈਨੀਟਾਈਜ਼ੇਸ਼ਨ ਅਤੇ ਆਉਟਪੁੱਟ ਏਨਕੋਡਿੰਗ ਪ੍ਰਭਾਵਸ਼ਾਲੀ ਪਰ ਭੁਰਭੁਰਾ ਹਨ - ਇੱਕ ਇੱਕਲੇ ਖੁੰਝੇ ਹੋਏ ਸੰਦਰਭ ਜਾਂ ਏਨਕੋਡਿੰਗ ਗਲਤੀ ਕਮਜ਼ੋਰੀ ਨੂੰ ਦੁਬਾਰਾ ਪੇਸ਼ ਕਰ ਸਕਦੀ ਹੈ। CSP ਇੱਕ ਰੱਖਿਆ-ਵਿੱਚ-ਡੂੰਘਾਈ ਪਰਤ ਜੋੜਦਾ ਹੈ: ਭਾਵੇਂ ਕੋਈ ਹਮਲਾਵਰ DOM ਵਿੱਚ ਇੱਕ ਖਤਰਨਾਕ ਸਕ੍ਰਿਪਟ ਟੈਗ ਲਗਾ ਦਿੰਦਾ ਹੈ, ਇੱਕ ਸਹੀ ਢੰਗ ਨਾਲ ਸੰਰਚਿਤ ਨੀਤੀ ਬ੍ਰਾਊਜ਼ਰ ਨੂੰ ਇਸਨੂੰ ਚਲਾਉਣ ਤੋਂ ਰੋਕਦੀ ਹੈ।

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

CSP ਸਿਰਲੇਖ ਦਾ ਸਰੀਰ ਵਿਗਿਆਨ: ਨਿਰਦੇਸ਼ ਅਤੇ ਸਰੋਤ

ਇੱਕ CSP ਸਿਰਲੇਖ ਡਾਇਰੈਕਟਿਵਜ਼ ਨਾਲ ਬਣਿਆ ਹੁੰਦਾ ਹੈ, ਹਰੇਕ ਇੱਕ ਖਾਸ ਸਰੋਤ ਕਿਸਮ ਨੂੰ ਕੰਟਰੋਲ ਕਰਦਾ ਹੈ। ਇਹਨਾਂ ਨਿਰਦੇਸ਼ਾਂ ਨੂੰ ਸਮਝਣਾ ਕਿਸੇ ਵੀ ਪੈਂਟੇਸਟਰ ਲਈ ਇੱਕ ਟੀਚੇ ਦੀ ਨੀਤੀ ਦਾ ਮੁਲਾਂਕਣ ਕਰਨ ਲਈ ਜ਼ਰੂਰੀ ਹੈ। ਸਭ ਤੋਂ ਮਹੱਤਵਪੂਰਨ ਨਿਰਦੇਸ਼ਾਂ ਵਿੱਚ ਸ਼ਾਮਲ ਹਨ default-src (ਸਪੱਸ਼ਟ ਤੌਰ 'ਤੇ ਸੈੱਟ ਨਾ ਕੀਤੇ ਗਏ ਕਿਸੇ ਵੀ ਨਿਰਦੇਸ਼ ਲਈ ਫਾਲਬੈਕ), script-src (JavaScript ਐਗਜ਼ੀਕਿਊਸ਼ਨ), style-src (CSS), img-src (ਚਿੱਤਰ), ਕਨੈਕਟ, ਕਨੈਕਟ (ਐਕਸਐਕਸਆਰਐਸਸੀ), ਵੈੱਬ ਕੁਨੈਕਸ਼ਨ, frame-src (ਏਮਬੈਡਡ iframes), ਅਤੇ object-src (ਪਲੱਗਇਨ ਜਿਵੇਂ ਫਲੈਸ਼ ਜਾਂ Java ਐਪਲਿਟ)।

ਹਰੇਕ ਨਿਰਦੇਸ਼ ਇੱਕ ਜਾਂ ਵੱਧ ਸਰੋਤ ਸਮੀਕਰਨ ਨੂੰ ਸਵੀਕਾਰ ਕਰਦਾ ਹੈ ਜੋ ਮਨਜ਼ੂਰਸ਼ੁਦਾ ਮੂਲ ਨੂੰ ਪਰਿਭਾਸ਼ਿਤ ਕਰਦੇ ਹਨ। ਇਹ ਖਾਸ ਹੋਸਟਨਾਮਾਂ (https://cdn.example.com) ਤੋਂ ਲੈ ਕੇ ਵਿਸ਼ਾਲ ਕੀਵਰਡਸ ਤੱਕ ਹਨ:

  • 'ਸਵੈ' — ਦਸਤਾਵੇਜ਼ ਦੇ ਸਮਾਨ ਮੂਲ ਤੋਂ ਸਰੋਤਾਂ ਦੀ ਆਗਿਆ ਦਿੰਦਾ ਹੈ
  • 'ਕੋਈ ਨਹੀਂ' — ਉਸ ਕਿਸਮ ਦੇ ਸਾਰੇ ਸਰੋਤਾਂ ਨੂੰ ਬਲੌਕ ਕਰਦਾ ਹੈ
  • 'ਅਸੁਰੱਖਿਅਤ-ਇਨਲਾਈਨ' — ਇਨਲਾਈਨ ਸਕ੍ਰਿਪਟਾਂ ਜਾਂ ਸ਼ੈਲੀਆਂ ਦੀ ਇਜਾਜ਼ਤ ਦਿੰਦਾ ਹੈ (XSS ਸੁਰੱਖਿਆ ਨੂੰ ਪ੍ਰਭਾਵਸ਼ਾਲੀ ਢੰਗ ਨਾਲ ਬੇਅਸਰ ਕਰਦਾ ਹੈ)
  • 'ਅਸੁਰੱਖਿਅਤ-ਈਵਲ' — eval(), setTimeout(string), ਅਤੇ ਸਮਾਨ ਡਾਇਨਾਮਿਕ ਕੋਡ ਐਗਜ਼ੀਕਿਊਸ਼ਨ ਦੀ ਇਜਾਜ਼ਤ ਦਿੰਦਾ ਹੈ
  • 'nonce-{random}' — ਮੇਲ ਖਾਂਦੀਆਂ ਕ੍ਰਿਪਟੋਗ੍ਰਾਫਿਕ ਨੋਨਸ ਨਾਲ ਟੈਗ ਕੀਤੀਆਂ ਖਾਸ ਇਨਲਾਈਨ ਸਕ੍ਰਿਪਟਾਂ ਦੀ ਇਜਾਜ਼ਤ ਦਿੰਦਾ ਹੈ
  • 'ਸਖਤ-ਗਤੀਸ਼ੀਲ' — ਹੋਸਟ-ਆਧਾਰਿਤ ਅਨੁਮਤੀ ਸੂਚੀਆਂ ਨੂੰ ਨਜ਼ਰਅੰਦਾਜ਼ ਕਰਦੇ ਹੋਏ, ਪਹਿਲਾਂ ਤੋਂ-ਭਰੋਸੇਯੋਗ ਸਕ੍ਰਿਪਟਾਂ ਦੁਆਰਾ ਲੋਡ ਕੀਤੀਆਂ ਸਕ੍ਰਿਪਟਾਂ 'ਤੇ ਭਰੋਸਾ ਕਰਦਾ ਹੈ
  • ਡਾਟਾ: — ਸਮੱਗਰੀ ਸਰੋਤਾਂ ਵਜੋਂ ਡੇਟਾ URIs ਦੀ ਇਜਾਜ਼ਤ ਦਿੰਦਾ ਹੈ

ਇੱਕ ਅਸਲ-ਸੰਸਾਰ CSP ਸਿਰਲੇਖ ਇਸ ਤਰ੍ਹਾਂ ਦਿਖਾਈ ਦੇ ਸਕਦਾ ਹੈ: ਸਮੱਗਰੀ-ਸੁਰੱਖਿਆ-ਨੀਤੀ: ਡਿਫਾਲਟ-src 'self'; script-src 'self' https://cdn.jsdelivr.net 'nonce-abc123'; style-src 'self' 'ਅਸੁਰੱਖਿਅਤ-ਇਨਲਾਈਨ'; img-src *; ਆਬਜੈਕਟ-src 'ਕੋਈ ਨਹੀਂ'। ਇੱਕ ਪੈਂਟੈਸਟਰ ਦੇ ਤੌਰ 'ਤੇ, ਤੁਹਾਡਾ ਕੰਮ ਇਸ ਨੀਤੀ ਨੂੰ ਪੜ੍ਹਨਾ ਅਤੇ ਤੁਰੰਤ ਪਛਾਣ ਕਰਨਾ ਹੈ ਕਿ ਇਹ ਕਿੱਥੇ ਮਜ਼ਬੂਤ ​​ਹੈ, ਕਿੱਥੇ ਕਮਜ਼ੋਰ ਹੈ, ਅਤੇ ਕਿੱਥੇ ਇਹ ਸ਼ੋਸ਼ਣਯੋਗ ਹੈ।

ਆਮ CSP ਗਲਤ ਸੰਰਚਨਾ ਪੈਨਟੇਸਟਰਾਂ ਨੂੰ ਨਿਸ਼ਾਨਾ ਬਣਾਉਣਾ ਚਾਹੀਦਾ ਹੈ

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

ਸਭ ਤੋਂ ਵਿਨਾਸ਼ਕਾਰੀ ਗਲਤ ਸੰਰਚਨਾ ਸਕ੍ਰਿਪਟ-src ਨਿਰਦੇਸ਼ ਵਿੱਚ 'ਅਸੁਰੱਖਿਅਤ-ਇਨਲਾਈਨ' ਦੀ ਮੌਜੂਦਗੀ ਹੈ। ਇਹ ਸਿੰਗਲ ਕੀਵਰਡ CSP ਦੇ ਪੂਰੇ ਐਂਟੀ-XSS ਲਾਭ ਨੂੰ ਜ਼ਰੂਰੀ ਤੌਰ 'ਤੇ ਬੇਕਾਰ ਬਣਾਉਂਦਾ ਹੈ, ਕਿਉਂਕਿ ਇਹ ਬ੍ਰਾਊਜ਼ਰ ਨੂੰ ਕਿਸੇ ਵੀ ਇਨਲਾਈਨ