[英]Encrypting data using query in Node.js and MySql
使用 node.js 中的查詢加密 MySql 中發布的數據是否安全?
我試過這樣的東西,它在加密方面工作得很好,但我不知道它到底有多安全,我在這個領域幾乎是一個初學者。
db.query('INSERT INTO questions (content) VALUES(aes_encrypt(?, "key"))',
[content], err => {
if(err){
console.log(err);
}
else{
res.send("succesfully posted")
}
})
假設我想加密密碼,這樣它就可以免受攻擊者等可能試圖從數據庫中獲取數據的威脅
密碼有兩個主要威脅。
您需要讓客戶端(通常是瀏覽器)加密數據。 在數據庫中執行此操作為時已晚。
使用 HTTPS 而不是普通的 HTTP。
我看到有一些庫設計用於在將數據發送到服務器之前對其進行加密。
HTTPS 非常出色。 不要嘗試使用現成的加密庫來滾動您自己的安全傳輸層; 只需使用 HTTPS 。
您還需要保護 API 服務器和數據庫服務器之間的連接。 這通常不是問題,因為它們通常發生在同一台機器上,或者在它們之間具有相當私有網絡連接的兩台機器上。 如果您的數據庫和 API 服務器在不同的機器上運行並通過共享網絡進行通信,您需要對此進行更多調查。
如果您的數據庫服務器受到威脅,那么攻擊者可以讀取密碼。
在這個階段,對於您的網站來說已經太晚了,知道密碼的攻擊者不會對您造成更直接的傷害。
然而,由於許多用戶有回收密碼的習慣,這給了攻擊者一堆密碼和用戶名/電子郵件地址,以便在其他網站上嘗試。
這會傷害您的用戶並損害您的聲譽。
僅存儲散列密碼。 這個答案涵蓋了使用 bcrypt 做到這一點。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.