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


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.