방법에: 자바에 있는 서버 소켓 하이재킹
개관
소켓 하이재킹이 당신이 다른 과정에 의해 동일한 항구에 열린 서버 소켓을 무시하는 것을 허용한다. 운반 차단제 신청 (가난한 사람의 방호벽) 개발 같이 소켓 하이재킹 의 역시 몇몇 표준 어법도 및 약간 악 용도가 있다.
정상적으로 운영 체계는 당신이 다른 (또는 동일) 신청에 의해 이미 열리는 항구에 서버 소켓을 여는 것을 허용하지 않는다. 아무리 예외에 예외 및 예외가 있다.
소켓 하이재킹의 무엇과 어떻게
종종 묶는 것에 특정 IP 주소에 지정 없이 ServerSocket가 열린다. 따라서 소켓은 기계의 모든 유효한 IP 주소에 근본적으로 묶는다. 이것은 프로그래머를 위해 간단하다. 그러나 그것은 안전 구멍을 소개한다. 어떤 신청든지 동일한 기계의 그리고 동일한 항구에 특정한 IP 주소에 묶을 수 있다. 본래 서버 소켓은 잔여 항구에 아직도 묶는다. 실지로 항구는 특정한 IP 주소를 위한 새로운 응용 프로그램에 의해 공중납치되었다. 이것은 소켓 하이재킹이다.
소켓 하이재킹을 위한 자바 지원
JDK 1.4 자바에서 시작은 (부울 논리 연산) 방법 ServerSocket.setReuseAddress를 지원한다. 그것은 당신이 특정 IP 주소를 위한 항구를 위에 기술한 대로 공중납치하는 것을 허용한다. 당신이 서버 소켓을 공중납치하는 것을 허용하는 견본 부호는 여기 있다.
부호
ServerSocket ssock = 새로운 ServerSocket ();
(진실한) ssock.setReuseAddress; // 마술
ssock.bind (새로운 InetSocketAddress (주소, i)); // 주소 = IP 의 i = 항구
소켓 양말 = ssock.accept ();
//는 받아들여진 연결을 가진 당신의 일을 한다
sock.close ();
, 어떻게 에, 자바 소프트웨어 주요 뉴스 의 밑에 신청하는, 기술 주 |
|
RSS 2.0 |
Trackback 이 기사 |
이 기사를 이메일을 보내십시오
당신은 또한 읽고 싶을지도 모른다 |




































2007년 11월 16일 4:22 pm에
나는 이 하이재킹을 시도하고, 그러나 그것에게 일을 얻지 않았다.
나가에 묶을 수 있던 IP 주소만 localhost이었다.
다른 IP의 전부 던짐 java.net.Bi ndException: 요구한 주소를 할당할 수 없다: JVM_Bind?
2007년 11월 제 18 6:54 AM에
당신이 이 프로그램을 실행하고 있는지 어느 것이라고 (에) 당신의 컴퓨터에는 이 IP 주소가 있는가?
당신은 그것을 핑 소리가 날 수 있는가?