웹 브라우저에서 쿠키를 사용하는 것이 데스크탑 애플리케이션 개발의 정당한 이유입니까?

웹 브라우저에서 쿠키를 사용하는 것이 데스크탑 애플리케이션 개발의 정당한 이유입니까?

데스크톱 클라이언트에서 OpenID 인증을 쉽게 해주는 앱을 만들려고 생각 중입니다. 기본 원칙은 가능한 모든 OpenID 공급자에 대해 하드 코딩된 인증을 피하기 위해 웹 브라우저에서 쿠키를 훔치는 것입니다.

사용자가 OpenID 공급자에 로그인했다고 가정하면 애플리케이션은 기본 브라우저에서 쿠키를 복제하고 적절한 OpenID URL 요청을 사용하여 필요한 서비스에 대해 인증합니다.

이 애플리케이션을 사용 가능하게 만들려면 Linux에서 가장 일반적으로 사용되는 웹 브라우저가 무엇인지 알아야 하며 아마도 통계적 증거도 있어야 합니다. 지금은 Firefox와 Chromium이 가장 인기 있는 것 같아요.

참고: 응답자가 안전과 표준을 강조함에 따라 이 질문의 제목이 편집되었습니다.

답변1

인증을 위해 "웹 브라우저에서 쿠키를 훔치는 것"은 악성 코드가 개인 정보 및 로그인 데이터를 얻기 위해 수행하는 것과 정확히 같습니다.

이 접근 방식이 효과가 있다면 각 브라우저의 개발팀에 해당 소프트웨어의 보안 취약점을 알리는 것이 좋습니다.

답변2

웹 브라우저에서 쿠키를 훔치는 것은 스크래핑 스크립트를 작성하고 스크립트에서 일부 복잡한 웹사이트 인증을 처리하고 싶지 않을 때 흔히 발생하는 일입니다.

전통적으로 브라우저는 Netscape에서 상속받은 간단한 텍스트 형식으로 쿠키를 저장합니다 cookies.txt. Wget에는 옵션이 있습니다--load-cookies이와 같은 파일을 로드합니다.

최신 버전의 Firefox 및 Chrome은 더 이상 이 형식을 사용하지 않고 대신 SQLite 데이터베이스를 사용합니다. 파일을 덤프할 수 있는 확장 프로그램이 있습니다 cookies.txt.쿠키 수출업체그리고cookie.txt 내보내기.

이것은 기술적인 생각을 가진 사람들이 사용하는 스크립트에는 모두 훌륭하지만 일반 공개 응용 프로그램에서는 수행하지 않습니다. 어떤 브라우저를 사용해야 할지 알 수 없는 고통스러운 상황에 처하게 될 것이며(이 사용자는 3개의 Firefox 프로필과 2개의 Chrome 프로필을 가지고 있는데 어느 것을 살펴봐야 할까요?) 덜 일반적인 브라우저(Opera, Konqueror, Gecko) 사용자를 화나게 만들 것입니다. , 등.). ). 작동하더라도 유용성에 큰 영향을 미칠 것입니다. 사용자가 앱을 계속 사용하는 한 애플리케이션을 사용하기 전에 브라우저에서 작업(사이트에서 로그아웃 또는 쿠키 삭제)을 수행하도록 요구하는 대신에 가능합니다.

대상 웹사이트가 상호 작용하기 어려운 경우에도 이 접근 방식이 합리적이라고 생각합니다. 그럼에도 불구하고 저는 귀하의 애플리케이션이 브라우저 자동화 프레임워크를 통해 자체 브라우저 인스턴스(자체 구성 파일 포함)와 상호 작용하도록 하는 것을 선호합니다.셀렌또는바티에. 일반적인 OpenID 로그인의 경우 알려진 브라우저를 호출하여 인증 정보를 뱉어내는 것이 더 낫다고 생각합니다.

답변3

이것이 역효과를 낳을 수 있는 방법은 여러 가지가 있습니다.

브라우저에서 쿠키를 얻는 방법은 다양하지만 공식 API를 사용하여 수행되는 것은 아닙니다. 이는 현재 출시된 소프트웨어 버전의 구현 세부 사항에 의존하며 사전 통지 없이 언제든지 변경될 수 있음을 의미합니다. 브라우저 내부가 재설계됨에 따라 애플리케이션이 무작위로 중단될 수 있으며 중단될 수도 있습니다. 변경 사항을 미리 알지 못할 수도 있으므로 수정 사항을 찾는 데 며칠 또는 몇 주가 걸리더라도 화난 사용자는 완전히 손상된 프로그램을 찾으러 갈 것입니다. 브라우저 공급업체가 보안상의 이유로 쿠키 저장소를 암호화하기로 결정한 경우 전체 프로그램을 수정할 수 없습니다.

많은 최신 브라우저에는 다중 프로필이라는 개념이 있습니다. 개인 계정이나 회사 계정을 사용하여 Edge에 로그인할 수 있습니다. 어느 쿠키에서 쿠키를 추출할지 어떻게 알 수 있나요? 사용자가 브라우저 프로필을 전환할 때 앱에서 계정을 전환하기를 원합니까? 업무용 계정과 개인용 계정을 혼동하는 것은 오랫동안 사용자에게 재앙을 불러왔습니다. 만약 내가생각하다앱에서 하나의 계정을 사용하고 내 브라우저에서 다른 계정을 사용하시겠습니까?

아마도 가장 중요한 것은 애플리케이션 사용자가 익숙하지 않은 매우 특정한 방식으로 웹 브라우저를 사용하도록 강요한다는 것입니다. 나(그리고 다른 많은 사람들)는 비공개/시크릿 모드(또는 유사한 플러그인)를 사용합니다.쿠키가 자동으로 삭제됨) 로그인이 필요한 모든 웹사이트에 접속하세요. 이렇게 하면 브라우저를 닫은 후에도 쿠키나 기타 로그인 정보가 유지되지 않습니다. 귀하의 신청서는필요하다사용자는 인증 정보를 안전하지 않은 방식으로 저장하는 방식으로 브라우저를 사용합니다. 안전을 중시하는 사람들은 이것이 불가능하다고 생각할 것이다.

관련 정보