userid = testhtml
password = aps'";web
那麼鏈接字符串的寫法爲:數據庫
Provider=SQLOLEDB.1;Password="aps'"";";Persist Security Info=True;User ID=spooltest;Initial Catalog=MyBeer20G;Data Source=HI4-SV09安全
若是鏈接字符串寫在web.config(xml文件)中,只要把雙引號做html轉義(替換成"e;),程序不須要作任何改動,鏈接字符串改成:ide
Provider=SQLOLEDB.1;Password="e;aps'"e;"e;;"e;;Persist Security Info=True;User ID=spooltest;Initial Catalog=MyBeer20G;Data Source=HI4-SV09工具
若是鏈接字符串的密碼中存在雙引號,使用framework1.1時切記打上framework1.1的pacth,不然System.Data.SqlClient.SqlConnent類的鏈接字符串不支持雙引號。
若是登陸或密碼包含如下字符:[]{}(),;?*! @。則使用SQL Query Analyer不能鏈接數據庫
測試
Web.config中鏈接字符串的解決方案以下ui 1.直接在Web.config中寫明文鏈接字符串加密 這種方式優勢:spa a.無需使用第三方工具 b.數據庫鏈接一目瞭然,容易維護 缺點: a.用戶必須瞭解字符串生成的一個特殊規則,即:若是關鍵字所對應的值含有雙引號, 則必須成對出現。
b.另外用戶必須知道5個XML轉義字符(若是鏈接字符串中含有特殊字符)
例子: <add key="ConnectionString" value="server=ServerName;database=DBName;uid=test;pwd="a-=\;',./:""<>?@&b";" /> 數據庫鏈接: server=ServerName;database=DBName;uid=test;pwd="a-=\;',./:""<>?@&b"; 數據庫密碼:a-=\;',./:"<>?@&b (只有一個雙引號) (插曲:鑑於大多用戶可能會忘記這些規則, 2.在Web.config維護加密過的鏈接字符串。 這種方式優勢: a.數據鏈接字符串保密性好,安全性高 b.無需瞭解過多的XML,數據庫鏈接字符串知識 缺點 a.不容易維護 b.必須使用第三方工具,加密解密 |