2014-03-19 6 views
0

현재 온라인 비디오 게임용 서버를 소유 한 사람들이 콘솔 명령을 입력하지 않고도 서버를보다 잘 제어 할 수있는 웹 사이트를 구축 중입니다. 이를 위해 사용자는 게임 서버의 IP 주소와 포트를 입력하고 스크립트는 fsockopen()을 사용하여 TCP 연결을 시도합니다. 그런 다음 fwrite를 사용하여 원본 서버 쿼리 프로토콜을 사용하여 명령을 보내고 예상 응답을 수신합니다.사용자가 입력 한 IP 주소에 대한 fsockopen - 보안 문제

지금까지이 기능은 아름답게 작동하고 있지만 사실상 모든 주소에 fsockopen 연결을 허용하는 것에 대해 우려하고 있습니다. 보안을 위해 사용자가 연결 서버를 완전히 제어 할 수 있다면 어떻게 될까요? 코드 실행이나 기타 심각한 우려 사항이 있습니까?

대단히 감사합니다.

답변

2

PHP 자체에 버그가없는 한, 소켓에서 값을 읽는 것이 PHP에서 안전합니다.

나는 인터넷상의 임의의 서비스에 연결할 수있는 임의의 사용자에 대해 우려하고 있습니다. 구현 방법에 따라 스팸을 발송하거나 DDoS 공격 또는 다른 종류의 공격을 돕는 데 컴퓨터를 사용할 수 있습니다. 그래서

:

  • 허용 안 특정 포트를 입력 할
  • 다른 작업을 금지 (예 : 127/8, 10/8로) 특정 IP 범위를 허용하지 (모든 < 1024는 "잘 알려진"포트입니다) 정상적인 값일 수는 없습니다.
  • 속도 제한값
  • 컴퓨터가 어떤 용도로 사용되는 경우 실행되는 동작을 기록하십시오 악성 코드
+0

큰 조언. 다행히 내가 연결 한 모든 게임 서버는 예상 포트 범위가 25000을 초과하므로 언급 한 범위를 벗어납니다. 나는 그것 밖에서 아무것도 허용하지 않을 것이고 아마도 어떤 식 으로든 연결 빈도를 제한 할 것입니다. –