簡體   English   中英

在應用程序中使用直接MySql連接-C#

[英]Using direct MySql connection in app - C#

我已經開發了一個應用程序,將有超過2k的用戶使用它。 該應用已連接到包含某些數據的數據庫。 我有一些問題:1.是否可以在應用程序中使用mysql直接連接代替API來僅讀取數據? 2.有人可以從我的應用程序中找到我的服務器信息(地址,通行證等)嗎?

應用是wpf。

一般而言(與所有通用性一樣,雙向都有各種例外),如果滿足以下兩個條件之一,則可以直接連接到數據庫:

  1. 該應用程序和數據庫位於同一台計算機上

要么

  1. 該應用程序和數據庫位於不同的計算機上,但是在同一公司網絡內,並且該應用程序和數據庫之間的流量得到了充分的保護。

並且如果還滿足以下條件之一:

  1. 最終用戶擁有該應用程序,並且不與其他用戶共享數據(他們將其破解,這是他們自己的問題,沒有其他人的問題)

要么

  1. 您向每個用戶僅授予必要的特權(用戶擁有該憑證)來發行單獨的帳戶

要么

  1. 部署應用程序的計算機由企業控制,您可以在其中安全地部署應用程序(及其用於連接數據庫的帳戶憑據),以使最終用戶無法直接檢索帳戶憑據。 (企業擁有一切)。

通常無法通過公共Internet或在未充分保護數據庫流量的本地網絡內直接連接到數據庫,並且通常不允許最終用戶直接訪問數據庫而不直接訪問數據庫。應用程序(如果用戶擁有其計算機的所有權,則他們將能夠獲得該訪問權限)。


我還需要解釋“充分保護”的含義。 這涉及幾件事:

  • 客戶端和數據庫之間的良好防火牆。 在某些較小的環境中,托管數據庫本身的OS上的防火牆可能已足夠。
  • 防止對進出數據庫的數據包進行MitM攻擊的措施。 對於傳統的公司網絡,這通常意味着802.1x甚至可以在有線網絡上運行,並且wifi訪問受到類似的保護(像您在家中使用的預共享密鑰wifi網絡還不夠好,因為任何可以獲取密鑰的人都可以解密您的流量)。 或者,您可以實施從客戶端一直到這樣一個受保護的網絡的加密。 這就是許多公司VPN的用途(公共VPN服務無法為您完成此操作)。 您也許還可以加密實際的數據庫連接流量。 我知道如何為Sql Server執行此操作,盡管我不太清楚MySql在該領域有哪些直接支持。

如果將信息保存在應用程序內部,則可以找到它。 您應該考慮使用API​​來處理數據讀取。 可以對應用程序進行逆向工程。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM