2014-04-07 8 views
10

SignalR'ye yeni geliyorum ama ne kadar güvenli olduğunu merak ettim.SignalR Security

Örneğin, çok gibi tüm kullanıcılara mesaj göndermek için aşağıdaki yöntemi oluşturun: Yani

proxies.notificationHub.server = { 
    send: function (message) { 
     return proxies.notificationHub.invoke.apply(proxies.notificationHub, $.merge(["Send"], $.makeArray(arguments))); 
    } 
}; 

:

public class NotificationHub : Hub 
{ 
    public void Send(string message) 
    { 
     Clients.All.broadcastMessage(message); 
    } 
} 

SignalR bir js dosyasında aşağıdaki yöntemi (hub) üretir Dünyanın herhangi bir kullanıcısı bunu kopyalayıp konsollarına yapıştıramadı ve seçtiğim bir mesaj gönderdim.

var notifications = $.connection.notificationHub; 
notifications.server.send("Your site has been hacked!"); 

Ben sadece bu çalıştı ve bu işleri - yani, nasıl istemci tarafında yetkisiz mesaj göndermesini kullanıcılarımı engelleyebilirim?

+1

Ben, güvenlik SignIR için kanonik cevabı vardır şüpheli böylece ben Andrew tek taraflı yakın yanlış tanımışım inanıyoruz. –

+0

@Andrew Barber Düz soruma tek bir cevap soruyorum - kullanıcıların uygulamayı bu gibi istismar etmelerini nasıl önleyebilirim? Bence oldukça basit bir soru/cevap senaryosu var ... – user1477388

+0

Bence cevabın çok geniş olacağını düşünüyorum. Bir eğitici için uygun bir şey gibi görünüyor./cc @kirkwoll –

cevap

11

Diğerleri gibi bir HTTP son noktasıdır. Erişimi kısıtlamak istiyorsanız, kullanıcıların kimliğini doğrulamanız ve işlemlerini yetkilendirmeniz gerekir. Standart web kimlik doğrulama yöntemlerini (kimlik doğrulama, çerezler, Windows auth, vb.) Kullanarak kimlik doğrulaması yaparsınız ve SignalR yapılarını (işaret ettiğin Yetkilendirme özniteliği gibi) veya kendi kodunuzu kullanarak kodda yetkilendirebilirsiniz.

Bu

tüm belgelenmiştir geçerli: http://www.asp.net/signalr/overview/signalr-20/security/introduction-to-security

+0

Anladığım kadarıyla, bu sorunun en iyi cevabı standart ASP.NET kimlik doğrulama özelliklerini kullanmaktır. Bununla hangi kullanıcıların hangi yöntemlere erişebileceğini belirtebilirim. Tavsiyen için teşekkürler. – user1477388