svn: /phpdoc/de/trunk/reference/pcre/ pattern.modifiers.xml
[email protected] (Christoph Michael Becker)
| Newsgroups | php.doc.de |
|---|---|
| Message-ID | <[email protected]> |
cmb Fri, 03 Jan 2020 15:19:32 +0000
Revision: http://svn.php.net/viewvc?view=revision&revision=348781
Log:
Sync with EN
Changed paths:
U phpdoc/de/trunk/reference/pcre/pattern.modifiers.xml
Modified: phpdoc/de/trunk/reference/pcre/pattern.modifiers.xml
===================================================================
--- phpdoc/de/trunk/reference/pcre/pattern.modifiers.xml 2020-01-03 15:12:15 UTC (rev 348780)
+++ phpdoc/de/trunk/reference/pcre/pattern.modifiers.xml 2020-01-03 15:19:32 UTC (rev 348781)
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
-<!-- EN-Revision: 346848 Maintainer: samesch Status: ready -->
+<!-- EN-Revision: 348780 Maintainer: samesch Status: ready -->
<article xml:id="reference.pcre.pattern.modifiers" xmlns="http://docbook.org/ns/docbook">
<title>Suchmuster-Modifikatoren</title>
@@ -111,36 +111,20 @@
<para>
Von der Verwendung dieses Modifikators wird
<emphasis>abgeraten</emphasis>, weil damit sehr leicht
- Sicherheitslücken entstehen können:
+ Sicherheitslücken zur Ausführung von Code von außen (Remote
+ Code Execution) entstehen können. Um diese zu vermeiden, sollte stattdessen die Funktion
+ <function>preg_replace_callback</function> verwendet werden:
</para>
- <informalexample>
- <programlisting role="php">
-<![CDATA[
-<?php
-$html = $_POST['html'];
-
-// großgeschriebene Überschriften
-$html = preg_replace(
- '(<h([1-6])>(.*?)</h\1>)e',
- '"<h$1>" . strtoupper("$2") . "</h$1>"',
- $html
-);
-]]>
- </programlisting>
- </informalexample>
<para>
- Der obige Beispiel-Code kann durch Übergabe einer Zeichenkette wie
+ Wenn das obige Beispiel unter Verwendung von <function>preg_replace</function>
+ mit dem <literal>e</literal> Modifikator geschrieben worden wäre, könnte
+ der Code durch Übergabe einer Zeichenkette wie
z.B.
<literal><h1>{${eval($_GET[php_code])}}</h1></literal>
- leicht ausgenutzt werden. Das gibt Angreifern die Möglichkeit,
- beliebigen PHP-Code auszuführen und gibt ihnen somit beinahe
+ leicht ausgenutzt werden. Das gäbe Angreifern die Möglichkeit,
+ beliebigen PHP-Code auszuführen und gäbe ihnen somit beinahe
vollständigen Zugriff auf den Server.
</para>
- <para>
- Um diese Sicherheitslücke zur Ausführung von Code von außen (Remote
- Code Execution) zu vermeiden, sollte stattdessen die Funktion
- <function>preg_replace_callback</function> verwendet werden:
- </para>
<informalexample>
<programlisting role="php">
<![CDATA[