任何解決方案都存在安全風險。您可以使用經過多年並且有一天會被黑客入侵的工具(來自我自己的經驗)。而且您可以爲安全解決方案付出很多,並且永遠不會被黑客入侵。所以,你需要將努力與影響相比較。
基本上,你需要保護4「門」在你的情況: 1.授權(密碼截取或者,例如不當餅乾,使用) 2. http協議 3.應用程序輸入 4.其他途徑訪問你的數據庫(不使用http,例如,通過密碼較弱的ssh端口,拿走你的電腦或硬盤等等。在某些情況下,你需要正確加密音量)
1和4不是專用於Prolog,而是4只是在本地服務器的情況下有一些具體的。
保護HTTP協議級別的手段不允許它可以接管你的SWI-Prolog的服務器控制請求。爲此,我建議安裝一些像nginx這樣的反向代理,它可以防止包括某種類型的DoS在內的攻擊。所以,瀏覽器會聯繫nginx,如果nginx是一個正確的http請求,nginx會將請求重定向到你的服務器。如果它具有相似的功能,您可以使用任何其他服務器而不是nginx。
您需要安裝適當的SSL密鑰,並允許SSL(HTTPS)在您的反向代理服務器。它不應該在你的swi-prolog服務器中。 Https將加密所有信息,並將通過http與swi-prolog進行通信。
想想授權。有很多方法可以很容易地打破。你需要學習這個話題,有很多信息。我認爲這是最重要的部分。
應用輸入的問題 - 法莫斯例子是「SQL注入」。研究例子。所有優秀的Web框架都有「入門」程序來清理所有可能的注入。取一個現有的代碼並用prolog重寫它。 此外,檢驗所有輸入字段具有非常長的字符串,不同字符集等
可以看到,安全性也不是那麼容易的,但你可以選擇與黑客的影響,考慮適當的努力。
另外,想想可能的攻擊者。如果有人非常感興趣,特別是要獲取您的信息,所有提及的方法都很好。但這可能是一種罕見的情況。大多數時候黑客只是掃描互聯網,並嘗試將已知的黑客應用到所有找到的服務器。在這種情況下,你最好的朋友應該是Honey-Pots和prolog本身,因爲黑客對swi-prolog內部的興趣的可能性非常低。 (黑客需要好好研究服務器代碼才能找到門)。
所以,我想你會發現足夠的方法來保護所有敏感數據。 但是,請不要將字典單詞和相同密碼組合的密碼用於一個目的,這是最重要的安全規則。出於同樣的原因,您不應該爲您的用戶提供所有信息的訪問權限,但應該保護應用級別的設計。
具體到本地服務器的情況下,是一個很好的防火牆,正確的網絡設置和encription硬盤分區中,如果您的本地服務器可以通過「黑客」竊取。
但是,如果你指的是應用程序應該可以訪問只能從你的本地網絡,而不是從互聯網你需要少得多的努力,主要是你需要檢查你的路由器/防火牆的設置,在我的列表中的第4門。
在一個情況下,你必須知道用戶的數量非常有限,你可以只建議他們使用VPN並不能保護你的服務器中的「全局」訪問的情況。
如果您的用戶數量有限,則可以忽略我答案的最大部分。只是建議使用VPN。您的服務器將無法訪問世界,但具有密碼的用戶將能夠連接到您的本地網絡並使用您的服務器。 –