當前位置:首頁 » 數據倉庫 » webconfig資料庫連接加密
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

webconfig資料庫連接加密

發布時間: 2022-12-19 23:47:42

『壹』 c# web.config加密有什麼用處

加密必然是為了保護敏感信息(比如,資料庫聯接字元串) ,或者你不想要給其他人看到的信息。

經常會被加密的節點又一下幾個:
1) <appSettings> 一般包含一些我們自定義的信息。
2) <connectionStrings> 這個比較容易理解,包含連接資料庫用的字元串。
3) <identity> 包含使用impersonate時的賬戶信息。
4) <sessionState> 包含將session置於process外的連接字元串。

總之,加密的主要目的是為了安全, 信息安全,知識產權安全等。

ASP.NET提供了兩種加密方式,DPAPI和RSA。我們可以選擇其中一種方式來加密我們的web.config。具體加密方式也有兩種,利用aspnet_regiis.exe工具或在程序中用代碼加密。

『貳』 怎麼對資料庫連接字元串進行加密和解密

給方法:開始--->運行,輸入cmd,接著輸入以下內容

加密:

C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_regiis.exe -pef "connectionStrings" "你的Web項目路徑"

解密:

C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_regiis.exe -pdf "connectionStrings" "你的Web項目路徑"

.NET為版本的路徑自行修改,其中connectionStrings連接字元串的名稱。

需要注意的是,加密過程中使用了一個基於本機的密鑰,這意味著解密過程必須在同一台計算機上完成。如果是將加密後的Web.config文件移動到其它計算機上,那麼Web.config文件中的連接字元串將不能夠正常解密。

『叄』 web.config如何配置資料庫連接

--在WEB.config配置下面的節點,connectionstring寫的是連接資料庫的字元串datasource是填寫的資料庫,initialcatalog是連接的資料庫名稱,user id是連接數據的賬戶名,password是賬戶的密碼 x0dx0ax0dx0a  x0dx0a x0dx0a--在web應用層獲取這段資料庫連接字元串的語句是x0dx0aConfigurationManager.ConnectionStrings["connstring"].ToString()

『肆』 asp.net的配置文件web.config怎麼解密

使用「」形式來加密
test.aspx程序文件基本如上,

section.SectionInformation.ProtectSection(「」);
改成
section.SectionInformation.ProtectSection(「」);
但這個時候你訪問網站的時候很有可能會出現
說明:
在處理向該請求提供服務所需的配置文件時出錯。請檢查下面的特定錯誤詳細信息並適當地修改配置文件。
分析器錯誤信息: 未能使用提供程序「」進行解密。
提供程序返回錯誤信息為: 打不開 RSA 密鑰容器。
這樣的錯誤,解決方法是:
進dos運行:aspnet_regiis -pa 「NetFrameworkConfigurationKey」
「NT AUTHORITY\NETWORK SERVICE」
如果運行出錯,需要把目錄 C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727
放入環境變數path中。此時就可以成功訪問網站了。
同樣可以通過命令行來實現「」加密
注意:你也可以不運行 aspnet_regiis -pa 「NetFrameworkConfigurationKey」
「NT AUTHORITY\NETWORK SERVICE」命令來注冊默認的
的RSA 密鑰容器
方法如下:
1)創建一個可導出的rsa密鑰容器,命名為Key
aspnet_regiis -pc 「Key」 -exp
2)在你要加密的信息前面指定密鑰容器,如:
<configProtectedData><providers><clear /><add name=」KeyProvider」 type=」System.Configuration., System.Configuration, Version=2.0.0.0,Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL」 keyContainerName=」Key」 useMachineContainer=」true」/></providers></configProtectedData><connectionStrings><add name=」sqlConnString」 connectionString=」Data Source=yourIP;Initial Catalog=test;User Id=yourID;Password=yourPassword;」providerName=」System.Data.SqlClient」 /></connectionStrings>
並且確保在configuration節的xmlns屬性有如下值:
3)對配置文件進行加密
aspnet_regiis -pef 「connectionStrings」 「E:\project\Test」 -prov 「KeyProvider」
參數分別為:需要加密的配置節、項目所在目錄的物理路徑、加密所使用的密鑰容器名稱
再看web.config文件,就會發現connectionStrings節已經被加密了,但
是運行程序會發現程序仍然可以正確訪問資料庫。
此時,只需運行:
aspnet_regiis -pdf 「connectionStrings」 「E:\project\Test」
就可以對web.config文件進行解密。
(注意,如果還是有錯誤,那可能是您沒有給生成的密匙文件足夠的許可權,
去到C:\Documents and Settings\All Users\Application Data\Microsoft\Crypto\RSA\MachineKeys
目錄下,找到剛生成的密匙文件,把network service用戶的讀取許可權賦予給它,就可以了,
直接用命令的話也可以:命令如下 aspnet_regiis -pa 「Key」 「NT AUTHORITY\NETWORK SERVICE」 ,
可能需要重新啟動iis
4)把密鑰容器導出為xml文件
aspnet_regiis -px 「Key」 「e:\Key.xml」
這個命令只導出公鑰,因此以後只能用於加密,而無法解密。
aspnet_regiis -px 「Key」 「e:\Keys.xml」 -pri
這個則連私鑰一起導出了,所以我們要用這個。
5)把密鑰容器刪除
aspnet_regiis -pz 「Key」
刪除後再運行程序,會提示出錯:
分析器錯誤信息: 未能使用提供程序「KeyProvider」進行解密。
提供程序返回錯誤信息為: 打不開 RSA 密鑰容器。
同理可以證明,在任何一台未安裝正確的密鑰容器Key的機器上,
程序都無法對connectionStrings節進行解密,因此也就無法正常運行。
6)導入key.xml文件
aspnet_regiis -pi 「Key」 「e:\Keys.xml」
此時,再運行程序會發現又可以解密了。證明加密與解密機制運行正常。
最後說一下這個機制所提供的安全性保障可以運用在什麼方面:
對winform程序的app.config進行加密實際意義並不大,因為無論如何,
客戶機都可以通過運行aspnet_regiis -pdf 來對配置文件進行解密,從而暴露敏感信息。
對於web.config進行加密的意義也僅限於,當web.config文件不小心泄露時,
不會同時泄露敏感信息,如果惡意攻擊者已經取得了在伺服器上運行程序的許可權,
那麼同app.config一樣,可以很容易通過通過運行aspnet_regiis -pdf 獲取明文了。
還有,通過aspnet_regiis -pa 「Key」 「NT AUTHORITY\NETWORK SERVICE」
控制對不同用戶對密鑰容器的訪問許可權,應該還可以進一步獲取一些安全性,
比如可以控制某些用戶即使登錄到伺服器上,也無法用aspnet_regiis -pdf對配置文件進行解密。

『伍』 webapi的webconfig怎樣配置資料庫連接

先打開vs2010軟體,找到項目文件,雙擊web.config
VS2010中web.config配置資料庫連接
第一種:取連接字元串
string connString = System.Web.Configuration.WebConfigurationManager.ConnectionStrings["SqlConnStr"].ConnectionString;
或者
protected static string connectionString = ConfigurationManager.ConnectionStrings["SqlConnStr"].ConnectionString;
web.config文件:加在</configSections>後面
<connectionStrings> <remove name="LocalSqlServer" /> <add name="SqlConnStr" connectionString="user id=xx;password=xx;initial catalog=database_name;data source=.\sqlxxxx" /> </connectionStrings>
VS2010中web.config配置資料庫連接
第二種:取連接字元串:
string myvar=configurationsettings.appsettings["connstring"];
web.config文件:加在<appsettings>和</appsettings> 之間
<appsettings> <add key="connstring" value="uid=xx;pwd=xx;database=batabase_name;server=(local)" /> </appsettings>
據說兩者通用,但是第二種是asp.net2.0的新特性,建議使用第二種。其實我一直有個疑問,兩個字元串中的UID;PWD;和User ID; Password;是否等價。根據網上我查到的資料是可以互換通用的。
VS2010中web.config配置資料庫連接
連接SQL Server資料庫的機制與連接Access的機制沒有什麼太大的區別,只是改變了Connection對象和連接字元串中的不同參數.
首先,連接SQL Server使用的命名空間不是"System.Data.OleDb",而是"System.Data.SqlClient".
其次就是他的連接字元串了,我們一個一個參數來介紹(注意:參數間用分號分隔): "user id=sa":連接資料庫的驗證用戶名為sa.他還有一個別名"uid",所以這句我們還可以寫成"uid=sa". "password=":連接資料庫的驗證密碼為空.他的別名為"pwd",所以我們可以寫為"pwd=". 這里注意,你的SQL Server必須已經設置了需要用戶名和密碼來登錄,否則不能用這樣的方式來登錄.如果你的SQL Server設置為Windows登錄,那麼在這里就不需要使用"user id"和"password"這樣的方式來登錄,而需要使用"Trusted_Connection=SSPI"來進行登錄.
initial catalog=Northwind":使用的數據源為"Northwind"這個資料庫.他的別名為"Database",本句可以寫成"Database=Northwind". "Server=YourSQLServer":使用名為"YourSQLServer"的伺服器.他的別名為"Data Source","Address","Addr".如果使用的是本地資料庫且定義了實例名,則可以寫為"Server=(local)\實例名";如果是遠程伺服器,則將"(local)"替換為遠程伺服器的名稱或IP地址. "Connect Timeout=30":連接超時時間為30秒.
在這里,建立連接對象用的構造函數為:SqlConnection.
7
最後要保存你所更改的文件,右鍵 保存(ctrl+S).

『陸』 初級菜鳥之web.config的資料庫連接設置

我用的是 mysql,以下內容是vs下的設置,從別地找來的
給一個我正在用的web.config文件給你參考
<?xml version="1.0"?>
<configuration>
<system.web>
<pages validateRequest="false"/>
<!-- 動態調試編譯
設置 compilation debug="true" 以啟用 ASPX 調試。否則,將此值設置為
false 將提高此應用程序的運行時性能。
設置 compilation debug="true" 以將調試符號(.pdb 信息)
插入到編譯頁中。因為這將創建執行起來
較慢的大文件,所以應該只在調試時將此值設置為 true,而在所有其他時候都設置為
false。有關更多信息,請參考有關
調試 ASP.NET 文件的文檔。
-->
<!--compilation defaultLanguage="c#" debug="true">
<compilers>
<compiler language="c#" type="Microsoft.CSharp.CSharpCodeProvider, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089" extension=".cs" compilerOptions="/d:DEBUG;TRACE"/></compilers></compilation-->
<!-- 自定義錯誤信息
設置 customErrors mode="On" 或 "RemoteOnly" 以啟用自定義錯誤信息,或設置為 "Off" 以禁用自定義錯誤信息。
為每個要處理的錯誤添加 <error> 標記。

"On" 始終顯示自定義(友好的)信息。
"Off" 始終顯示詳細的 ASP.NET 錯誤信息。
"RemoteOnly" 只對不在本地 Web 伺服器上運行的
用戶顯示自定義(友好的)信息。出於安全目的,建議使用此設置,以便
不向遠程客戶端顯示應用程序的詳細信息。
-->
<customErrors defaultRedirect="error.aspx" mode="RemoteOnly"/>
<!-- 身份驗證
此節設置應用程序的身份驗證策略。可能的模式是 "Windows"、
"Forms"、 "Passport" 和 "None"

"None" 不執行身份驗證。
"Windows" IIS 根據應用程序的設置執行身份驗證
(基本、簡要或集成 Windows)。在 IIS 中必須禁用匿名訪問。
"Forms" 您為用戶提供一個輸入憑據的自定義窗體(Web 頁),然後
在您的應用程序中驗證他們的身份。用戶憑據標記存儲在 Cookie 中。
"Passport" 身份驗證是通過 Microsoft 的集中身份驗證服務執行的,
它為成員站點提供單獨登錄和核心配置文件服務。
-->
<authentication mode="Windows"/>
<!-- 授權
此節設置應用程序的授權策略。可以允許或拒絕不同的用戶或角色訪問
應用程序資源。通配符: "*" 表示任何人,"?" 表示匿名
(未經身份驗證的)用戶。
-->
<authorization>
<allow users="*"/>
<!-- 允許所有用戶 -->
<!-- <allow users="[逗號分隔的用戶列表]"
roles="[逗號分隔的角色列表]"/>
<deny users="[逗號分隔的用戶列表]"
roles="[逗號分隔的角色列表]"/>
-->
</authorization>
<!-- 應用程序級別跟蹤記錄
應用程序級別跟蹤為應用程序中的每一頁啟用跟蹤日誌輸出。
設置 trace enabled="true" 可以啟用應用程序跟蹤記錄。如果 pageOutput="true",則
在每一頁的底部顯示跟蹤信息。否則,可以通過瀏覽 Web 應用程序
根目錄中的 "trace.axd" 頁來查看
應用程序跟蹤日誌。
-->
<trace enabled="false" requestLimit="10" pageOutput="false" traceMode="SortByTime" localOnly="true"/>
<!-- 會話狀態設置
默認情況下,ASP.NET 使用 Cookie 來標識哪些請求屬於特定的會話。
如果 Cookie 不可用,則可以通過將會話標識符添加到 URL 來跟蹤會話。
若要禁用 Cookie,請設置 sessionState cookieless="true"。
-->
<sessionState mode="InProc" stateConnectionString="tcpip=127.0.0.1:42424" sqlConnectionString="data source=127.0.0.1;Trusted_Connection=yes" cookieless="false" timeout="20"/>
<!-- 全球化
此節設置應用程序的全球化設置。
-->
<globalization requestEncoding="utf-8" responseEncoding="utf-8"/>
<xhtmlConformance mode="Legacy"/>
<compilation debug="true"/></system.web>
<appSettings>
<add key="ConnectionString" value="server=;database=;uid=;pwd=;"/>
</appSettings>
</configuration>

『柒』 InstallShield12 關於修改web.config文件,連接字元串中的資料庫用戶名與密碼進過加密處理...

在你另一個同樣的問題里給了回答了,這里再概括性的說一下
首先,加密這個操作IS本身應該是不支持的,你可以考慮調用外部dll的方式
然後,你的這個需求,應該是按這樣一個思路去考慮:
1.接收用戶的輸入,接收資料庫設置的對話框,IS是有的,不過這對話框還帶有資料庫鏈接測試等功能,建議最好不要去動,新手肯定會昏頭,所以還是自己自定義一個對話框比較合適
2.自定義對話框接收用戶輸入,無非就是做個對話框,然後設置幾個porperty用來存值
3.在XML文件設置界面設置好這幾個property要插入到XML文件中的位置

差不多就是這樣了

同樣的,你的問題說難不難,但對於新手還是有點復雜的,建議你到群里來,有資料自己參考,也可以向高手提問

『捌』 如何對web.config進行加密和解密

在WEB網站開發過程中,如果我們將資料庫連接字元串封裝到.DLL文件中,將會給資料庫和程序的遷移帶來麻煩,因為萬一伺服器地址或
者資料庫發生變更,那麼我們就不得不修改源程序並重新將其編譯。更好的解決方法是將資料庫連接字元串寫入到web.config配置文件中,可問題是將連
接字元串寫入到web.config文件中之後,任何人都能打開看到所連接的資料庫名和密碼,又會帶來安全隱患,因此為了保證資料庫的安全性,我們可以通
過使用微軟IDE自帶的命令aspnet_regiis.exe將配置文件web.config中指定的標簽進行加密,如果以後想查看加密後的連接字元
串,我們還可以使用aspnet_regiis.exe將加密後的字元串進行解密。

1. 加密通用語法
加密一個特定網站的web.config文件的通用形式
aspnet_regiis.exe -pef secion physical_directory -prov provider

aspnet_regiis.exe -pe secion -app virtual_directory -prov provider
其中,各個參數的含義如下:

section表示要加密的配置節

physical_directory用於指定站點的物理路徑。

virtual_directory用戶指定虛擬路徑。

provider指定加密提供程序。

加密一個特定站點的連接字元串就是:
aspnet_regiis.exe -pef "connectionStrings" "你的web項目路徑" -prov ""
其中是Windows數據保護API(DPAPI)提供程序,它使用Windows內置的密碼學技術來加解密配置節。默認情況下,這個提供程序使用本機的密鑰。

2. 加密方法

運行Visual Studio 2008命令提示

加密後的結果

<connectionStrings configProtectionProvider="">
<EncryptedData>
<CipherData> <CipherValue>AQAAANCMnd8BFdERjHoAwE/Cl+sBAAAAy1WyvzomB0WAlqYo++bAce//lsg/so66+//LD9H9WQ9uF3t/0MoMI9tbrWdFJ1Yu5/e3PAV4RCbCvDlPD0VC7hxtDMqfRjQ+1OhTdk2woiSNpx0TzXwZE25o4vlXq/+lZtAj8lzf2bK+/L0+6bizStRZ7BDnOngV//CVDQ==</CipherValue>
</CipherData>
</EncryptedData>
lt;/connectionStrings>

3. 解密
解密該連接字元串也很簡單
aspnet_regiis.exe -pdf "connectionStrings" '你的web項目路徑"

解密後的結果:

<connectionStrings>
<add name="Sql" connectionString="Data Source=.;Initial Catalog=MySchool;Integrated Security=True" />
</connectionStrings>

4. 後台代碼讀取配置文件web.config中資料庫連接字元串的方法:

using System.Configuation;

protected void Page_Load(object sender, EventArgs e)
{
lblMessage.Text = ConfigurationManager.ConnectionStrings["Sql"].ToString();
}


5. 在連接字元串的加密和解密的過程中,需要注意一下幾點。

使用加密的連接字元串

使用加密的連接字元串不需要編碼解密,ASP.NET會自動對加密內容進行解密。

加密和解密在同一台計算機上使用

在加密過程中,使用了一個基於本機的密鑰。這就意味著加密和解密必須在同一台計算機上進行,否則將不能解密。同時,在一台計算機上加密的配置,在另一台計算機上將不能正常使用。

中文路徑問題
該命令對中文支持不是很好。如果站點的路徑中有中文字元,也許不能正常加解密。

『玖』 在Web.config里怎麼配置資料庫連接池

<connectionStrings>
<add name="sqlConnection" connectionString="Data Source=伺服器名;
Initial Catalog=資料庫名;Persist Security Info=True;User ID=賬號; Password=密
碼" providerName="System.Data.SqlClient"/>
</connectionStrings>

『拾』 在web.config連接資料庫怎麼用

1.
appSettings
<appSettings>
<add
key="conn"
value="server=伺服器名;database=資料庫名;uid=用戶名;password=密碼;"/>
</appSettings>
2.
connectionStrings
<connectionStrings>
<add
name="conn"
connectionString="Dserver=伺服器名;database=資料庫名;uid=用戶名;password=密碼"
providerName="System.Data.SqlClient"
/>
</connectionStrings>
(1)
appSettings
是在
2003
中常用的,connectionStrings
是在
2005
中常用的;
(2)
使用
connectionStrings
的好處:
第一,可將連接字元串加密,使用MS的一個加密工具即可;
第二,可直接綁定數據源控制項,而不必寫代碼讀出來再賦值給控制項;
第三,可方便的更換資料庫平台,如換為
Oracle
資料庫,只需要修改
providerName。
(3)
寫在
appSettings
中用
System.Configuration.ConfigurationManager.AppSettings["keyname"]
獲取資料庫連接代碼值;寫在
connectionStrings
中用
System.Configuration.ConfigurationManager.ConnectionStrings["name"]
獲取資料庫連接代碼值。