2013-05-14 29 views
2

我們繼承了一些比其他更糟糕的東西。用視圖替換純文本用戶表

最近繼承了具有明文密碼的用戶表。通常情況下,這並不是什麼大事,但桌子與許多網絡應用程序相連 - 其中一些我不能期望在沒有打破它們並且首先抱怨的情況下找到它們。

我想加密這個密碼列,而不需要修改這些神祕應用程序的連接字符串或硬編碼SQL。我認爲可以通過用一個使用'OR'子句的mysql視圖替換這個表來驗證兩種方式。這個想法可能類似於encrypted_sql_check或plaintext_sql_check,其中明文sql檢查看起來像md5(plaintextpw,salt)或somesuch,本質上是通過使用鹽的驗證器運行明文提交併檢查匹配。

雖然我不是一個dba,所以這只是一個codemonkey spitballing一些想法。這是可行的嗎?我會遇到insert/update/etc查詢的問題嗎?換句話說......有人能告訴我爲什麼這不起作用嗎?這個數據庫表也可以作爲一個drupal用戶表,所以如果有任何理由會把事情搞砸,那麼也很好理解。

謝謝!

+0

IRC上的某個人剛剛指出,明文密碼很可能會再次保存到日誌文件中的磁盤中。失敗:/有沒有人對這個想法有任何建議或想法? – SeaMirra 2013-05-14 17:15:13

回答

1

數據庫中的視圖通常是隻讀的,所以是的,嘗試通過這種視圖更新或插入值時會遇到問題。另一方面,在原始表格上工作應該立即工作並更新視圖。

+1

感謝您的迴應! 我意識到更新多視圖時遇到的一些問題,但根據此文檔,並不認爲這會是個問題。也許我錯了? http://dev.mysql.com/doc/refman//5.5/en/view-updatability.html – SeaMirra 2013-05-14 16:42:32

+0

要放棄這個(IE,按照正常的方式並重寫所有的應用程序)並給你回答信用。謝謝你在任何情況下回答! – SeaMirra 2013-05-17 00:52:39

+0

很酷,不知道是否有可能在MySQL中更新* some *視圖,但另一方面,我仍然相信視圖**不應該是可更新的,而應該保留爲只讀查詢優化器。我也懷疑是否有一種簡單的方法來反轉視圖的函數機制(使用salt + md5)。正如你已經說過的,重寫應用程序以使用體面的散列機制來檢查密碼確實更好。 – webmaster777 2013-05-17 16:02:13