MediaDevices API는 연결된 미디어 입력 장치(예: 카메라, 마이크 및 화면 공유 소스)에 대한 액세스를 허용합니다. 브라우저가 이러한 장치에서 비디오 및 오디오 스트림과 같은 실시간 미디어 데이터를 캡처할 수 있도록 합니다.
권한 액세스 지문
N/A
허가됨
질문
거부됨
알 수 없음
미디어 장치 검사는 카메라와 마이크에 대해 무엇을 알려주나요?
권한이 없으면 장치 유형과 개수만 알 수 있습니다. 카메라, 마이크, 스피커가 몇 개인지입니다. 장치 이름을 읽을 수 없고 비디오나 오디오에 접근할 수도 없습니다. 명시적으로 접근을 허용한 후에만 deviceId와 label 같은 세부 정보가 표시됩니다.
장치 이름이 비어 있거나 무작위 문자열인 이유는?
브라우저의 보호 메커니즘입니다. 장치의 label과 deviceId는 사용자가 권한을 부여할 때까지 비어 있거나 매번 새로운 임시 값으로 반환됩니다. 사이트가 동의 없이 지속적인 식별자를 만들지 못하게 하기 위해서입니다. 액세스를 허용하면 label을 읽을 수 있습니다. 시크릿 브라우징에서는 deviceId도 세션마다 바뀝니다.
장치 개수를 핑거프린팅에 사용할 수 있나요?
네, 하지만 사용자를 많이 구분하지는 못합니다. 카메라, 마이크, 스피커 개수의 조합은 어느 정도 신호를 제공하지만, 대부분의 일반 컴퓨터는 동일한 카메라 하나, 마이크 하나, 스피커 하나 구성을 공유합니다. 한 사람을 특정하는 방법보다 환경의 선언이 일관적인지 교차 확인하는 보조 단서로 더 적합합니다.
사용 가능한 장치가 없다고 하는데 분명히 카메라가 있습니다. 어떻게 해야 하나요?
세 계층을 확인하세요. 페이지에 권한이 부여되었나요(주소 표시줄의 카메라 또는 마이크 아이콘 확인)? 시스템 설정에서 브라우저의 장치 접근이 차단되어 있나요? 카메라가 이미 다른 앱에 의해 독점적으로 사용 중인가요? 가상 장치가 없는 가상 머신이나 원격 데스크톱 세션도 빈 결과를 반환합니다.
이 검사가 몰래 카메라를 켜나요?
아니요. 장치 목록을 읽기 위해 열거 API를 호출할 뿐이며, 비디오나 오디오를 캡처하지 않고 사용자 권한도 필요하지 않습니다. 브라우저는 페이지가 실제로 미디어 스트림을 요청할 때만 접근을 요청하며, 그때 카메라 표시등이 켜집니다.