本文和大家分享的主要是redis數據庫安全設置相關內容,一起來看看吧,希望對大家學習和使用這部分內容有所幫助。 Redis作為一個高速數據庫,在互聯網上,必須有對應的安全機制來進行保護,方法有2,如下。 1.比較安全的辦法是采用綁定IP的方式來進行控制。 請在redis.conf文件找到如下配置 # If you want you can bind a single interface, if the bind option isnot # specified all the interfaces will listen for incoming connections. # # bind 127.0.0.1 把# bind 127.0.0.1前面的注釋#號去掉,然后把127.0.0.1改成你允許訪問你的redis服務器的ip地址,表示只允許該ip進行訪問 這種情況下,我們在啟動redis服務器的時候不能再用:redis-server,改為:redis-server path/redis.conf 即在啟動的時候指定需要加載的配置文件,其中path/是你上面修改的redis配置文件所在目錄,這個方法有一點不太好,我難免有多臺機器訪問一個redis服務。 2.設置密碼,以提供遠程登陸 打開redis.conf配置文件,找到requirepass,然后修改如下: requirepass yourpassword yourpassword就是redis驗證密碼,設置密碼以后發(fā)現可以登陸,但是無法執(zhí)行命令了。 命令如下: redis-cli -h yourIp -p yourPort//啟動redis客戶端,并連接服務器 keys * //輸出服務器中的所有key 報錯如下 (error) ERR operation not permitted 這時候你可以用授權命令進行授權,就不報錯了 命令如下: auth youpassword 另外,在連接服務器的時候就可以指定登錄密碼,避免單獨輸入上面授權命令 命令如下: redis-cli -h yourIp-p yourPort -a youPassword 除了在配置文件redis.conf中配置驗證密碼以外,也可以在已經啟動的redis服務器通過命令行設置密碼,但這種方式是臨時的,當服務器重啟了密碼必須重設。命令行設置密碼方式如下: config set requirepass yourPassword 有時候我們不知道當前redis服務器是否有設置驗證密碼,或者忘記了密碼是什么,我們可以通過命令行輸入命令查看密碼,命令如下: config get requirepass 如果redis服務端沒有配置密碼,會得到nil,而如果配置了密碼,但是redis客戶端連接redis服務端時,沒有用密碼登錄驗證,會提示:operation not permitted,這時候可以用命令:authyourpassword 進行驗證密碼,再執(zhí)行 config set requirepass,就會顯示yourpassword 由于redis并發(fā)能力極強,僅僅搞密碼,攻擊者可能在短期內發(fā)送大量猜密碼的請求,很容易暴力破解,所以建議密碼越長越好,比如20位。(密碼在 conf文件里是明文,所以不用擔心自己會忘記)