Mutlak yerel dosya eklemeye karşı savunmasız bir oyuncak PHP uygulamasını düşünün. Neden dahil ('php: // input') çalışmıyor?
<?php include($_GET['action']);
bunu istismar aşağıdaki isteği çalıştı:
POST /?action=php://input HTTP/1.1
Host: XXXXXXXXXXXXXXXXX
Content-Length: 3
foo
Bu etkin istek gövdesinin foo
ile include('php://input');
çalıştırır, bu yüzden foo
yazdırmak için beklenebilir. Ancak, aşağıdaki hatayı alıyorum:
Buradaki sorun nedir? Bu bir PHP güvenlik özelliği mi? Eğer öyleyse, birileri PHP kaynak kodunun sorumlu bölümünü işaret eder mi?
Ne hakkında özel akışları? 'Stream_wrapper_register' ve tüm bu cazın kullanılması? – Halcyon
Yapılandırmanızdaki bu seçeneğin değerini kontrol edin http://php.net/manual/en/filesystem.configuration.php#ini.allow-url-include – Gustek
@Halcyon Dinliyorum. Dosya-yazma ilkeliniz ('session_start()' veya uygulamaya özel günlüğe kaydetme vb. Gibi) haricinde, bunu modern LAMP kurulumunda kullanamaz bulmanın hiçbir yolu yoktur. –