-
Notifications
You must be signed in to change notification settings - Fork 25
Expand file tree
/
Copy pathescapeshellcmd.xml
More file actions
139 lines (130 loc) · 4.16 KB
/
escapeshellcmd.xml
File metadata and controls
139 lines (130 loc) · 4.16 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: 62126c55f1c6ed444043e7272c4f9e233818a44b Maintainer: nilgun Status: ready -->
<refentry xml:id="function.escapeshellcmd" xmlns="http://docbook.org/ns/docbook">
<refnamediv>
<refname>escapeshellcmd</refname>
<refpurpose>Kabuk özel karakterlerini önceler</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
<type>string</type><methodname>escapeshellcmd</methodname>
<methodparam><type>string</type><parameter>komut</parameter></methodparam>
</methodsynopsis>
<para>
<function>escapeshellcmd</function> 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,
<function>exec</function> veya <function>system</function> işlevlerine
ya da <link linkend="language.operators.execution">çalıştırma
işlecine</link> aktarılmadan önce kullanıcı girdisi olarak alınan veriyi
öncelemek için kullanılmalıdır.
</para>
<para>
Bir tersbölü çizgisi ile öncelenen karakterler şunlardır:
<literal>&#;`|*?~<>^()[]{}$\</literal>, <literal>\x0A</literal>
ve <literal>\xFF</literal>. <literal>'</literal> ve <literal>"</literal>
karakterleri sadece çiftler halinde değilse öncelenir. Windows'a tüm
bu karakterlere ek olarak <literal>%</literal> ve <literal>!</literal>
imleri bir şapka imi (<literal>^</literal>) ile öncelenir.
</para>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<para>
<variablelist>
<varlistentry>
<term><parameter>komut</parameter></term>
<listitem>
<para>
Öncelenecek komut dizgesi.
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
Öncelenmiş komut dizgesi.
</para>
</refsect1>
<refsect1 role="examples">
&reftitle.examples;
<para>
<example>
<title>- <function>escapeshellcmd</function> örneği</title>
<programlisting role="php">
<![CDATA[
<?php
// Burada bilerek keyfi sayıda bağımsız değişkene izin veriyoruz.
$komut = './configure '.$_POST['configure_options'];
$öncelenen_komut = escapeshellcmd($komut);
system($öncelenen_komut);
?>
]]>
</programlisting>
</example>
</para>
</refsect1>
<refsect1 role="notes">
&reftitle.notes;
<warning xmlns="http://docbook.org/ns/docbook">
<para>
<function>escapeshellcmd</function> 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 <function>escapeshellarg</function> kullanılmalıdır.
</para>
</warning>
<warning xmlns="http://docbook.org/ns/docbook">
<para>
Windows üzerinde
<literal>C:\Program Files\ProgramName\program.exe</literal>
gibi yollarda sorunlu olan <function>escapeshellcmd</function>
boşlukları öncelemez. Aşağıdaki kod parçası kullanılarak bu sorun
ortadan kaldırılabilir:
<programlisting role="php">
<![CDATA[
<?php
$cmd = preg_replace('`(?<!^) `', '^ ', escapeshellcmd($cmd));
]]>
</programlisting>
</para>
</warning>
</refsect1>
<refsect1 role="seealso">
&reftitle.seealso;
<para>
<simplelist>
<member><function>escapeshellarg</function></member>
<member><function>exec</function></member>
<member><function>popen</function></member>
<member><function>system</function></member>
<member><link linkend="language.operators.execution">Çalıştırma
İşleci</link></member>
</simplelist>
</para>
</refsect1>
</refentry>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
indent-tabs-mode:nil
sgml-parent-document:nil
sgml-default-dtd-file:"~/.phpdoc/manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->