我們目前有一個winforms應用程序,允許用戶登錄以訪問系統。認證系統是一個定製的kludge。我正在執行一項更改,將用戶NT用戶名和域名與他們現有的自定義帳戶相關聯,以便他們不需要重複登錄。我使用WindowsIdentity.GetCurrent()。Name然後將該信息存儲在數據庫表,映射到他們的舊的accountid。我想知道的是,如果用戶能夠通過反映真實域名的計算機名稱來訪問網絡,那麼這是可能的嗎?這可能會使惡意用戶訪問某人的帳戶。我想真正的問題是:是否有辦法區分SQL Server域和用戶域,而不僅僅是對名稱進行字符串比較。用戶欺騙域名
Q
用戶欺騙域名
4
A
回答
2
是的,如果您的應用程序使用SQL身份驗證來訪問數據庫,如果您將數據庫連接更改爲使用可信身份驗證,則SQL Server將根據域控制器對登錄進行身份驗證。因此,儘管用戶可以訪問應用程序,但他們將無法訪問驅動應用程序的數據庫。如果你這樣做了,你還可以將用戶名的捕獲移動到一個SQL Server存儲過程,以確保捕獲的名稱與域名相匹配,而不是本地用戶。
+0
我同意這是最佳方式,但這種改變將是巨大的,不會被管理部門批准。 – cdaq 2011-02-16 23:08:32
1
服務器不能信任客戶。
如果客戶端可以獲取並使用憑據登錄到數據庫服務器,您就會烤麪包。
如果您的服務器只是一個數據庫服務器,並且您的應用程序不使用受信任的連接,並且您的應用程序不會提示輸入數據庫憑證,那麼您將進行烘烤。 (見前面的聲明)
我很懶。我將修補WindowsIdentity.GetCurrent()。如果我感覺喜歡它,則返回「Administrator」。
相關問題
- 1. ARP欺騙/ DNS欺騙 - 區別
- 2. 您會如何防止用戶欺騙Firebase中的用戶名?
- 3. 用SinonJS欺騙API?
- 4. 欺騙Javascript.location.hostname
- 5. 與欺騙
- 6. 欺騙SQL Server
- 7. 欺騙libdc1394
- 8. Rails:保持用戶欺騙檢查DRY
- 9. 欺騙用戶代理的Safari擴展?
- 10. Appengine欺騙用戶代理字符串
- 11. MIME類型欺騙
- 12. ICMP欺騙幫助
- 13. 主機頭欺騙
- 14. IP地址欺騙
- 15. Facebook安全 - 欺騙?
- 16. 欺騙反射器
- 17. 會話欺騙(PHP)
- 18. 防止IP欺騙
- 19. App_id所欺騙和濫用
- 20. 防止用PayPal欺騙
- 21. 欺騙Usercontrol以允許「。」命名空間
- 22. 軟件arp中毒,mac欺騙,ip欺騙
- 23. Django - 檢測唯一用戶。忽略/禁止欺騙用戶
- 24. 處理短信欺騙
- 25. Chrome DNS欺騙保護
- 26. 防止欺騙位置
- 27. 如何防止欺騙iBeacons?
- 28. 欺騙電子釣魚
- 29. AngularJS ng重複:欺騙
- 30. 的JMeter:IP欺騙不工作
我可能完全不瞭解您的情況。這聽起來像你正在使用SQL身份驗證來訪問數據庫並將連接字符串存儲在你的winapp中的某處。如果是這樣的話,人們可能會從winapp竊取連接字符串並獲得對數據庫的訪問權限。關於您的擔憂,您可以考慮存儲SID而不是用戶名和域名。是的,這仍然沒有保證,但至少這使得酒吧更高。網絡上沒有可用的工具來幫助您在域中僞造SID。我認爲我們仍然可以做到這一點,但它應該是非常棘手的 – 2011-02-17 03:36:03
謝謝哈維,這是我走的路。我現在使用用戶名/域名信息存儲令牌所有者ssid。這應該有效地解決某人設置自己的域名並使用VPN冒充另一個用戶的問題。 – cdaq 2011-02-17 18:56:50