2017-05-18 2 views
-1

Ich hoffe, die Frage hat Sie nicht zuerst verwirrt. Ich bin sehr wählerisch in Bezug auf Sicherheit und möchte keine PHP-Dateien irgendwo im Ordner public_html haben, aber auf dem privaten Bereich in der Regel vor diesem Verzeichnis "../public_html". Hier ist ein kurzes Beispiel meiner Bedürfnisse und glaube, dass .htaccess mich (oder einen von euch!) Mit einer Lösung retten wird. In JS bekomme ich Daten, die ich an PHP senden möchte. Ich werde nicht den ganzen JS-Code schreiben, aber Sie werden sicherlich verstehen. Die JS-Datei befindet sich hier: c: //wamp64/public_html/assets/js/send_ajax.js und Index /public_html/index.php.htaccess Rewrite-Regel zum Senden von Daten an PHP-Skript ohne Angabe der Position über AJAX

var username = helloWorlder; 

/* and all the onreadystate change content here */ 

xmlhttp.open("POST", "this_is_the_problem_file_name.php", true); 
xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); 
xmlhttp.send("u=" + username); 

Sie sehen die Datei Ich poste, ich möchte habe eine Umschreibungsbedingung, so dass es auf dieses Beispiel C: //wamp64/private_area/php/this_file.php zeigen kann. Ich möchte das nicht im JS-Skript ../../../private_area/this_file.php machen, weil das zu einem sensiblen Verzeichnis führt. Um die Indexseite zu verdeutlichen, ist die JS-Datei natürlich öffentlich. Die PHP-Datei ist nicht. Sicherlich gibt es einen Weg. Danke im Voraus.

+0

Hier kommen APIs ins Spiel – matiaslauriti

Antwort

1

.htaccess und Javascript können nur mit dem kommunizieren, was vom Browser öffentlich zugänglich ist. Was Sie wahrscheinlich wollen, ist ein Zwischencontroller. Sie können ein Schnipsel in MODX einrichten, das Ihre versteckten PHP-Dateien lädt, eine leere Seite aufruft, die dieses Snippet aufruft, dann Ihre Anfragen an diese Seite senden und die Antworten lesen.

0

Sie können keine Anfrage stellen, die von einem PHP-Programm verarbeitet wird, es sei denn, Sie geben diesem PHP-Programm eine URL.

Der einfachste Weg, dies zu tun ist, das PHP-Programm unter dem Server-Root zu setzen.

Sie könnte verwenden Sie alias oder mod_rewrite, um die Datei an anderer Stelle zu halten, aber das ist weitgehend sinnlos. Der einzige Vorteil, der Ihnen bietet, ist, dass im unwahrscheinlichen Fall, dass etwas mit Ihrer Serverkonfiguration schief geht und der Quellcode des PHP-Programms verloren geht, es wahrscheinlich genug falsch geht, um den Zugriff vollständig zu unterbrechen.

Sie können die gleichen Vorteile erhalten, ohne die Komplexität, indem Sie die empfindlichenTeile des Programms außerhalb des Servers root setzen und dann include() sie ing.

Verwandte Themen