2016-02-24 31 views
0

爲什麼Redis連接從C#工作而沒有指定憑據?我有這個代碼工作並連接到遠程服務器。我的客戶機是windows,而REMOTE-MACHINE是Linux服務器。這是否意味着我的LAN中的任何人都可以連接?爲什麼Redis連接從C#工作而沒有指定憑證?

public class RedisConnectorHelper 
    {     
     static RedisConnectorHelper() 
     { 
      RedisConnectorHelper.lazyConnection = new Lazy<ConnectionMultiplexer>(() => 
      { 
       return ConnectionMultiplexer.Connect("REMOTE-MACHINE"); 
      }); 
     } 

     private static Lazy<ConnectionMultiplexer> lazyConnection;   

     public static ConnectionMultiplexer Connection 
     { 
      get 
      { 
       return lazyConnection.Value; 
      } 
     } 
    } 
+0

'Redis的-cli'也作品,未經憑據 –

回答

1

Redis Security頁:

的Redis的設計是由可信任的環境中受信任的客戶端訪問。這意味着通常將Redis實例直接暴露給互聯網,或者通常不受信任的客戶端可以直接訪問Redis TCP端口或UNIX套接字的環境並不是一個好主意。

提供了一些配置文件中存儲密碼的非常基本的身份驗證,但是正如文檔中描述的那樣,it provides a tiny layer of authentication

安全必須通過防火牆,端口阻塞,SSL在網絡級別實施。 Redis本身不提供SSL,但您可以使用SSL代理,例如Amazon和Azure等雲提供商,將SSL代理放在其集羣前。

Redis的客戶喜歡StackExchange.Redis支持SSL,例如,通過在connection string

2

Redis的默認行爲允許它在不指定任何憑證的情況下接受連接。如果你想改變這個,那麼修改Redis .conf文件以更好地配置它。至於你的局域網問題,我不知道你的網絡如何配置,所以我真的不能爲你回答。

+0

設置ssl=true該文檔提醒,雖然這是一個非常薄弱的​​安全措施 - 密碼存儲在配置文件。假定服務器到服務器的連接應該在網絡級別進行保護,使用防火牆,阻塞端口,服務器證書等。 –

相關問題