PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Harvester für PHP?



derprinter
16.02.2016, 15:07
Hallo Gemeinde,
eine Frage an die Fachleute: Scannen Harvester nur HTML-Code oder auch PHP?
Der Hintergrund ist, dass viele Kontakt-Formulare als PHP-Code generiert werden, in dem die mailto-Adresse im Klartext steht.
Dann müsste man diese Adresse auch verschleiern.

derprinter

Mittwoch
16.02.2016, 16:12
Hallo derprinter,
willkommen im Forum!

Sicher kann man das nicht sagen. Es gibt allerdings diverse Honeypot-Strategien auch für PHP, so wie zum Beispiel diese hier (http://devgrow.com/simple-php-honey-pot/), die es sicherlich nicht geben würde, wenn Harvester und Bots nur HTML abgrasen würden. Ich würde an Deiner Stelle also eine Sicherheitsebene einziehen.

Ich frage ich allerdings, warum Du Sorge hast, eine Mailadresse zu verbreiten? Ich nehme an, dass Du ein Kontakt-Formular nutzt, dass auf der HTTP-Post-Methode (Hypertext_Transfer_Protocol#HTTP_POST) basiert. Irgendwo in dessen PHP-Quelltext steht dann die Mailadresse, an die die erfassten Daten per Mail verschickt werden sollen. Da ein Durchschnittsbenutzer bei richtiger Serverkonfigurierung aber überhaupt keine Chance hat, den PHP-Quelltext zu lesen, ist die Mailadresse darin sicher. Der Benutzer, der aus dem Netz einen PHP-Aufruf startet, bekommt nur die HTTP-Ausgabe, die der PHP-Quelltext erzeugt, ohne Mailadresse. Schau Dir mal einen im Browser einen Seitenquelltext an, den Dein Kommentarformular-PHP ausliefert.

Gerade weil es das Konzept von PHP ist, die Quelltextebene von der Interaktionsebene zu trennen, findet man keinerlei Möglichkeiten, einen PHP-Quelltext irgendwie zu verschlüsseln oder zu kompilieren. Es ist Sache des Serverarchitekten, dafür zu sorgen, dass der Quelltext nicht ohne entsprechende Logins von außen zugänglich ist.

Schönen Gruß
Mittwoch

derprinter
16.02.2016, 17:03
Hallo Mittwoch,
vielen Dabk für die ausführliche Antwort!
Du schreibst, dass ein Durchschnittsbenutzer keine Chance hat, den PHP-Quelltext zu lesen. Nun, Harvester-Programmierer sind sicher keine Durchschnittsbenutzer. Also muss man davon ausgehen, dass es geschieht.
Es geht auch nicht darum, PHP zu verschlüsseln, sondern nur die Adresse zu verschleiern. Und das kann man in PHP sicher genauso machen wie in HTML.
Merkwürdigerweise ist das aber in Foren und bei Homepage-IDEs kein Thema.

Grüße
derprinter

Mittwoch
16.02.2016, 18:26
Du schreibst, dass ein Durchschnittsbenutzer keine Chance hat, den PHP-Quelltext zu lesen. Nun, Harvester-Programmierer sind sicher keine Durchschnittsbenutzer.
Doch, aus Sicht des Webservers sind sie das.

Ich stelle das mal etwas vereinfacht dar: Auch Harvester können und dürfen bei einem Webserver als Kontakte, die aus dem Internet kommen, nichts anderes machen, als eine HTTP-Anfrage stellen. Nur dass anstelle eines HTML-Dokuments eine "Datei" abgefragt wird, die mit PHP endet. "Datei" darf man dabei keinesfalls wörtlich nehmen. Der Webserver weiß nämlich dank passender Plugins bzw. passender Konfiguration, dass er eine auf PHP endende Abfrage nicht seinerseits wie bei einer HTML-Datei beim Dateisystemdienst erfragt, sondern eben an den PHP-Dienst weiterleitet. Dieser läuft vom Webserver streng isoliert, die Kommunikation läuft systemintern auf einer Protokollebene, die vom Internet sehr gut abgeschirmt ist (quasi hinter den Kulissen).

Der PHP-Dienst wiederum ruft seinerseits eine Datei auf, deren Name mit der des Aufrufs identisch ist, die er vom Webserver bekam. Diese Datei ist dann das PHP-Skript, das abgearbeitet wird. Als Ergebnis des Laufs kommt eine HTML-Datei heraus, die temporär zwischengespeichert wird. Anschließend antwortet der PHP-Server dem Webserver und weist ihn an, die soeben erzeugte HTML-Datei an den Anfragenden auszuliefern.

In der HTML-Datei steht dann nur das, was der PHP-Programmierer für die Auslieferung vorsieht. Genau das ist ja der Trick an PHP: Anstelle von hunderten verschiedener HTML-Dokumente, die alle möglichen Abfragen abdecken würden, muss man nur wenige PHP-Skripte schreiben, die dann erst im Moment der tatsächlichen Abfrage ein passendes HTML-Dokument erzeugen. Wie gesagt: Schau Dir mal das Ergebnis einer PHP-Abfrage als Seitenquelltext an und vergleiche das mit dem PHP-Quelltext. Ich bin davon überzeugt, dass im Seitenquelltext des Browsers nicht ein einziger PHP-Befehl auftaucht.

Würde nun ein Internetbenutzer versuchen, den Webserver anzuweisen, die PHP-Quelltext-Datei anstelle der Abfrage auszuliefern, würde der Webserver eine Fehlermeldung ausgeben, denn er hat – saubere Konfiguration vorausgesetzt – gar nicht ausreichende Rechte, um auf den Bereich des Dateisystems zuzugreifen, in dem die PHP-Datei dann liegt. Er darf in der Regel nur auf ein Verzeichnis \var\www zugreifen (Beispiel wäre hier der Webserver namens Apache), während hingegen die PHP-Quelltexte in \var\php liegen. Dorthin darf nur der PHP-Dienst zugreifen, und der liefert wiederum kein PHP im Quelltext aus.

Harvester müssten das System hacken, um an den Quellcode ran zu kommen. Der Aufwand, das zu automatisieren, wäre für das simple Ernten von Mailadressen viel zu groß. Außerdem würde der Harvester dann der Firewall unangenehm auffallen, also schnell raus geschmissen. Wäre nicht zielführend.


Es geht auch nicht darum, PHP zu verschlüsseln, sondern nur die Adresse zu verschleiern. Und das kann man in PHP sicher genauso machen wie in HTML.
Wenn ich Dich recht verstehe, meinst Du nicht verschlüsseln, sondern kodieren. Das wiederum bringt auch in HTML (und damit auch in im HTML-Teil des PHP-Quellcodes) in Bezug auf Harvester ziemlich genau gar nichts. Man darf sicher davon ausgehen, dass Harvester die gängigen Kodierungsmethoden beherrschen. Die können sogar kompliziertere Sicherungen wie Captchas umgehen.

Schönen Gruß
Mittwoch

TheDoctor
16.02.2016, 18:29
Lieber derprinter... Ich nehme an, Du betreust irgendwo eine Webseite, und machst Dir jetzt total voll viele Sorgen, daß da schlimme Finger böse Sachen anstellen. Das ist erst mal löblich.

Leider offenbart aber Deine Frage, und auch Deine Reaktion auf die Antwort hier, daß Du eher so gar keine Ahnung von der Materie hast. Und wie das so ist, wenn man Leute mit Sachen spielen läßt, von denen sie nichts verstehen, oder zumindest glauben, mehr zu verstehen, als sie tatsächlich tun, passiert dabei am Ende furchtbar viel, was man gar nicht will.

Ich kann daher nur raten: Lass den Webkram jemand machen, der sich damit auskennt - das hilft. Genauso wie bei Stromleitungen und Gasanschlüssen, sollte man so was nicht selber frickeln.

Wenn man nicht mal weiß, was den Unterschied zwischen PHP & HTML ausmacht, ist zu erwarten, daß dann bei 'Basteln' im PHP oder wo auch immer solcher Kraut und Rüben rauskommen, daß am Ende alle guten Absichten egal waren.

Von daher: Glaub mal dem lieben Mittwoch, daß der Inhalt Deiner PHP's nicht das Problem ist (außer man hat so komplett alles falsch eingestellt was man einstellen kann).
Und kauf Dir vielleicht irgendwo "PHP für Dummies", oder einen seiner vielen Verwandten oder Nachfolger.

RA Meier-Bading
16.02.2016, 18:31
Ich formuliere das mal anders:

PHP wird normalerweise nur auf dem Server ausgeführt, der Quelltext steht nicht zum Download bereit. Was der Code hinter dem Formular macht, sieht der Nutzer also nicht. Auch kein Harvester, denn auch der ist ebenfalls an das HTTP-Protokoll gebunden.

Darum muss man darauf achten, dass der Server immer richtig konfiguriert ist und man natürlich keine Passwörter in HTML-Kommentaren vergisst oder man sonst dämlichen Unsinn anstellt.


[Edit:] der Doktor war schneller.
Ja. Wenn Du solche Fragen stellst, solltest Du doch besser keinen PHP-Mailer einbauen. Übe am besten erstmal ein bisschen mit PHP, die Erfahrung kommt dann schon von ganz allein.

derprinter
16.02.2016, 22:34
Lieber derprinter...

Leider offenbart aber Deine Frage, und auch Deine Reaktion auf die Antwort hier, daß Du eher so gar keine Ahnung von der Materie hast. Und wie das so ist, wenn man Leute mit Sachen spielen läßt, von denen sie nichts verstehen, oder zumindest glauben, mehr zu verstehen, als sie tatsächlich tun, passiert dabei am Ende furchtbar viel, was man gar nicht will.

Ich kann daher nur raten: Lass den Webkram jemand machen, der sich damit auskennt - das hilft. Genauso wie bei Stromleitungen und Gasanschlüssen, sollte man so was nicht selber frickeln.

Wenn man nicht mal weiß, was den Unterschied zwischen PHP & HTML ausmacht, ist zu erwarten, daß dann bei 'Basteln' im PHP oder wo auch immer solcher Kraut und Rüben rauskommen, daß am Ende alle guten Absichten egal waren.

Von daher: Glaub mal dem lieben Mittwoch, daß der Inhalt Deiner PHP's nicht das Problem ist (außer man hat so komplett alles falsch eingestellt was man einstellen kann).
Und kauf Dir vielleicht irgendwo "PHP für Dummies", oder einen seiner vielen Verwandten oder Nachfolger.

Wow, klasse! Da stellt man eine Frage, weil man etwas wissen möchte und wird mit Arroganz zugeschüttet.
Ich kann daher nur raten: Überlasse das Antworten in Foren lieber denen, die helfen und etwas vermitteln möchten, statt sich selbst zu beweihräuchern.

@Mittwoch: Vielen Dank für deine ausführliche Erklärung. Das verstehen sogar Dummies ;-)