2012-03-29 5 views
1

Ich habe ein API-Framework erstellt, das eine Vielzahl von Kommunikationsoptionen enthält, einschließlich Eingabevalidierungen und -verschlüsselungen.Ist es richtig, PHP und Apache-Version in Benutzer-Agent-Zeichenfolge für eine API zu senden?

Ich dachte, dass die Erstellung einer API-Wrapper-Klasse wegen all dieser Optionen erforderlich wäre, um den Prozess zu vereinfachen, wenn ein anderes System eine Verbindung zu meiner API herstellen möchte. So können sie im Grunde eine einzige Klasse herunterladen und sehr einfach von ihrem System über diese Klasse mit meinem System verbinden.

Diese Wrapper-Klasse nimmt Anfragen mit cURL vor.

Mein System enthält auch einen Logger, der API-Aufrufe für zukünftige Referenz und Untersuchung verfolgt (wenn Probleme sowie Leistung Grading), einschließlich Tracking-User-Agent-String für alle diese Anfragen.

Meine Frage ist, wie gut oder schlecht ist es, wenn ich Apache und PHP-Versionsnummern in dieser Zeichenfolge neben der API-Wrapper-Klasse-Version, wie diese enthalten:

myApi/1.0 (Apache 2.2.17;PHP 5.4.0) 

Ich mache mir Sorgen, wenn es sich um eine Problem, wenn die PHP-Versionsnummer so über das Web übertragen wird, obwohl sie zwischen Servern und nicht zwischen Client-Computer und Server liegt?

+3

Wird Ihr Service gleichzeitig auf mehreren Versionen von PHP/Apache gehostet? Wenn nicht, würde ich die API-Versionsnummer jederzeit aktualisieren, wenn Sie sie auf ein neues System verschieben. Sie müssen Ihre Serverinformationen nicht kennen, können sie nicht ändern und können sich wahrscheinlich nicht darauf einstellen. Wenn es nur zu Ihrem Vorteil ist, würde ich es vermeiden. Und ja, es ist ein Risiko, die Version von PHP oder Apache (oder auch WordPress) zu kennen, da jede Version bekannte Bugs/Schwachstellen hat. – Anthony

+1

Wie Anthony sagte, ist es eine gute Vorgehensweise für Sicherheitsmaßnahmen, Serverdetails vor dem Endbenutzer zu verbergen. – Nazariy

+0

Nun ist der Vorteil für Entwickler, die auf diesem Framework entwickeln, da es bessere Rückmeldung über die API-Leistung gibt. Aber ich denke, Sie haben beide recht, ich würde lieber nicht die Server-Sicherheit opfern, um das Feedback der Entwickler zu verbessern und die API-Wrapper-Versionsnummer einfach dort zu belassen. – kingmaple

Antwort

4

Ich denke, dass Sie die Unterscheidung zwischen API und Client überschreiten. In Anlehnung an Ihre Frage, es klingt wie Sie gebaut haben:

  1. eine API mit verschiedenen Diensten/Ressourcen

  2. eine Client-Klasse (der „Wrapper“), dass ein Drittanbieter-Entwickler verwenden können, in ihre eigene Anwendung mit Ihrem API

zu kommunizieren Wenn das der Fall ist, dann ist die Serverinformationen Sie suchen zu vermitteln, sind die Systemanforderungen für eine Anwendung, die Ihre Client-Klasse verwenden. Das hat keine Beziehung zu der Version von PHP, auf der Ihre API ausgeführt wird, außer dass Sie zufällig API und Client auf derselben Plattform entwickelt haben. Wenn Sie beispielsweise die API in PHP und den Wrapper in Java erstellt hätten, wäre es einfacher, die Unterscheidung zu sehen.

Die minimale PHP-Version für die Client/Wrapper-Klasse ist eine wichtige Information, die an Drittentwickler weitergegeben werden muss, damit sie die Klasse wie gewünscht verwenden können. In diesem Fall, dann ja, sollten Sie es irgendwo bereitstellen (mein Vorschlag wäre in der Dokumentation für die Wrapper-Klasse).

+0

Das ist ein sehr guter Punkt. Ich sollte dafür verantwortlich sein, dass der Wrapper mit PHP-Versionen arbeitet, nach denen ich suche, damit diese Informationen niemals wirklich an das System gesendet werden müssen. – kingmaple

Verwandte Themen