브라우저와 기본 애플리케이션간에 안전하게 통신


12

로컬로 설치된 기본 응용 프로그램 브라우저에서만 가져올 수있는 데이터가 필요한 웹 응용 프로그램을 작업 중입니다.

기본 응용 프로그램과 안전하게 통신 할 수 있도록 브라우저 샌드 박스를 어떻게 다룰 수 있습니까?

내가 찾은 유일한 예에서 사용자는 수동으로 두 토큰 사이에서 일부 토큰과 파일을 이동합니다. 이것은 피하고 싶은 끔찍한 사용자 경험입니다.


1
기본 응용 프로그램에 localhost에서 실행되는 작은 웹 서버가있는 경우 일종의 솔루션 작동이 가능할 수 있습니다.
— amon

나도 그렇게 생각하고 있었는데 ... "고려되지 않을"미심쩍은 우려가 모호했다. 오늘이 작업을 수행하는 응용 프로그램의 예가 있습니까? (답변에 이것을 작성하면 아마도 포인트를 얻을 것입니다)
— Zak Kus

임베디드 브라우저가 가장 좋습니다. 앱에 브라우저를 내장하고 필요에 따라 상호 작용을 프로그래밍하십시오.
— GregJava

답변:


7

기본 응용 프로그램에 웹 서버를 포함시킨 다음 클라이언트가 http : // localhost / xyz 에 대한 하드 코딩 된 링크를 통해 웹 서버를 호출 할 수 있습니다 (여기에서 크로스 사이트 스크립팅 경고에 대해 걱정하거나 서버를 실행해야 할 수 있음) http가 아닌 포트에서). 웹 소켓을 사용하는 경우 브라우저가 통신을 시작하면 기본 애플리케이션이 웹 브라우저로 데이터를 푸시 할 수도 있습니다.

임베디드 로컬 브라우저 컨트롤은 맞춤형 웹 서버에서 시각화 데이터를 요청하고 개발 할 때 동일한 PC에서 둘 다 실행합니다.

C / C ++ (Mongoose, NxWeb, civetweb 등)을위한 작고 효율적인 내장 웹 서버가 많이 있으며 C #은 완전한 WCF 서버를 사용하는 경향이 있으며, 파이썬에는 IIRC에 작은 웹 서버가 있습니다.


이와 같은 솔루션을 개발 중이지만 브라우저가 인터넷 도메인 (www.mydomain.com)의 웹 페이지에서 로컬 호스트 웹 소켓 서버로 웹 소켓을 통해 연결하려고 할 때 특히 웹 페이지가 제공되는 경우 몇 가지 문제가 있습니다 HTTPS 웹 소켓 서버가 wss (WebSocket with SSL)를 사용하도록 구성되어야합니다. 자체 서명 된 인증서를 사용하여 웹 소켓 서버를 "보안"하는 경우 브라우저는 웹 소켓 연결을 좋아하지 않습니다. 안전하지 않은 로컬 인증서를 수락하면 Firefox에서 허용하지만 다른 브라우저에서는 쉽게 연결할 수 없습니다.
— David

1
요즘 C #의 경우 최고의 내장 웹 서버는 자체 호스팅 owin 일 것입니다.
— Esben Skov Pedersen

8

기본 앱과 브라우저 앱을 혼용 할 수있는 몇 가지 방법이 있습니다.

PhoneGap 앱이 모바일에서하는 것처럼 브라우저를 기본 앱에 내장 할 수 있습니다. 그러면 브라우저의 자바 스크립트 엔진을 확장 할 수 있고 둘 사이에서 전화를 걸 수 있습니다.

또는 아키텍처를 다시 생각하십시오. 기본 애플리케이션과 브라우저 기반 애플리케이션 모두 서버를 중간으로 사용하십시오. 따라서 브라우저와 기본 응용 프로그램은 웹 서버와 만 통신하여 필요한 경우 두 서버간에 정보를 전달합니다.

또는 기본 기능이 필요한 경우 단일 기본 응용 프로그램을 만드십시오.

통제 된 환경에서 실행되는 응용 프로그램 이외의 다른 것에 대해서는 '로컬 웹 서버'접근 방식을 권장하지 않습니다. 지원 요구 사항이 최소 인 최종 사용자 컴퓨터에 소프트웨어를 설치하고 실행하려는 경우 전체 방화벽 및 바이러스 백신 소프트웨어 관련 문제를 처리해야합니다.


기본 앱에서 필요한 데이터는 사용자가 아닌 해당 머신이 허용 가능한지 여부입니다. 일반 웹 서버를 사용하는 경우 브라우저가 설치된 시스템이 기본 앱이 평가 한 시스템과 동일한 지 확인할 수 있습니다. 또한, 전적으로 동의합니다. shoudln에는 아무런 이유가 없지만 두 가지 이유가 있습니다. ^ _ ^
— Zak Kus

또한 네이티브 앱에 브라우저를 내장하면 브라우저와 네이티브 앱 사이의 통신이 실제로 어떻게 허용되는지는 명확하지 않습니다.
— Zak Kus

@Zak 내가 말했듯이 Javascript 엔진을 확장하여 PhoneGap이 모바일 앱에서하는 방식으로 서로 대화 할 수 있습니다. 네이티브 앱이 실행하는 페이지에서 자바 스크립트가 호출 할 수있는 메소드를 정의하거나 네이티브 앱에서 자바 스크립트 기능을 호출합니다.
— GrandmasterB

그런 식으로 내장 브라우저를 사용하면 브라우저가 실행중인 컴퓨터에서 브라우저를 실행하는 가장 좋은 방법이라고 생각합니다.
— GrandmasterB

기술적으로 웹보기가있는 기본 앱이 가장 쉬운 방법이라는 데 동의합니다. 그러나 heise online 의이 독일어 기사 에 따르면 android 4.3 이하의 Android 웹 뷰어는 해결할 수없는 심각한 보안 문제가 있습니다.
— k3b 2019
당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.