Π£ΡΡΠ°Π½ΠΎΠ²ΠΊΠ°
ΠΠΎΠ΄ΡΠ»Ρ PCRE Π²ΠΊΠ»ΡΡΠΈΠ»ΠΈ Π² ΡΠ΄ΡΠΎ PHP, ΠΏΠΎΡΡΠΎΠΌΡ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΌΠΎΠ΄ΡΠ»Ρ Π΄ΠΎΡΡΡΠΏΠ½Ρ Π² ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ.
ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΠΌΠΎΠ΄ΡΠ»Ρ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΡΠ΅ΡΡΡ ΡΠΎ Π²ΡΡΡΠΎΠ΅Π½Π½ΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΎΠΉ PCRE.
ΠΠ»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²Π½ΠΎ ΠΌΠΎΠ΄ΡΠ»Ρ ΡΠΎΠ±ΠΈΡΠ°ΡΡ Ρ Π²Π½Π΅ΡΠ½Π΅ΠΉ PCRE-Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΎΠΉ, Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ ΡΠΊΠ°Π·ΡΠ²Π°ΡΡ
ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ --with-pcre-regex=DIR,
Π³Π΄Π΅ DIR β ΠΊΠ°ΡΠ°Π»ΠΎΠ³ Ρ ΡΠ°ΠΉΠ»Π°ΠΌΠΈ
ΠΏΠ°ΠΊΠ΅ΡΠ° ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ PCRE. Π Π°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ PHP ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ PCRE 8.10 ΠΈ Π²ΡΡΠ΅;
Ρ PHP 7.3.0 ΡΡΠ΅Π±ΡΠ΅ΡΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° PCRE2.
ΠΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΡ ΡΠ΅Π³ΡΠ»ΡΡΠ½ΡΡ
Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ PCRE ΠΏΠΎ ΠΏΡΠΈΠ½ΡΠΈΠΏΡ Β«ΡΠΎΡΠ½ΠΎ Π² ΡΡΠΎΠΊΒ»,
ΠΈΠ»ΠΈ JIT, ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΡΡΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ. C PHP 7.0.12 ΠΏΠΎΡΠ²ΠΈΠ»ΡΡ Π΄ΠΎΡΡΡΠΏ ΠΊ ΠΎΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ
JIT-ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ ΡΠ΅Π³ΡΠ»ΡΡΠ½ΡΡ
Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠΉ
ΡΠ΅ΡΠ΅Π· ΠΎΠΏΡΠΈΡ --without-pcre-jit.
Π Π²Π΅ΡΡΠΈΡ PHP Π΄Π»Ρ Windows
Π²ΡΡΡΠΎΠΈΠ»ΠΈ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΡ ΠΌΠΎΠ΄ΡΠ»Ρ PCRE. ΠΠΎΡΡΡΠΏ ΠΊ ΡΡΠ½ΠΊΡΠΈΡΠΌ ΠΌΠΎΠ΄ΡΠ»Ρ ΠΎΡΠΊΡΡΡ Π±Π΅Π· Π·Π°Π³ΡΡΠ·ΠΊΠΈ
Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ
ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ.
ΠΡΠΎΠ΅ΠΊΡ PCRE Π½Π΅ΠΏΡΠ΅ΡΡΠ²Π½ΠΎ ΡΠ°Π·Π²ΠΈΠ²Π°Π΅ΡΡΡ, ΠΈ ΠΏΠΎ ΠΌΠ΅ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ
ΠΈΠ·ΠΌΠ΅Π½ΡΡΡΡΡ ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ PHP, ΠΊΠΎΡΠΎΡΡΠ΅ Π·Π°Π²ΠΈΡΡΡ ΠΎΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ. ΠΡΠ΄Π΅Π»ΡΠ½ΡΠ΅
ΡΠ°ΡΡΠΈ PHP-Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ ΠΈΠ½ΠΎΠ³Π΄Π° ΡΡΡΠ°ΡΠ΅Π²Π°ΡΡ ΠΈ Π½Π΅ ΠΏΠΎΠΊΡΡΠ²Π°ΡΡ Π½ΠΎΠ²ΡΠ΅
ΡΡΠ½ΠΊΡΠΈΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ PCRE. Π‘ΠΏΠΈΡΠΎΠΊ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ
ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Β»Β ΠΆΡΡΠ½Π°Π» ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ
Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ PCRE ΠΈ ΡΠ»Π΅Π΄ΡΡΡΠ°Ρ ΠΈΡΡΠΎΡΠΈΡ Π²ΡΡΡΠΎΠ΅Π½Π½ΠΎΠ³ΠΎ ΠΌΠΎΠ΄ΡΠ»Ρ PCRE:
ΠΡΡΠΎΡΠΈΡ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΉ Π²ΡΡΡΠΎΠ΅Π½Π½ΠΎΠΉ Π² PHP Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ PCRE
| ΠΠ΅ΡΡΠΈΡ PHP |
ΠΠ΅ΡΡΠΈΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ PCRE |
ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΡ |
| 8.2.0 |
10.40 |
Β |
| 8.1.0 |
10.39 |
Β |
| 7.4.12, 8.0.0 |
10.35 |
Β |
| 7.4.6 |
10.34 |
Β |
| 7.4.0 |
10.33 |
Β |
| 7.3.0 |
10.32 |
Β |
| 7.2.0 |
8.41 |
Β |
| 7.0.3 |
8.38 |
Π‘ΠΌΠΎΡΡΠΈΡΠ΅ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΠ΅ΠΉ CVE-2015-8383, CVE-2015-8386, CVE-2015-8387,
CVE-2015-8389, CVE-2015-8390, CVE-2015-8391, CVE-2015-8393, CVE-2015-8394
|
| 7.0.0 |
8.37 |
Π‘ΠΌΠΎΡΡΠΈΡΠ΅ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΠ΅ΠΉ CVE-2015-2325, CVE-2015-2326
|
Lrinczy Zsigmond ΒΆ7 years ago
From PHP version 7.3, 'pcre2' is used instead of 'pcre'. It is bundled with the PHP source, or a preinstalled pcre2 can be used if it was compiled with these configure-options:
--enable-shared --enable-unicode --enable-jit
If you want to use preinstalled pcre2 with PHP, use configure-options --with-pcre-dir=<path> and --with-pcre-regex=<path> (I don't know why there is two of them).