Tarayıcı ile yerel bir uygulama arasında güvenli iletişim


12

Yalnızca yerel olarak yüklenen yerel uygulama tarayıcısından alabileceği verilere ihtiyaç duyan web uygulaması üzerinde çalışıyorum.

Yerel bir uygulama ile iletişim kurabilmeniz için (verilerin potansiyel olarak hassas olması nedeniyle) tarayıcı sanal alanında nasıl gezinebilirsiniz.

Bulduğum tek örnekte, kullanıcı elimden kaçınmak istediğim korkunç bir kullanıcı deneyimi olan bazı belirteçleri ve dosyaları ikisi arasında taşıyor.


1
Yerel uygulamanın localhost üzerinde çalışan küçük bir web sunucusu içerdiği yerlerde bir tür çözüm alabilirsiniz.
amon

Ben de öyle düşünüyordum ... Bunun "endişe" olmayacağına dair belirsiz, ciddiyetsiz endişelerim vardı. Bugün bunu yapan uygulama örnekleri var mı? (bunu bir cevapta yaz ve muhtemelen puanları alacaksın)
Zak Kus

Gömülü tarayıcı en iyisi olacaktır. Tarayıcıyı uygulamaya gömün ve etkileşimlerinizi gerektiği gibi programlayın.
GregJava

Yanıtlar:


7

Yerel uygulamaya bir web sunucusu gömebilirsiniz, daha sonra istemciniz http: // localhost / xyz sabit kodlu bağlantılar aracılığıyla bu numarayı arayabilir (burada siteler arası komut dosyası uyarıları hakkında endişelenmeniz gerekebilir ve / veya sunucuyu çalıştırabilirsiniz. http olmayan bir bağlantı noktasında). Web soketleri kullanırsanız, yerel uygulamanız, tarayıcı iletişimi başlattıktan sonra verileri web tarayıcısına bile gönderebilir.

Yerel olarak kendim yaparım, gömülü bir webbrowser denetimi özel bir web sunucusundan görselleştirme verileri ister ve geliştirirken her ikisini de aynı bilgisayarda çalıştırırım.

C / C ++ (Mongoose, NxWeb, civetweb vb.) İçin birçok küçük ve verimli gömülü web sunucusu vardır, C # tam bir WCF sunucusu için gitme eğilimindedir, python IIRC'de küçük bir web sunucusu ile birlikte gelir.


Böyle bir çözüm üzerinde çalışıyorum, ancak özellikle web sayfası ile hizmet veriliyorsa, tarayıcı bir yerel etki alanı websocket sunucusuyla bir Internet etki alanından (www.mydomain.com) bir web sayfasından websocket üzerinden bağlanmaya çalıştığında bazı sorunlar var HTTPS, websocket sunucusunun wss (SSL'li WebSocket) kullanacak şekilde yapılandırılmasını gerektirir. Websocket sunucusunu "güvenli" tutmak için kendinden imzalı bir sertifika kullanırsanız, tarayıcı websocket bağlantınızı sevmez. Firefox, güvenli olmayan yerel sertifikayı kabul ettiğinizde buna izin verecektir, ancak diğer tarayıcılar bu kadar kolay bağlanmanıza izin vermez.
David

1
C # bu gün için en iyi gömülü web sunucusu muhtemelen kendi kendine barındırılan owin.
Esben Skov Pedersen

8

Yerel bir uygulamayı ve bir tarayıcı uygulamasını karıştırmanın birkaç yolu vardır.

Tarayıcıyı, PhoneGap uygulamalarının mobil cihazlarda yaptığı gibi yerel uygulamanın içine yerleştirebilirsiniz. Bu, tarayıcının javascript motorunu genişletmenize ve ikisi arasında arama yapmanıza olanak tanır.

Alternatif olarak, mimarinizi yeniden düşünün. Hem yerel uygulamanın hem de tarayıcı tabanlı uygulamanın sunucuyu bir geçiş aracı olarak kullanmasını sağlayın. Bu nedenle, hem tarayıcı hem de yerel uygulama, yalnızca ikisi arasında gerekli bilgileri ileten web sunucusuyla konuşur.

Veya yerel işlevselliğe ihtiyacınız varsa ... sadece tek bir yerel uygulama yapın.

Kontrollü ortamlarda çalışan uygulamalar dışında 'yerel web sunucusu' yaklaşımını önermiyorum. Yazılımınız en az destek gereksinimi olan son kullanıcı makinelerine yüklenip çalışacak şekilde tasarlandıysa, kendinizi bir dizi güvenlik duvarı ve virüsten koruma yazılımı ile ilgili sorunlarla uğraşırken bulacaksınız.


Yerel uygulamadan ihtiyacım olan veriler, bu makinenin (kullanıcı yerine) kabul edilebilir olup olmadığına bağlıdır. Aralarında normal bir web sunucusu kullanıyorsanız, tarayıcının açık olduğu makinenin yerel uygulamanın değerlendirdiği makineyle aynı olduğundan emin olabilir misiniz? Ayrıca, tamamen katılıyorum, iyi bir nedenden ötürü iki tane yok, ama nedenlerimiz var ^ _ ^
Zak Kus

Ayrıca, bir uygulamanın yerel uygulamaya gömülmesinin tarayıcı ve yerel uygulama arasındaki iletişime nasıl izin vereceği açık değil
Zak Kus

@Zak dediğim gibi, javascript motorunu, PhoneGap'in mobil uygulamalarda yaptığı gibi birbirleriyle konuşmalarına izin vermek için genişletebilirsiniz. Sayfadaki yerel uygulama tarafından yürütülen javascript tarafından çağrılabilecek yöntemleri tanımlar veya yerel uygulamadan javascript işlevlerini çağırırsınız.
GrandmasterB

Bunun gibi gömülü bir tarayıcı kullanmak, tarayıcının üzerinde çalışması gereken makinede çalışmasını sağlamanın en iyi yolu olacağını düşünüyorum.
GrandmasterB

Teknik olarak web manzaralı yerel bir uygulamanın en kolay yol olduğunu kabul ediyorum. Ancak heise çevrimiçi bu Almanca dil makalesine göre android 4.3 ve aşağıdaki android web görüntüleyici düzeltilemez ciddi güvenlik sorunları var.
k3b
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.