Schrift
Wiki:Tipp zum Debugging: use Data::Dumper; local $Data::Dumper::Useqq = 1; print Dumper \@var;
[thread]12229[/thread]

Es ist zum Verzweifeln - Perl und PHP

Leser: 1


<< |< 1 2 >| >> 19 Einträge, 2 Seiten
Gast Gast
 2008-07-23 18:40
#112503 #112503
Hallo Forum,

ich hab da so ein kleines Perl Script geschrieben mit dem ich unliebsame IPs und einiges mehr, vom Zugriff auf meine auf dem Server installierten Perl Applikationen fern halten kann.

Nun habe ich aber auch zwei PHP Scripte auf dem Server und der Versuch, eben diese Teile auch mit dem Perl Script zu schützen, scheitert kläglich.

Innerhalb des PHP Scripts kann ich mit virtual() das Perl Script aufrufen - im Ergebnis wird dann aber sowohl der Output des Perl Scripts als auch der Output des PHP Scripts vom Browser geliefert - das scheidet also aus.

RewriteRule via .htacces funktioniert zwar, aber das Perl Script muß dann einen Redirect auf die PHP Datei erzeugen und das führt dann innerhalb des PHP Scripts zur Fehlermeldung:
PHP Warning: Cannot modify header information - headers already sent

Hat jemand 'ne Idee wie sowas dennoch laufen könnte ohne das ich den Perl Code nach PHP umschreiben muß?
Linuxer
 2008-07-23 18:48
#112504 #112504
User since
2006-01-27
3890 Artikel
HausmeisterIn

user image
Hm, übersetz die PHP Skripte nach Perl?

Du könntest doch ansonsten den Output des Perl-Skriptes im PHP auswerten (sollte doch gehen, eine Ausgabe eines externen Skriptes in eine PHP-Variable zu packen).
Je nachdem, was dann in der Variable zu finden ist, generiert das PHP-Skript dann entsprechenden Output.
Und wenn es ein "reload" auf die Fehlerseite im HTML-Header ist...
meine Beiträge: I.d.R. alle Angaben ohne Gewähr und auf Linux abgestimmt!
Die Sprache heisst Perl, nicht PERL. - Bitte Crossposts als solche kenntlich machen!
moritz
 2008-07-23 18:51
#112505 #112505
User since
2007-05-11
923 Artikel
HausmeisterIn
[Homepage]
user image
Keine Ahnung ob das funktioniert, aber ich hatte gerade die Idee für einen bösen Hack: man kann mod_rewrite so konfigurieren, dass es für jede URL ein externes Script fragt, was es damit machen soll. (Geht allerdings nicht von der .htaccess aus, braucht also direkten Zugriff auf die Server-Konfig).

Falls in diesem Script genug Informationen zu Verfügung stehen, könntest du das benutzt um deinen Filter zu implementieren.

Ansonsten gibt es in Apache2 jede Menge hooks, für mich hört sich das so an als ob ein entsprechendes Apache-Modul eine bessere Lösung wäre.
Gast Gast
 2008-07-23 20:52
#112526 #112526
Linuxer+2008-07-23 16:48:16--
Du könntest doch ansonsten den Output des Perl-Skriptes im PHP auswerten (sollte doch gehen, eine Ausgabe eines externen Skriptes in eine PHP-Variable zu packen).

Funktioniert leider nicht.

system()
exec()
passthru()

Fehlanzeige :-(
Gast Gast
 2008-07-23 20:53
#112527 #112527
moritz+2008-07-23 16:51:49--
Keine Ahnung ob das funktioniert, aber ich hatte gerade die Idee für einen bösen Hack: man kann mod_rewrite so konfigurieren, dass es für jede URL ein externes Script fragt, was es damit machen soll. (Geht allerdings nicht von der .htaccess aus, braucht also direkten Zugriff auf die Server-Konfig).

Falls in diesem Script genug Informationen zu Verfügung stehen, könntest du das benutzt um deinen Filter zu implementieren.

Ansonsten gibt es in Apache2 jede Menge hooks, für mich hört sich das so an als ob ein entsprechendes Apache-Modul eine bessere Lösung wäre.

Ich bin auf einem Web-Account - also keine Chance.
GwenDragon
 2008-07-23 21:09
#112529 #112529
User since
2005-01-17
14748 Artikel
Admin1
[Homepage]
user image
Wenn du auf einem Web-Account bist, kannst du auch nichts für an der PHP-Konfiguration ändern.
Zudem werden Perl- und PHP-Skripte aus Sicherheitsgründen nichts austauschen können.

Kein Chance.
Schreib halt deine PHP-Skripte um.
Linuxer
 2008-07-23 21:24
#112531 #112531
User since
2006-01-27
3890 Artikel
HausmeisterIn

user image
Gast+2008-07-23 18:52:19--
Linuxer+2008-07-23 16:48:16--
Du könntest doch ansonsten den Output des Perl-Skriptes im PHP auswerten (sollte doch gehen, eine Ausgabe eines externen Skriptes in eine PHP-Variable zu packen).

Funktioniert leider nicht.

system()
exec()
passthru()

Fehlanzeige :-(


Folgendes funktioniert bei mir:

Code: (dl )
1
2
3
4
5
<?
exec( "echo 'Hello World'", &$output, &$return );
echo "external command returned: $output[0]<br>";
echo "external exited with $return<br>";
?>


Im Array $output habe ich die Ausgabe und in $return den Exitcode.
Sollte analog auch mit einem Perlskript funktionieren, dem dann die notwendigen Infos als Parameter gegeben werden können (evtl. auch aus %ENV ermittelt...)...

Ausgabe:
Code: (dl )
1
2
external command returned: Hello World
external exited with 0
meine Beiträge: I.d.R. alle Angaben ohne Gewähr und auf Linux abgestimmt!
Die Sprache heisst Perl, nicht PERL. - Bitte Crossposts als solche kenntlich machen!
GwenDragon
 2008-07-23 21:31
#112533 #112533
User since
2005-01-17
14748 Artikel
Admin1
[Homepage]
user image
@Linuxer
Die meisten Webaccounts mit PHP sind aber im Safemode und da geht exec nicht!
http://de2.php.net/manual/de/features.safe-mode.fu...
Linuxer
 2008-07-23 21:37
#112534 #112534
User since
2006-01-27
3890 Artikel
HausmeisterIn

user image
GwenDragon+2008-07-23 19:31:45--
@Linuxer
Die meisten Webaccounts mit PHP sind aber im Safemode und da geht exec nicht!

Was hab ich schon mit PHP zu schaffen? Ich meide es, soweit es geht ;o))
Versuch ich mir zu merken, danke für die Info.

Und die bisher getroffenen Aussagen sind unzureichend, um das korrekt zu beurteilen...

Dann plädier ich für den Rewrite in Perl...
meine Beiträge: I.d.R. alle Angaben ohne Gewähr und auf Linux abgestimmt!
Die Sprache heisst Perl, nicht PERL. - Bitte Crossposts als solche kenntlich machen!
Gast Gast
 2008-07-24 00:14
#112546 #112546
GwenDragon+2008-07-23 19:09:34--
Wenn du auf einem Web-Account bist, kannst du auch nichts für an der PHP-Konfiguration ändern.

Das ist richtig ...
aber darum geht's mir auch garnicht.

GwenDragon+2008-07-23 19:09:34--
Zudem werden Perl- und PHP-Skripte aus Sicherheitsgründen nichts austauschen können.

Das ist nicht richtig ...
es existieren mittlerweile mindestens zwei Perl Module die den Datenaustausch erlauben - aber ich suche nach einer allgemeingültigen Lösung.

GwenDragon+2008-07-23 19:09:34--
Kein Chance.
Schreib halt deine PHP-Skripte um.

WorldPress oder phpBB etc. nach Perl umzuschreiben, scheint nicht so unbedingt der effizente Weg zu sein ;-)
Da schreib ich denn doch lieber mein Filter Script nach PHP um.
(aber gerade das möchte ich doch vermeiden - daher dieser Thread)
<< |< 1 2 >| >> 19 Einträge, 2 Seiten



View all threads created 2008-07-23 18:40.