svn: /phpdoc/ru/trunk/reference/pcre/ pattern.modifiers.xml
[email protected] (Sergey Panteleev)
| Newsgroups | php.doc.ru |
|---|---|
| Message-ID | <[email protected]> |
sergey Sat, 04 Jan 2020 09:32:15 +0000
Revision: http://svn.php.net/viewvc?view=revision&revision=348793
Log:
docs(ru): Updated to English revision
Changed paths:
U phpdoc/ru/trunk/reference/pcre/pattern.modifiers.xml
Modified: phpdoc/ru/trunk/reference/pcre/pattern.modifiers.xml
===================================================================
--- phpdoc/ru/trunk/reference/pcre/pattern.modifiers.xml 2020-01-04 08:50:17 UTC (rev 348792)
+++ phpdoc/ru/trunk/reference/pcre/pattern.modifiers.xml 2020-01-04 09:32:15 UTC (rev 348793)
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
-<!-- EN-Revision: 346848 Maintainer: shein Status: ready -->
+<!-- EN-Revision: 348780 Maintainer: shein Status: ready -->
<!-- Reviewed: yes -->
<!-- $Revision$ -->
<article xml:id="reference.pcre.pattern.modifiers" xmlns="http://docbook.org/ns/docbook">
@@ -116,31 +116,7 @@
<caution>
<para>
Использовать этот модификатор <emphasis>не рекомендуется</emphasis>, так как это может легко
- добавить уязвимости в системе безопасности:
- </para>
- <informalexample>
- <programlisting role="php">
-<![CDATA[
-<?php
-$html = $_POST['html'];
-
-// Заголовки в верхнем регистре
-$html = preg_replace(
- '(<h([1-6])>(.*?)</h\1>)e',
- '"<h$1>" . strtoupper("$2") . "</h$1>"',
- $html
-);
-]]>
- </programlisting>
- </informalexample>
- <para>
- Приведенный выше код может быть легко скомпрометирован путем передачи такой строки как
- <literal><h1>{${eval($_GET[php_code])}}</h1></literal>. Это дает атакующему
- возможность исполнить произвольный PHP-код и по существу предоставляет ему почти
- полный доступ к вашему серверу.
- </para>
- <para>
- Для предотвращения этого типа уязвимости с удаленным исполнением кода
+ добавить уязвимости удаленного выполнения кода. Для предотвращения этого
следует использовать функцию <function>preg_replace_callback</function>:
</para>
<informalexample>
@@ -160,6 +136,13 @@
]]>
</programlisting>
</informalexample>
+ <para>
+ Если бы приведенный выше пример был написан с использованием функции <function>preg_replace</function> и модификатора <literal>e</literal>,
+ код можно было бы использовать для атаки, передав строку, такую как
+ <literal><h1>{${eval($_GET[php_code])}}</h1></literal>. Это дало бы
+ злоумышленнику возможность выполнить произвольный код PHP и таким образом, дало бы им
+ почти полный доступ к серверу.
+ </para>
</caution>
<note>
<para>