PCDVD數位科技討論區

PCDVD數位科技討論區 (https://www.pcdvd.com.tw/index.php)
-   疑難雜症區 (https://www.pcdvd.com.tw/forumdisplay.php?f=34)
-   -   請問各位兄台,如何避免sql server帳號、密碼被人知道 (https://www.pcdvd.com.tw/showthread.php?t=589197)

=風= 2006-02-06 11:00 PM

請問各位兄台,如何避免sql server帳號、密碼被人知道
 
小弟公司是用sql server 2000
前端程式是用vb開發
現在遇到一個問題
client端要連線進入sql server
必須要有sql server帳號、密碼
那這帳號、密碼要放在那裡才不會被人知道呢?
因為這組帳號和密碼大約一個月變一次到兩次
所以不可能寫入vb的程式碼中
一定要找一個不容易破解的地方存放
不知各位兄台們是如何解決這個問題呢?
麻煩了,謝謝

u8526425 2006-02-06 11:14 PM

為何會變來變去 ?
你可以設定帳號只能對特定table做特定動作
比如說a帳號只能對a table做讀取
將權限劃分開
把常用且無明顯安全顧慮的帳號固定
這樣還算ok
vb經過包裝也看不大到原始碼
唯一擔心是傳輸途中的明碼傳輸部份可能漏洩機密
但這有相當難度

若你要把帳密藏在某個文字檔中
讓vb匯入來撈出帳密也未嘗不可
但要先看你是Lan還是Wan再考量要怎藏
不過這樣真的比較安全嗎 ?

Serron 2006-02-06 11:36 PM

我是用 MD5 將密碼帳號加密後存起來.
傳輸時傳 MD5 碼(可以將時間加進去當參數).
由於 server 必須先建立帳號,也要能夠使用相同的 MD5 運算.
所以傳輸過程中只會看到 MD5 碼.

PS.我用的程式是自行開發的,不確定 SQL 是否可以這樣做.
不過可以當參考 :)

sep128 2006-02-07 12:03 AM

把連線碼放在dll(or ocx)裡面,每次前置啟動時就同步下載該dll,但是要記得用"動態"連結喔,
用靜態連結的話,啟動時就會載入該dll,那就不能更新了.

第二個方式就是用加密的方式,用base64 + MD5(對一般人而言,夠難破譯了),存成文字檔,
然後也是每次啟動時更新該文字檔,然後再由主程式讀入,解譯後存在字串變數裡,然後...

jhc 2006-02-07 12:09 AM

1. 加密放在 client 的 *.ini 或 registry 裡面,如果是用 VB.Net 的話,加密的 function
已經內建在 .Net framework 裡面了,很方便,加密的金鑰就不用變,寫在程式裡面

2. 用SQL Server的整合式認證(不知道有沒有記錯),讓 User 的 Windows 帳號就是 SQL Server
的帳號

=風= 2006-02-07 06:49 PM

引用:
作者u8526425
為何會變來變去 ?
你可以設定帳號只能對特定table做特定動作
比如說a帳號只能對a table做讀取
將權限劃分開
把常用且無明顯安全顧慮的帳號固定
這樣還算ok
vb經過包裝也看不大到原始碼
唯一擔心是傳輸途中的明碼傳輸部份可能漏洩機密
但這有相當難度

若你要把帳密藏在某個文字檔中
讓vb匯入來撈出帳密也未嘗不可
但要先看你是Lan還是Wan再考量要怎藏
不過這樣真的比較安全嗎 ?

感謝u兄的回答
密碼不可能放在vb內
原因是更改密碼會變得很麻煩

=風= 2006-02-07 07:08 PM

serron,sep128,jhc兄
謝謝您們的回答
小弟對MD5還不是很了解
目前還在研究中

小弟的想法如下:
請大家幫小弟想想這樣的可行性有多少
小弟把密碼檔(id_pw1.txt)放在192.168.1.1內部網部中
(此檔是不公開,除非知道id_pw1.txt檔名才知道此檔的內容)
此純文字檔如附件
小弟只會從那串密碼中
抓取第16字元、19字元及最後一個字元
就是ab3
不知道這樣行得通嗎?
謝謝


所有的時間均為GMT +8。 現在的時間是01:15 PM.

vBulletin Version 3.0.1
powered_by_vbulletin 2026。