ਡਿਵੈਲਪਰ ਸਪ੍ਰਿੰਟ ਡੈੱਡਲਾਈਨਾਂ (sprint deadlines) ਅਤੇ ਫੀਚਰ ਰਿਕੁਐਸਟਾਂ ਦੇ ਬੋਝ ਹੇਠ ਜੀਉਂਦੇ ਹਨ। ਪਰਫਾਰਮੈਂਸ ਟਿਊਨਿੰਗ ਅਤੇ UI ਪਾਲਿਸ਼ ਨੂੰ ਸਾਰੀ ਸ਼ਲਾਘਾ ਮਿਲਦੀ ਹੈ। ਸੁਰੱਖਿਆ (Security) ਆਮ ਤੌਰ 'ਤੇ ਬੈਕਲੌਗ (backlog) ਵਿੱਚ ਰਹਿੰਦੀ ਹੈ, ਚੁੱਪਚਾਪ ਆਪਣੀ ਵਾਰੀ ਦੀ ਉਡੀਕ ਕਰਦੀ ਹੈ। ਉਹ ਉਡੀਕ ਇੱਕ ਗਲਤੀ ਹੈ। ਆਟੋਮੇਟਡ ਬੋਟਸ ਚੌਵੀ ਘੰਟੇ ਇੰਟਰਨੈਟ ਨੂੰ ਸਕੈਨ ਕਰਦੇ ਹਨ, ਲੀਕ ਹੋਈਆਂ ਕੀਜ਼ (keys), ਇੰਜੈਕਸ਼ਨ ਪੁਆਇੰਟਾਂ ਅਤੇ ਕਮਜ਼ੋਰ ਅਥੈਂਟੀਕੇਸ਼ਨ ਦੀ ਭਾਲ ਕਰਦੇ ਹਨ। ਡਾਟਾ ਬ੍ਰੀਚ (Data breaches) ਤਕਨੀਕੀ ਖ਼ਬਰਾਂ ਵਿੱਚ ਇੱਕ ਆਮ ਗੱਲ ਬਣ ਗਈ ਹੈ, ਪਰ ਜ਼ਿੰਮੇਵਾਰ ਟੀਮ ਲਈ, ਇਸ ਦੀ ਸਫਾਈ ਬਹੁਤ ਭਿਆਨਕ ਹੁੰਦੀ ਹੈ। ਚੰਗੀ ਖ਼ਬਰ ਇਹ ਹੈ ਕਿ ਸੁਰੱਖਿਅਤ ਕੋਡ ਲਿਖਣ ਲਈ ਕ੍ਰਿਪਟੋਗ੍ਰਾਫੀ ਵਿੱਚ PhD ਦੀ ਲੋੜ ਨਹੀਂ ਹੈ। ਇਸ ਲਈ ਆਪਣੇ ਰੋਜ਼ਾਨਾ ਦੇ ਕੰਮ ਵਿੱਚ ਕੁਝ ਮਜ਼ਬੂਤ ਆਦਤਾਂ ਨੂੰ ਸ਼ਾਮਲ ਕਰਨ ਦੀ ਲੋੜ ਹੈ। ਇੱਥੇ ਪੰਜ ਅਜਿਹੀਆਂ ਪ੍ਰੈਕਟਿਸਾਂ ਹਨ ਜੋ ਅਸਲ ਵਿੱਚ ਤੁਹਾਡੇ ਉਪਭੋਗਤਾਵਾਂ ਅਤੇ ਤੁਹਾਡੇ ਸਿਸਟਮਾਂ ਦੀ ਰੱਖਿਆ ਕਰਨਗੀਆਂ।

ਆਪਣੀ ਅਥੈਂਟੀਕੇਸ਼ਨ (Authentication) ਨੂੰ ਸੁਰੱਖਿਅਤ ਕਰੋ

ਕਈ ਟੀਮਾਂ ਇੱਕ ਕਸਟਮ ਲੌਗਇਨ ਸਿਸਟਮ ਬਣਾਉਣ ਲਈ ਲਲਚਾਈਆਂ ਹੁੰਦੀਆਂ ਹਨ। ਇੱਕ users table, ਇੱਕ password column, ਇੱਕ JWT generator। ਇਹ ਸੌਖਾ ਲੱਗਦਾ ਹੈ ਜਦੋਂ ਤੱਕ ਤੁਹਾਨੂੰ ਇਹ ਅਹਿਸਾਸ ਨਹੀਂ ਹੁੰਦਾ ਕਿ ਹੁਣ ਤੁਸੀਂ session management, token rotation, brute-force protection, ਅਤੇ ਸੁਰੱਖਿਅਤ password resets ਦੀ ਜ਼ਿੰਮੇਵਾਰੀ ਵੀ ਲੈ ਲਈ ਹੈ। ਜ਼ਿਆਦਾਤਰ ਟੀਮਾਂ ਨੂੰ ਇਸ ਨੂੰ ਜ਼ੀਰੋ ਤੋਂ ਬਣਾਉਣਾ ਬੰਦ ਕਰ ਦੇਣਾ ਚਾਹੀਦਾ ਹੈ। OAuth 2.0 ਜਾਂ OpenID Connect ਰਾਹੀਂ ਸਥਾਪਿਤ identity providers ਨੂੰ ਅਥੈਂਟੀਕੇਸ਼ਨ ਸੌਂਪਣ ਨਾਲ ਤੁਹਾਡੇ codebase ਤੋਂ ਜੋਖਮਾਂ ਦੀਆਂ ਪੂਰੀਆਂ ਸ਼੍ਰੇਣੀਆਂ ਖਤਮ ਹੋ ਜਾਂਦੀਆਂ ਹਨ। ਤੁਹਾਨੂੰ ਅਜਿਹੇ ਪ੍ਰੋਟੋਕੋਲ ਮਿਲਦੇ ਹਨ ਜੋ ਹਜ਼ਾਰਾਂ ਇੰਜੀਨੀਅਰਾਂ ਦੁਆਰਾ ਪਰਖੇ ਗਏ ਹਨ ਅਤੇ ਵਿਸ਼ਾਲ ਸੁਰੱਖਿਆ ਭਾਈਚਾਰੇ ਦੁਆਰਾ ਸਮੀਖਿਆ ਕੀਤੇ ਗਏ ਹਨ।

ਫਿਰ ਵੀ, ਜੇਕਰ ਤੁਹਾਨੂੰ ਖੁਦ ਪਾਸਵਰਡਾਂ ਨੂੰ ਸੰਭਾਲਣਾ ਪੈਂਦਾ ਹੈ, ਤਾਂ ਉਹਨਾਂ ਨਾਲ ਸਤਿਕਾਰ ਨਾਲ ਪੇਸ਼ ਆਓ। bcrypt ਜਾਂ Argon2 ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਹਰ ਇੱਕ ਨੂੰ hash ਕਰੋ। ਇਹ ਐਲਗੋਰਿਦਮ ਜਾਣਬੁੱਝ ਕੇ ਹੌਲੀ ਰੱਖੇ ਗਏ ਹਨ। ਉਹ ਹੌਲੀਪਨ ਉਹਨਾਂ ਹਮਲਾਵਰਾਂ ਨੂੰ ਰੋਕਦਾ ਹੈ ਜੋ ਤੁਹਾਡਾ ਡਾਟਾਬੇਸ ਚੋਰੀ ਕਰਦੇ ਹਨ ਅਤੇ offline ਪਾਸਵਰਡਾਂ ਨੂੰ ਤੋੜਨ ਦੀ ਕੋਸ਼ਿਸ਼ ਕਰਦੇ ਹਨ। ਪਾਸਵਰਡ ਨੂੰ ਕਦੇ ਵੀ plain text ਵਿੱਚ ਨਾ ਛੱਡੋ। ਨਾ ਲੌਗਸ (logs) ਵਿੱਚ, ਨਾ ਕ੍ਰੈਸ਼ ਰਿਪੋਰਟਾਂ ਵਿੱਚ, ਅਤੇ ਨਾ ਹੀ ਕਿਤੇ ਹੋਰ।

Multi-factor authentication ਹੁਣ ਵਿਕਲਪਿਕ ਨਹੀਂ ਰਿਹਾ। ਪਾਸਵਰਡ ਲੀਕ ਹੋ ਜਾਂਦੇ ਹਨ। Phishing ਕੰਮ ਕਰਦੀ ਹੈ। ਦੂਜਾ ਫੈਕਟਰ (factor), ਚਾਹੇ ਉਹ TOTP ਐਪ ਹੋਵੇ ਜਾਂ ਹਾਰਡਵੇਅਰ ਕੀ (hardware key), ਅਕਾਊਂਟ ਹੈਕ ਹੋਣ ਦੀ ਦਰ ਨੂੰ ਬਹੁਤ ਜ਼ਿਆਦਾ ਘਟਾ ਦਿੰਦਾ ਹੈ।

ਜਦੋਂ ਤੁਸੀਂ session tokens ਜਾਂ JWTs ਜਾਰੀ ਕਰਦੇ ਹੋ, ਤਾਂ ਉਹਨਾਂ ਨੂੰ HttpOnly ਅਤੇ Secure cookies ਦੇ ਅੰਦਰ ਸਟੋਰ ਕਰੋ। HttpOnly ਫਲੈਗ JavaScript ਨੂੰ ਕੁਕੀ (cookie) ਪੜ੍ਹਨ ਤੋਂ ਰੋਕਦਾ ਹੈ, ਜੋ ਕਿ ਕਈ cross-site scripting ਹਮਲਿਆਂ ਨੂੰ ਨਿਰਸਕਿਰਿਆ ਕਰ ਦਿੰਦਾ ਹੈ। Secure ਫਲੈਗ ਇਹ ਯਕੀਨੀ ਬਣਾਉਂਦਾ ਹੈ ਕਿ ਬ੍ਰਾਊਜ਼ਰ ਇਸਨੂੰ ਸਿਰਫ਼ HTTPS ਰਾਹੀਂ ਹੀ ਭੇਜੇ। JWTs ਨੂੰ localStorage ਵਿੱਚ ਨਾ ਰੱਖੋ। ਇਹ ਸੁਵਿਧਾਜਨਕ ਲੱਗਦਾ ਹੈ, ਪਰ ਤੁਹਾਡੀ ਸਾਈਟ 'ਤੇ ਕੋਈ ਵੀ XSS ਕਮਜ਼ੋਰੀ ਹਮਲਾਵਰ ਨੂੰ ਤੁਹਾਡੇ ਉਪਭੋਗਤਾਵਾਂ ਦੇ ਟੋਕਨਾਂ ਤੱਕ ਤੁਰੰਤ ਪਹੁੰਚ ਪ੍ਰਦਾਨ ਕਰ ਦਿੰਦੀ ਹੈ।

OWASP Top 10 ਨੂੰ ਆਪਣਾ ਬੇਸਲਾਈਨ (Baseline) ਮੰਨੋ

OWASP Top 10 ਕੋਈ ਸਿਧਾਂਤਕ ਪ੍ਰੀਖਿਆ ਦਾ ਸਿਲੇਬਸ ਨਹੀਂ ਹੈ