-
Notifications
You must be signed in to change notification settings - Fork 46
/
Copy pathis-uploaded-file.xml
117 lines (108 loc) · 3.32 KB
/
is-uploaded-file.xml
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
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: c1bb7dd16da7b27352a48604d7ad99f477aba0f9 Maintainer: wiesemann Status: ready -->
<refentry xmlns="http://docbook.org/ns/docbook" xml:id="function.is-uploaded-file">
<refnamediv>
<refname>is_uploaded_file</refname>
<refpurpose>Prüft, ob die Datei mittels HTTP-POST upgeloadet wurde</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
<type>bool</type><methodname>is_uploaded_file</methodname>
<methodparam><type>string</type><parameter>filename</parameter></methodparam>
</methodsynopsis>
<para>
Gibt &true; zurück, wenn die Datei <parameter>filename</parameter>
mittels HTTP-POST hochgeladen wurde. Dies ist hilfreich, um sicherzustellen,
dass kein böswilliger Nutzer versucht hat, das Skript zu überlisten, indem
er es Dateien bearbeiten lässt, die es gar nicht bearbeiten sollte,
zum Beispiel <filename>/etc/passwd</filename>.
</para>
<para>
Diese Prüfung ist insbesondere dort interessant, wo irgendeine Aktion mit
upgeloadeten Dateien deren Inhalt dem Nutzer (oder sogar anderen Nutzern
auf dem gleichen System) zugänglich machen könnte.
</para>
<para>
Um korrekt arbeiten zu können, benötigt die Funktion
<function>is_uploaded_file</function> einen Parameter wie
<varname>$_FILES['userfile']['tmp_name']</varname>. Der Name der upgeloadeten
Datei auf dem Anwenderrechner <varname>$_FILES['userfile']['name']</varname>
funktioniert nicht.
</para>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<para>
<variablelist>
<varlistentry>
<term><parameter>filename</parameter></term>
<listitem>
<para>
Der zu prüfende Dateiname.
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
&return.success;
</para>
</refsect1>
<refsect1 role="examples">
&reftitle.examples;
<para>
<example>
<title><function>is_uploaded_file</function>-Beispiel</title>
<programlisting role="php">
<![CDATA[
<?php
if (is_uploaded_file($_FILES['userfile']['tmp_name'])) {
echo "Datei ". $_FILES['userfile']['name'] ." erfolgreich upgeloadet.\n";
echo "Anzeige des Inhalts\n";
readfile($_FILES['userfile']['tmp_name']);
} else {
echo "Mögliche Dateiupload-Attacke: ";
echo "Dateiname '". $_FILES['userfile']['tmp_name'] . "'.";
}
?>]]>
</programlisting>
</example>
</para>
</refsect1>
<refsect1 role="seealso">
&reftitle.seealso;
<para>
<simplelist>
<member><function>move_uploaded_file</function></member>
<member><varname>$_FILES</varname></member>
<member>Siehe <link linkend="features.file-upload">Steuerung von Dateiuploads</link>
für ein einfaches Anwendungsbeispiel.</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
-->