escapeshellcmdKabuk özel karakterlerini önceler
&reftitle.description;
stringescapeshellcmdstringkomutescapeshellcmd işlevi, içinde keyfi komutlar
çalıştırarak bir kabuk komutunu kandırmak için kullanılabilecek bir
dizgenin içerdiği karakterleri önceler. Bu işlev,
exec veya system işlevlerine
ya da çalıştırma
işlecine aktarılmadan önce kullanıcı girdisi olarak alınan veriyi
öncelemek için kullanılmalıdır.
Bir tersbölü çizgisi ile öncelenen karakterler şunlardır:
&#;`|*?~<>^()[]{}$\, \x0A
ve \xFF. ' ve "
karakterleri sadece çiftler halinde değilse öncelenir. Windows'a tüm
bu karakterlere ek olarak % ve !
imleri bir şapka imi (^) ile öncelenir.
&reftitle.parameters;
komut
Öncelenecek komut dizgesi.
&reftitle.returnvalues;
Öncelenmiş komut dizgesi.
&reftitle.examples;
- escapeshellcmd örneği
]]>
&reftitle.notes;
escapeshellcmd komut dizgesinin tamamı üzerinde
kullanılmalıdır. Buna rağmen saldırganın keyfi sayıda bağımsız değişken
aktarmasına izin verir. Tek bir bağımsız değişkeni öncelemek için bu işlev
yerine escapeshellarg kullanılmalıdır.
Windows üzerinde
C:\Program Files\ProgramName\program.exe
gibi yollarda sorunlu olan escapeshellcmd
boşlukları öncelemez. Aşağıdaki kod parçası kullanılarak bu sorun
ortadan kaldırılabilir:
&reftitle.seealso;
escapeshellargexecpopensystemÇalıştırma
İşleci