Ankündigung

Einklappen
Keine Ankündigung bisher.

Java/C++-Client für PHP-Script

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Java/C++-Client für PHP-Script

    Hey hey,
    ich bin eher ein PHP-Anfänger, dementsprechend ggf. den Thread hier bitte verschieben, gehört jedoch meiner Meinung nach in den Softwaredesign-Bereich.

    Und zwar geht es um ein kleines Projekt das ich starten will und ich will jetzt endlich (da ich Java/C++ in der Uni zumind. in den Grundzügen beigebracht bekommen habe) jetzt auch in PHP mein Codingstil ein wenig verbessern und nicht nur alles stumpf runterprogrammieren damit es funktioniert, sondern halt auch oop-mäßig arbeiten usw.

    Aber zu meinem Problem:
    Ich will einen Client in Java oder C++ coden, der auf meinen Server zugreift, Daten ermittelt, diese verwertet und dann in dem Client ausgibt.
    Da es meiner Meinung nach aber viel zu unsicher ist den Client direkt auf den Server zu lassen, wollte ich das jetzt so machen, dass ich mein Projekt vielmehr in PHP realisiere, die gewünschten Daten dementsprechend über PHP-Scripts zurückgegeben werden und der Java/C++-Client die Daten dann einfach ausgibt.

    Jetzt stellt sich mir die Frage, wie macht man sowas "vernünftig"? Ganz stumpf einfach ne login.php reinhauen und die Daten dann im html-Format zurückgeben? Brauche nur ein paar Stichworte, den rest kann ich mir dann selbst ergooglen Es geht halt darum, dass mein Java-Client möglichst einfach die Daten, welche über das PHP-Script zurückgegeben werden verwerten kann. (Könnte hier jetzt ne eigene Klasse schreiben, die extra dafür verwendet wird die Ausgabe des PHP-Scripts zu verwerten, aber wenn es sowas schon gibt, wär das natürlich sinnfrei )

    Und da ich jetzt schon hier bin: Habt ihr eine Idee wie man es am Besten schaffen kann, dass die Seite ausschließlich über den Java/C++-Client erreicht werden kann? Ich weiß, dass sollte relativ unmöglich sein, da man ja alle Daten die über den Client gesendet werden abfangen kann und dann über den Browser sich seine eigenen Abfragen zusammenbasteln kann, aber irgendeine Idee wie ich so Hobby-Spielkinder das leben ein wenig schwer machen kann? Hab an nen speziellen Header/User-Agent und java-script (welches durch die Clientabfrage ja nicht ausgeführt wird) gedacht, welche die User direkt auf eine Error-seite weiterleitet + Wenn kein Javascript beim Browser aktiviert ist -> direktweiterleitung auf ne Error-Seite
    Das sollte ein paar Leuten das leben ein wenig schwieriger machen, gibts irgendwelche eleganteren Lösungen nur den Zugriff per Client zuzulassen?
    Hab noch an ein individuelles Cookie, welches vom Server geloggt wird und nur einmalig verwendet werden kann. Hier muss ich mir aber noch einen Algorithmus ausdenken, der von meinem Server wiedererkannt wird, bei dem es beliebig viele Ausgaben gibt und der dennoch nicht so einfach "gefälscht" werden kann.. hmm

  • #2
    Du kannst ja eine SSL-Verbindung zwischen Client und Server aufbauen. Außerdem muss das Ganze ja nicht über HTTP laufen. Der Vorteil von HTTP ist, dass du kein Protokoll erfinden musst und es in C und Java schon Librarys gibt, die das Ganze für dich machen. PHP ist daher keineswegs Pflicht, wenn du nur einen Listener brauchst, den kannst du in Java, C, PHP oder node.js schreiben, das ändert an der Sicherheit gar nichts.
    Crashkurs zum Thema Rechtschreibung: [COLOR="Green"]normalerweise[/COLOR] ([COLOR="Red"]normaler weise[/COLOR] oder [COLOR="Red"]normaler weiße[/COLOR]), [COLOR="DarkGreen"]Standard[/COLOR] ([COLOR="Red"]Standart[/COLOR]), [COLOR="DarkGreen"]eben[/COLOR] ([COLOR="Red"]ebend[/COLOR])

    Kommentar


    • #3
      Mach dir ersteinmal gedanken, wie du die Server-seite realisieren willst. Unabhängig von PHP hast du hier schoneinmal mehrere Möglichkeiten.

      Du kannst einen web service implementieren, der sich über deinen Webserver ansprechen lässt (also wie eine Webseite). Als Datenformat kannst du eigentlich alles nutzen was dir gefällt. XML, JSON, etc. Du könntest zum Beispiel einen REST Dienst implementieren. Dafür sollte es ja in Java und C++ genug Bibliotheken für einen einfachen Zugriff geben.

      Du kannst natürlich auch mit PHP einen Socket öffnen und dort auf Clienten warten. Dann musst du dein PHP Script natürlich als Dienst über die CLI laufen lassen. Wie du dann die Daten verschickst, ist ebenfalls wieder dir überlassen. Zur not hilft auch ein selbst ausgedachtes binär-Format.

      Um Zugriff zu verweigern könntest du ebenfalls mehrere Techniken nutzen. Im Fall von einem Webdienst zum Beispiel HTTP Authentication. Du kannst aber auch einfach irgendeinen Parameter in deinen Anfragen mitsenden, den von außen niemand kennt.

      Um ein Middle in the Man zu vermeiden (oder zumindest zu erschweren) kannst du SSL nutzen. Aber spätestens wenn jemand deinen Clienten dekompiliert und etwas Arbeit rein steckt kommt er an den "geheimen Teil" ran. Die Frage ist, ob sich jemand den Aufwand machen will.
      [IMG]http://media.ubuntuusers.de/portal/files/ubuntu.png[/IMG][IMG]http://sqlmanager.net/i/ico/mysql.gif[/IMG][SIGPIC][/SIGPIC]

      Kommentar


      • #4
        Ok, vielen Dank für die ausführlichen und schnellen Antworten
        Hab leider erst Informatik im 2. Semester und eher geringe PHP bzw. wenig kenntnisse im netzwerkbereich. Werd mich jetzt mal mit Protokollen & Sockets auseinander setzen.

        Danke vielmals!

        Kommentar

        Lädt...
        X