Π ΡΠ»ΡΡΠ°Π΅, Π΅ΡΠ»ΠΈ ΠΎΠΏΡΠΈΡ allow_url_fopen Π²ΠΊΠ»ΡΡΠ΅Π½Π° Π² ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΌ ΡΠ°ΠΉΠ»Π΅ php.ini, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ URL-Π°Π΄ΡΠ΅ΡΠ° HTTP ΠΈ FTP Π² Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π΅ ΡΡΠ½ΠΊΡΠΈΠΉ, ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡΠΈΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° ΠΈΠΌΡ ΡΠ°ΠΉΠ»Π°. Π’Π°ΠΊΠΆΠ΅ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΡΠ»ΠΊΠΈ Π² ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ°Ρ include, include_once, require ΠΈ require_once (Π΄Π»Ρ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎΠΉ ΡΠ°Π±ΠΎΡΡ ΡΡΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΉ Π΄ΠΎΠ»ΠΆΠ½Π° Π±ΡΡΡ Π²ΠΊΠ»ΡΡΠ΅Π½Π° ΠΎΠΏΡΠΈΡ allow_url_include). ΠΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΠΌΡΡ Π² PHP ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π°Ρ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π½Π°ΠΉΡΠΈ Π² ΠΡΠΎΡΠΎΠΊΠΎΠ»Ρ ΠΈ ΠΎΠ±ΡΡΡΠΊΠΈ.
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΠΎ Π΄Π»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΠΎΡΠΊΡΡΡΡ ΡΠ°ΠΉΠ» Π½Π° ΡΠ΄Π°Π»ΡΠ½Π½ΠΎΠΌ ΡΠ΅ΡΠ²Π΅ΡΠ΅, ΠΈΠ·Π²Π»Π΅ΡΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠ΅ Π²Π°ΠΌ Π΄Π°Π½Π½ΡΠ΅ ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΈΡ Π² Π·Π°ΠΏΡΠΎΡΠ΅ ΠΊ Π±Π°Π·Π΅ Π΄Π°Π½Π½ΡΡ ΠΈΠ»ΠΈ ΠΆΠ΅ ΠΏΡΠΎΡΡΠΎ ΠΎΡΠΎΠ±ΡΠ°Π·ΠΈΡΡ ΠΈΡ Π² Π΄ΠΈΠ·Π°ΠΉΠ½Π΅ Π²Π°ΡΠ΅Π³ΠΎ ΡΠ°ΠΉΡΠ°.
ΠΡΠΈΠΌΠ΅Ρ #1 ΠΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° ΡΠ΄Π°Π»ΡΠ½Π½ΠΎΠΉ ΡΡΡΠ°Π½ΠΈΡΡ
<?php
$file = fopen ("http://www.example.com/", "r");
if (!$file) {
echo "<p>ΠΠ΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡΠΊΡΡΡΡ ΡΠ΄Π°Π»ΡΠ½Π½ΡΠΉ ΡΠ°ΠΉΠ».\n";
exit;
}
while (!feof ($file)) {
$line = fgets ($file, 1024);
/* Π‘ΡΠ°Π±ΠΎΡΠ°Π΅Ρ, ΡΠΎΠ»ΡΠΊΠΎ Π΅ΡΠ»ΠΈ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ ΠΈ ΡΠΎΠΏΡΡΡΡΠ²ΡΡΡΠΈΠ΅ ΡΠ΅Π³ΠΈ ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½Ρ Π² ΠΎΠ΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠ΅ */
if (preg_match ("@\<title\>(.*)\</title\>@i", $line, $out)) {
$title = $out[1];
break;
}
}
fclose($file);
?>ΠΡ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ ΡΠ΄Π°Π»ΡΠ½Π½ΡΠΌΠΈ ΡΠ°ΠΉΠ»Π°ΠΌΠΈ, ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½Π½ΡΠΌΠΈ Π½Π° FTP-ΡΠ΅ΡΠ²Π΅ΡΠ΅ (ΠΏΠΎΠ΄ΡΠ°Π·ΡΠΌΠ΅Π²Π°Π΅ΡΡΡ, ΡΡΠΎ Π²Ρ Π°Π²ΡΠΎΡΠΈΠ·ΠΎΠ²Π°Π»ΠΈΡΡ Ρ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠΌΠΈ Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΡΠΌΠΈ). Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠΎΠ»ΡΠΊΠΎ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ Π½ΠΎΠ²ΡΠ΅ ΡΠ°ΠΉΠ»Ρ, Π½ΠΎ ΠΏΠΎΠΏΡΡΠΊΠ° ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΠΈΡΠ°ΡΡ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΠΉ ΡΠ°ΠΉΠ» ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ fopen() ΠΏΡΠΈΠ²Π΅Π΄ΡΡ ΠΊ ΠΎΡΠΈΠ±ΠΊΠ΅.
ΠΠ»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ Π°Π²ΡΠΎΡΠΈΠ·ΠΎΠ²Π°ΡΡΡΡ ΠΏΠΎΠ΄ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΌ, ΠΎΡΠ»ΠΈΡΠ½ΡΠΌ ΠΎΡ 'anonymous',
Π²Π°ΠΌ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΊΠ°Π·Π°ΡΡ Π»ΠΎΠ³ΠΈΠ½ (ΠΈ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΠΏΠ°ΡΠΎΠ»Ρ) Π² Π°Π΄ΡΠ΅ΡΠ½ΠΎΠΉ ΡΡΡΠΎΠΊΠ΅, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ
ΡΠ°ΠΊ: 'ftp://user:password@ftp.example.com/path/to/file'. (ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅
ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΠΎΡ ΠΆΠ΅ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ Π΄Π»Ρ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ ΡΠ΄Π°Π»ΡΠ½Π½ΡΠΌ ΡΠ°ΠΉΠ»Π°ΠΌ ΠΏΠΎ HTTP-ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Ρ,
Π΅ΡΠ»ΠΈ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠ° Basic-Π°ΡΡΠ΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ.)
ΠΡΠΈΠΌΠ΅Ρ #2 Π‘ΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½ΡΡ Π½Π° ΡΠ΄Π°Π»ΡΠ½Π½ΠΎΠΌ ΡΠ΅ΡΠ²Π΅ΡΠ΅
<?php
$file = fopen ("ftp://ftp.example.com/incoming/outputfile", "w");
if (!$file) {
echo "<p>ΠΠ΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΠΈΡΠ°ΡΡ ΡΠ΄Π°Π»ΡΠ½Π½ΡΠΉ ΡΠ°ΠΉΠ».\n";
exit;
}
/* ΠΠ°ΠΏΠΈΡΡ Π΄Π°Π½Π½ΡΡ
. */
fwrite ($file, $_SERVER['HTTP_USER_AGENT'] . "\n");
fclose ($file);
?>
ΠΠ°ΠΌΠ΅ΡΠ°Π½ΠΈΠ΅:
ΠΠ»ΡΠ΄Ρ Π½Π° ΠΏΡΠΈΠ²Π΅Π΄ΡΠ½Π½ΡΠΉ Π²ΡΡΠ΅ ΠΏΡΠΈΠΌΠ΅Ρ, Ρ Π²Π°Ρ ΠΌΠΎΠΆΠ΅Ρ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡΡΡ ΠΈΠ΄Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΡ ΡΠ΅Ρ Π½ΠΈΠΊΡ Π΄Π»Ρ Π²Π΅Π΄Π΅Π½ΠΈΡ ΡΠ΄Π°Π»ΡΠ½Π½ΠΎΠ³ΠΎ Π»ΠΎΠ³-ΡΠ°ΠΉΠ»Π°. Π ΡΠΎΠΆΠ°Π»Π΅Π½ΠΈΡ, ΡΡΠΎ Π½Π΅ΡΠ΅Π°Π»ΠΈΠ·ΡΠ΅ΠΌΠΎ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΏΠΎΠΏΡΡΠΊΠ° Π·Π°ΠΏΠΈΡΠΈ Π² ΡΠΆΠ΅ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΠΉ ΡΠ΄Π°Π»ΡΠ½Π½ΡΠΉ ΡΠ°ΠΉΠ» ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ fopen() ΠΏΡΠΈΠ²Π΅Π΄ΡΡ ΠΊ ΠΎΡΠΈΠ±ΠΊΠ΅. Π ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π½ΠΎΠ³ΠΎ Π»ΠΎΠ³ΠΈΡΠΎΠ²Π°Π½ΠΈΡ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π²Π°ΠΌ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ ΡΡΠ½ΠΊΡΠΈΡ syslog().