2016-08-02 1 views
0

회사의 인트라넷에있는 웹 사이트에 로그인 시스템을 사용하지 않는 방법을 찾고 있습니다. 클라이언트 IP, MAC 주소 또는 다른 고유 식별자를 찾으려고 시도했습니다. 쿠키 사용을 피하려고합니다. 클라이언트 IP 및 MAC 주소가 스푸핑 될 수 있음을 알고 있지만 여전히 사용하려고합니다.인트라넷 유적/자바 스크립트에서 고유 한 클라이언트 IP 또는 MAC 주소 받기

다른 비슷한 게시물을 많이 보았습니다. 특히 this.connection.clientAddress를 사용하는 게시물은 많이 보았습니다. 그러나 불행히도 이러한 기능을 사용할 수 없었습니다. localhost에 사용할 때만 작동합니다. 서버에서 사용하려고 시도 할 때 서버 앞의 모든 프록시 때문에 고유 한 IP 주소를 얻을 수 없습니다. 나는 HTTP_FORWARDED_COUNT 환경 변수를 사용하여 프록시가 얼마나 많은지 추측하고 잠재적으로 고유 값을 얻으려고 시도했지만 실패했습니다. 누구든지이 문제에 접근하는 방법에 대한 아이디어가 있습니까?

편집 추가 정보 : 내가 번 시간 (아마도 24 시간)의 설정 기간 동안보다 내 사이트에 특정 작업을 수행에서 특정 사용자를 방지하기 위해 고유 한 정보를 사용하려고 시도 할 것이다.

+0

인증을 사용하고 (AD 또는 LDAP 서버를 통과하여) 감사 로그를 보관하십시오. 시스템에서 토큰을 파생시키는 것보다 간단하고 안정적이며 사용하기 쉽습니다. – ssube

+0

나는 LDAP를 사용하여 특정 사항을 비교하지만, 귀하가 제안하는 내용에 대해서는 혼란 스럽습니다. 사용자를 식별하기 위해 LDAP에 어떤 고유 한 필드를 입력 할 수 있습니까? 제발 elebaorate 주시겠습니까? – scicrazed

+0

그들의 사용자 이름 은요? 사용자 ID? 인트라넷 ID 공급자는 이미 각 보안 주체마다 고유 한 식별자를 가지므로 새 시스템을 개발하기보다는이를 사용하십시오. – ssube

답변

-1

저는 클라이언트 쪽보다는 서버 쪽 기술을 사용하는 것이 가장 좋습니다. 클라이언트 측 Javascript는 직접 IP 정보를 보내지 않을 것입니다. PHP에서는 사용자가 $_SERVER['REMOTE_ADDR']을 사용할 수 있습니다. 그러나 IP 주소를 받아들이려면 아주 쉽게 스푸핑 될 수 있으며 컴퓨터가 정적으로 할당되지 않으면 IP 주소가 자주 변경되어 신뢰할 수 없게 될 수 있습니다.

+0

"this.connection.clientAddress"를 사용할 때 서버 측 코드에 배치했습니다. 내가 잘못 사용 했나요? 그리고 제 연구에 앞서, 당신이 제안한 것과 비슷한 명령을 찾았습니다. 유성에서는 다음과 같이 썼습니다 : this.connection.remoteAddress. 불행히도, "undefined"를 사용할 때를 제외하고는 결과를 얻을 수 없었습니다. clientAddress를 사용했을 때 localhost에서만 고유 한 주소를 부여했습니다. 왜 이것이 될 수 있는지 아십니까? 그리고 내가 뭘 잘못했을 수도있는 이론들? – scicrazed

+0

또한 솔루션은 서버 앞의 모든 프록시를 어떻게 우회 했습니까? – scicrazed

+0

Meteor는 클라이언트 측 프레임 워크로 어떤 서버 측 시스템을 사용하고 있습니까? PHP, ASP, 장고? – Harvey