Pratik modu

Kod İnceleme Egzersizleri

Geliştiriciler gerçek zafiyetli kodu inceler, güvenlik açığını tespit eder ve çoklu seçenek arasından doğru düzeltmeyi seçer. Hem tespit hem giderme becerilerini birlikte geliştiren iki aşamalı bir akış.

İki aşama. Tek egzersiz.

01
Tespit

Zafiyetli bloğu bulun

Geliştiriciye, bir veya birden fazla zafiyetli satır içeren gerçek bir kod parçası gösterilir. Güvenlik açığını taşıdığını düşündüğü bloğa tıklar. Çoktan seçmeli değil — kodu okuyup neyin yanlış olduğunu kendisi akıl yürütmek zorundadır.

  • Üretim ortamına yakın kod desenleri
  • Doğrudan kod satırı üzerinde tıklayarak seçim
  • Birden fazla denemeye izin verilir
02
Giderme

Doğru düzeltmeyi seçin

Zafiyetli blok tespit edildikten sonra geliştirici, mantıklı görünen alternatifler arasından doğru düzeltmeyi seçer. Çeldirici seçenekler arasında, kod incelemesini geçip yine de hatayı üretimde bırakan, sıkça yapılan ama yanlış olan düzeltmeler bulunur.

  • Çoktan seçmeli düzeltme tercihi
  • İnandırıcı ama yanlış çeldiriciler
  • Cevaptan sonra açıklama ortaya çıkar

Akışın ortasında bir egzersiz.

auth-controller.js
1const express = require('express')
2const db = require('./db')
3 
4const q = `SELECT * FROM users WHERE email = '${email}'`
5const rows = await db.execute(q)
6return rows[0]
1. Aşama — Zafiyeti bulun

Öğrenme için ayarlanmış, kapı tutmak için değil.

Puan cezası olmadan ipuçları

Geliştiriciler her noktada ipucu isteyebilir. İpuçları nihai puanı düşürmez — amaç cezalandırmak değil, anlamayı sağlamaktır.

Deneme bazlı puanlama

Puan, her aşamada yapılan deneme sayısına göre hesaplanır. Daha az deneme = daha yüksek puan. Her iki aşamada da ilk denemede başarı, maksimum puanı kazandırır.

Her cevaptan sonra açıklama

Düzeltme seçildiğinde — doğru ya da yanlış — platform her seçeneğin neden güvenli ya da güvensiz olduğunu gösterir. Çeldiriciler sadece yanlış olarak etiketlenmez; başarısızlık modu açıklanır.

Zafiyetli kodu okumak, asıl işin kendisidir.

Çoğu geliştirici güvenlik eğitimi, mühendislerden SQL injection hakkında bir video izlemelerini ve çoktan seçmeli bir teste cevap vermelerini ister. Kod İnceleme Egzersizleri bunu tersine çevirir: geliştiriciyi önce kodun karşısına koyar ve bir kod incelemesinin gerektirdiği akıl yürütmeyi zorunlu kılar. Tespit ve düzeltme ayrı puanlanır çünkü gerçek incelemelerde bir şeyin yanlış olduğunu bilmek ile nasıl düzeltileceğini bilmek iki farklı beceridir — ve mühendisler birinde güçlü, diğerinde zayıf olabilir.

Bir egzersizi kendiniz deneyin.

Interaktif demo, iki aşamalı akışı uçtan uca görmeniz için üç tam Kod İnceleme Egzersizi sunar.