İçeriğe geç
Başlangıç · Sonraki hedefe 100 XP
Son hareketler
Henüz bir öğrenme hareketi yok. İlk derse başlayın.

Web Uygulama Güvenliği

Command injection: Veriyi komut sözdiziminden ayırma

İşletim sistemi komutuna kullanıcı metni eklemek, verinin komut yorumlayıcısı tarafından kod olarak işlenmesine yol açabilir. Girdi doğrulaması ile komutu hiç kullanmayan tasarımı öncelikle karşılaştırın.

Bu derste neler var?

SİBERSALDİRİ.COM · KONU ODAKLI DERS

Bu derste kazanacaklarınız

  • Kullanıcı verisi ile Yerleşik API arasındaki ilişkiyi açıklamak.
  • “En güçlü ilk tasarım tercihi nedir?” sorusuna gerekçeli yanıt vermek.
  • Örneği değiştirip beklenen ve gözlenen davranışı karşılaştırmak.

Çalışma mantığı ve güven sınırı

Dosya boyutu gibi iş için kabuk çağırmak yerine dilin yerleşik API'sini kullanın. Komut gerçekten gerekiyorsa yürütülebilir dosya ve argümanlar ayrı sözleşmeyle aktarılmalı, izin verilen işlem ve değerler kısıtlanmalıdır. Kaçış tekniği işletim sistemi ve yorumlayıcıya bağlıdır; genel amaçlı temizleme garantisi değildir. Servis hesabı minimum izinle çalışmalıdır.

Command injection: Veriyi komut sözdiziminden ayırma akışı: Kullanıcı verisi → Yerleşik API → Sınırlı sonuç
Kullanıcı verisi → Yerleşik API → Sınırlı sonuç. Şema ilişkiyi gösterir; bütün uygulamanın yerine geçmez.

Açıklamalı örnek

Aşağıdaki parça kavramı görünür kılar. Komut veya kod içeren örnekleri üretim sisteminde değil, size ait ayrı deneme ortamında değerlendirin. Mimari şema ve politika örnekleri çalıştırılabilir program değildir.

<?php
$path = __DIR__ . '/sample.txt';
if (!is_file($path)) { throw new RuntimeException('Dosya yok'); }
echo filesize($path);

Beklenen sonuç ve yorumu

Yerel sabit dosyanın boyutu kabuk komutu çalıştırılmadan alınır.

Karşılaştırmalı durumlar

DurumBeklenen yaklaşımNeden?
Yerleşik API yeterliKabuk kullanmaYorumlayıcı sınırı kaldırılır
Komut gerekliSabit yürütülebilir ve argümanSerbest kod kabul edilmez
Girdi temizlendi deniyorBağlamı doğrulaKaçış kuralları aynı değildir

Uygulama görevi

Kabuk kullanan bir dosya listeleme işini yerleşik dosya API'siyle nasıl değiştireceğinizi yazın.

  1. İşlemden önce beklenen sonucu ve kabul koşulunu yazın.
  2. Tek bir değişkeni değiştirin; gözlemi ve kullandığınız ortamı kaydedin.
  3. Sonucu yukarıdaki karşılaştırma tablosuyla değerlendirin. Uymayan durumda hangi varsayımın yanlış olabileceğini açıklayın.

Sık yapılan hata ve düzeltme yönü

İstemciden komut veya çalıştırılabilir dosya adı kabul etmeyin.

Kendinizi sınayın

En güçlü ilk tasarım tercihi nedir?

Açıklamalı yanıt: İşi kabuk yorumlayıcısı olmadan güvenli yerleşik API ile yapmak, ilgili yorumlayıcı sınırını kaldırır.

İlgili derslerle ilerleyin

Teknik başvuru

Bu dersin anlatımı ve örnekleri akademi için yeniden hazırlanmıştır. Aşağıdaki bağlantı, kullanılan teknoloji veya güvenlik yaklaşımının ayrıntılarını doğrulamak için teknik başvurudur.

Bir adım daha ilerlediniz.

Dersi bitirdiyseniz tamamlandı olarak işaretleyin. İlerlemeniz bu cihazda saklanır.

Akademi menüsü

Akademide ara

En az 2 karakter yazın.