2016-07-13 14 views
0

Ich versuche, PHP-Skript auf meinem Server mit einem Curl-Befehl ausführen. Das Skript befindet sich aus Sicherheitsgründen in einem Ordner, der mit einer .htaccess-Datei auf eine Handvoll IPs beschränkt ist, einschließlich meiner Server.PHP Curl Ausführung Berechtigungen und. Htaccess

Ich kann diese Datei enthalten mit PHP ohne Probleme enthält, aber ich kann es mit dem folgenden curl Befehl auszuführen scheinen (dies funktioniert, wenn der Ordner nicht beschränkt ist):

<?php 
// Execute the file server side. 
$fileurl = ("https://example.com/restrictedfolder/xyz12345.php"); 
exec("nohup curl ".$fileurl." > /dev/null 2>&1 & echo $!"); 
?> 

Ich hatte den Eindruck, dass htaccess php nicht vom Zugriff auf Dateien einschränkte (wie von den Includes gezeigt), aber dies scheint bei CURL nicht der Fall zu sein.

Gibt es eine Möglichkeit, dies zu umgehen, um die Datei auf der Serverseite auszuführen, aber sie von der Öffentlichkeit zu beschränken?

+0

Haben Sie '127.0.0.1' in Ihrer handvoll IPs? – iainn

+0

nein ich habe nicht, was macht das? – user1419810

+0

Entschuldigung, ich könnte missverstanden haben - führen Sie den Befehl curl auf demselben Rechner wie das PHP-Skript aus? 127.0.0.1 ist (allgemein) die IP, von der Sie kommen, wenn Sie auf eine Datei auf demselben System zugreifen. – iainn

Antwort

0

Ich habe den Eindruck, dass .htaccess php von Zugriff auf Dateien beschränkt didnt (wie vom umfasst demonstriert), aber dies scheint nicht mit CURL der Fall zu sein.

Ihr Skript greift nicht auf Dateien zu. Es lädt eine URL über Apache, genau wie ein normaler Browser.

Sie können zwei Dinge tun, um zu diagnostizieren:

  1. Capture and Curl-Fehlermeldungen angezeigt werden (anstatt sie zu /dev/null Senden)

  2. Siehe Apache-Fehlerprotokolle (wo beschränkten IP als geloggt AH01630: Client verweigert durch Serverkonfiguration)

Höchstwahrscheinlich wahrscheinlich~~POS=HEADCOMP haben Sie Ihre eigene lokale IP-Adresse ist nicht erlaubt.