2012-03-29 2 views
1

필자는 입력 유효성 검사 및 암호화를 비롯한 다양한 통신 관련 옵션을 포함하는 API 프레임 워크를 구축했습니다.사용자 에이전트 문자열에 PHP 용 PHP 버전과 Apache 버전을 보내는 것이 옳은가요?

다른 시스템에서 내 API에 연결하려고 할 때 프로세스를 단순화하기 위해 모든 옵션 때문에 'API 래퍼'클래스가 필요하다고 생각했습니다. 그래서 그들은 기본적으로 하나의 클래스를 다운로드 할 수 있으며 시스템에서 그 클래스를 통해 내 시스템에 쉽게 연결할 수 있습니다.

이 래퍼 클래스는 cURL을 사용하여 요청을 만듭니다.

내 시스템에는 모든 요청에 ​​대해 사용자 에이전트 문자열을 추적하는 것을 포함하여 향후 참조 및 조사 (문제가 성능 등급 표시와 함께 나타나는 경우)를 위해 API 호출을 추적하는 로거도 포함됩니다.

내 질문에, 나는이처럼 API 래퍼 클래스 버전과 함께 해당 문자열에서 아파치와 PHP 버전 번호를 포함하는 경우 그것을 얼마나 좋은지 나쁜지 :

myApi/1.0 (Apache 2.2.17;PHP 5.4.0) 

나는 그것이 인 경우 걱정 문제는 PHP 버전 번호가 서버와 클라이언트 컴퓨터와 서버 사이에 있지 않더라도 웹에서 이러한 방식으로 전송되는 경우 문제가 발생합니까?

+3

서비스가 여러 버전의 PHP/Apache에서 동시에 호스팅됩니까? 그렇지 않다면 새로운 시스템으로 이동할 때마다 API 버전 번호를 업데이트 할 것입니다. 그들은 서버 정보를 알 필요가없고, 변경할 수없고, 아마도 조정할 수 없으므로, 그것이 당신의 이익을 위해서라면, 나는 그것을 피할 것입니다. 그리고 네, PHP 또는 Apache (또는 WordPress)의 버전을 아는 것은 모든 버전의 버그/취약점을 알고 있기 때문에 위험합니다. – Anthony

+1

앤서니 (Anthony)가 말했듯이, 보안 대책이 최종 사용자로부터 서버 세부 사항을 숨기는 것이 좋습니다. – Nazariy

+0

이점은 API 성능에 대한 더 나은 피드백을 제공하므로 해당 프레임 워크에서 개발하는 개발자에게 이점이 있습니다. 하지만 개발자가 더 나은 성능 피드백을 얻으려면 서버 보안을 희생하지 않고 API 래퍼 버전 번호 만 남겨 두는 것이 좋습니다. – kingmaple

답변

4

API와 클라이언트의 차이점을 넘을 수도 있습니다. 질문을 의역, 당신이 내장 된 것 같은 소리 :

  1. 다양한 서비스/자원

  2. 클라이언트 클래스 (이하 "래퍼")과 API는 써드 파티 개발자에 사용할 수있는 그런 경우 자신의 응용 프로그램이 API

와 통신하기 위해, 당신은 전달하기 위해 찾고있는 서버 정보는 클라이언트 클래스를 사용하는 응용 프로그램에 대한 시스템 요구 사항입니다. 동일한 플랫폼에서 API와 클라이언트를 모두 개발 한 경우를 제외하고는 API가 실행되는 PHP 버전과 아무런 관련이 없습니다. 예를 들어 PHP로 API를 만들고 자바로 래퍼를 작성했다면 그 차이를 쉽게 볼 수 있습니다.

클라이언트/래퍼 클래스의 최소 PHP 버전은 타사 개발자에게 전달해야하는 중요한 정보이므로 사용자가 의도 한대로 클래스를 사용할 수 있습니다. 그렇다면 네, 어딘가에 제공해야합니다 (제 제안은 래퍼 클래스의 문서에 있습니다).

+0

이것은 매우 좋은 지적입니다. 래퍼가 내가 확인한 PHP 버전에서 작동하는지 확인해야하므로이 정보를 시스템에 보내지 않아도됩니다. – kingmaple

관련 문제