Ⅰ 如何加密Web.Config中的連接字元串
一、如何對Web.config中資料庫連接字元串進行加解密,避免明文方式。 1)概述:
Web.Config 中可以存儲資料庫連接語句,通常存於 <connectionString>配置節中,程序調用非常方便,但是在系統的應用過程中,利用明文存儲這些敏感信息是不安全的,這就需要對配置信息進行加密,加密後即使攻擊者獲取了對配置文件的訪問,也可以使攻擊者難以獲取對敏感信息的訪問,從而改進應用程序的安全性。
使用 ASP.NET IIS 注冊工具 (Aspnet_regiis.exe) 加密或解密 Web 配置文件的各節。而在在處理 Web.config 文件時,ASP.NET 將自動解密已加密的配置元素。
要加密配置文件的內容, 通過Aspnet_regiis.exe 工具與 –pe 選項以及要加密的配置元素的名稱一起使用,利用.NET Framework 提供的2種受保護配置程序來實現節點加解密:
名為的 實例使用 Windows 數據保護 API (DPAPI) 對數據進行加密和解密。
名為的 實例使用 RSA 加密演算法對數據進行加密和解密。該提供程序配置為默認提供程序
下面就這2中加密方式,分別進行舉例如下:
2)使用 來加解密配置節
利用aspnet_regiis -pef connectionStrings 對web.config 加密 在伺服器命令提示符下,輸入如下命令:
C:\Windows\Microsoft.NET\Framework\v2.0.50727>aspnet_regiis -pef connectionStrings D:\程序\某系統\EpointBid_HuiYuan –prov 正在加密配置節„ 成功!
-pef 指定兩個參數:
這里 connectionStrings 是要進行加密的配置節,後面是具體的程序路徑 這里 D:\程序\某系統\EpointBid_HuiYuan 是要加密的配置文件所在的物理目錄。
-prov 表示使用哪個驅動來加密,一共有兩個驅動可選,在類似於
C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\CONFIG 的位置,我們可以找到 machine.config 文件,在其 configProtectedData 配置節,我們可以看到這兩個驅動的名稱,以及默認的驅動是哪一個。這兩個驅動是 (類名 ,詳細操作見下說明示例)和
(類名 )。
如果不加驅動選項,則採用默認驅動進行加密。
Ⅱ Webpack鎬庝箞浼樺寲閰嶇疆鏂囦歡
榪欐$粰澶у跺甫鏉Webpack鎬庝箞浼樺寲閰嶇疆鏂囦歡錛學ebpack浼樺寲閰嶇疆鏂囦歡鐨勬敞鎰忎簨欏規湁鍝浜涳紝涓嬮潰灝辨槸瀹炴垬妗堜緥錛屼竴璧鋒潵鐪嬩竴涓嬨
Webpack 鍚鍔ㄥ悗浼氫粠閰嶇疆鐨 Entry 鍑哄彂錛岃В鏋愬嚭鏂囦歡涓鐨勫煎叆璇鍙ワ紝鍐嶉掑綊鐨勮В鏋愩
鍦ㄩ亣鍒板煎叆璇鍙ユ椂 Webpack 浼氬仛涓や歡浜嬫儏錛
1.鏍規嵁瀵煎叆璇鍙ュ幓瀵繪壘瀵瑰簲鐨勮佸煎叆鐨勬枃浠躲備緥濡 require('react') 瀵煎叆璇鍙ュ瑰簲鐨勬枃浠舵槸 ./node_moles/react/react.js 錛 require('./util') 瀵瑰簲鐨勬枃浠舵槸 ./util.js 銆
2.鏍規嵁鎵懼埌鐨勮佸煎叆鏂囦歡鐨勫悗緙錛屼嬌鐢ㄩ厤緗涓鐨 Loader 鍘誨勭悊鏂囦歡銆備緥濡備嬌鐢 ES6 寮鍙戠殑 JavaScript 鏂囦歡闇瑕佷嬌鐢 babel-loader 鍘誨勭悊銆
浠ヤ笂涓や歡浜嬫儏鉶界劧瀵逛簬澶勭悊涓涓鏂囦歡闈炲父蹇錛屼絾鏄褰撻」鐩澶т簡浠ュ悗鏂囦歡閲忎細鍙樼殑闈炲父澶氾紝榪欐椂鍊欐瀯寤洪熷害鎱㈢殑闂棰樺氨浼氭毚闇插嚭鏉ャ
鉶界劧浠ヤ笂涓や歡浜嬫儏鏃犳硶閬垮厤錛屼絾闇瑕佸敖閲忓噺灝戜互涓婁袱浠朵簨鎯呯殑鍙戠敓錛屼互鎻愰珮閫熷害銆
鎺ヤ笅鏉ヤ竴涓浠嬬粛鍙浠ヤ紭鍖栧畠浠鐨勯斿緞銆
浼樺寲 loader 閰嶇疆
鐢變簬 Loader 瀵規枃浠剁殑杞鎹㈡搷浣滃緢鑰楁椂錛岄渶瑕佽╁敖鍙鑳藉皯鐨勬枃浠惰 Loader 澶勭悊銆
鍦 2-3 Mole 涓浠嬬粛榪囧湪浣跨敤 Loader 鏃跺彲浠ラ氳繃 test 銆 include 銆 exclude 涓変釜閰嶇疆欏規潵鍛戒腑 Loader 瑕佸簲鐢ㄨ勫垯鐨勬枃浠躲
涓轟簡灝藉彲鑳藉皯鐨勮╂枃浠惰 Loader 澶勭悊錛屽彲浠ラ氳繃 include 鍘誨懡涓鍙鏈夊摢浜涙枃浠墮渶瑕佽澶勭悊銆
浠ラ噰鐢 ES6 鐨勯」鐩涓轟緥錛屽湪閰嶇疆 babel-loader 鏃訛紝鍙浠ヨ繖鏍鳳細
mole.exports = {
mole: {
rules: [
{
// 濡傛灉欏圭洰婧愮爜涓鍙鏈 js 鏂囦歡灝變笉瑕佸啓鎴 /.jsx?$/錛屾彁鍗囨e垯琛ㄨ揪寮忔ц兘
test: /.js$/,
// babel-loader 鏀鎸佺紦瀛樿漿鎹㈠嚭鐨勭粨鏋滐紝閫氳繃 cacheDirectory 閫夐」寮鍚
use: ['babel-loader?cacheDirectory'],
// 鍙瀵歸」鐩鏍圭洰褰曚笅鐨 src 鐩褰曚腑鐨勬枃浠墮噰鐢 babel-loader
include: path.resolve(dirname, 'src'),
},
]
},
};
浣犲彲浠ラ傚綋鐨勮皟鏁撮」鐩鐨勭洰褰曠粨鏋勶紝浠ユ柟渚垮湪閰嶇疆 Loader 鏃墮氳繃 include 鍘葷緝灝忓懡涓鑼冨洿銆
浼樺寲 resolve.moles 閰嶇疆
鍦 2-4 Resolve 涓浠嬬粛榪 resolve.moles 鐢ㄤ簬閰嶇疆 Webpack 鍘誨摢浜涚洰褰曚笅瀵繪壘絎涓夋柟妯″潡銆
resolve.moles 鐨勯粯璁ゅ兼槸 ['node_moles'] 錛屽惈涔夋槸鍏堝幓褰撳墠鐩褰曚笅鐨 ./node_moles 鐩褰曚笅鍘繪壘鎯蟲壘鐨勬ā鍧楋紝濡傛灉娌℃壘鍒板氨鍘諱笂涓綰х洰褰 ../node_moles 涓鎵撅紝鍐嶆病鏈夊氨鍘 ../../node_moles 涓鎵撅紝浠ユょ被鎺錛岃繖鍜 Node.js 鐨勬ā鍧楀繪壘鏈哄埗寰堢浉浼箋
褰撳畨瑁呯殑絎涓夋柟妯″潡閮芥斁鍦ㄩ」鐩鏍圭洰褰曚笅鐨 ./node_moles 鐩褰曚笅鏃訛紝娌℃湁蹇呰佹寜鐓ч粯璁ょ殑鏂瑰紡鍘諱竴灞傚眰鐨勫繪壘錛屽彲浠ユ寚鏄庡瓨鏀劇涓夋柟妯″潡鐨勭粷瀵硅礬寰勶紝浠ュ噺灝戝繪壘錛岄厤緗濡備笅錛
mole.exports = {
resolve: {
// 浣跨敤緇濆硅礬寰勬寚鏄庣涓夋柟妯″潡瀛樻斁鐨勪綅緗錛屼互鍑忓皯鎼滅儲姝ラ
// 鍏朵腑 dirname 琛ㄧず褰撳墠宸ヤ綔鐩褰曪紝涔熷氨鏄欏圭洰鏍圭洰褰
moles: [path.resolve(dirname, 'node_moles')]
},
};
浼樺寲 resolve.mainFields 閰嶇疆
鍦 2-4 Resolve 涓浠嬬粛榪 resolve.mainFields 鐢ㄤ簬閰嶇疆絎涓夋柟妯″潡浣跨敤鍝涓鍏ュ彛鏂囦歡銆
瀹夎呯殑絎涓夋柟妯″潡涓閮戒細鏈変竴涓 package.json 鏂囦歡鐢ㄤ簬鎻忚堪榪欎釜妯″潡鐨勫睘鎬э紝鍏朵腑鏈変簺瀛楁電敤浜庢弿榪板叆鍙f枃浠跺湪鍝閲岋紝 resolve.mainFields 鐢ㄤ簬閰嶇疆閲囩敤鍝涓瀛楁典綔涓哄叆鍙f枃浠剁殑鎻忚堪銆
鍙浠ュ瓨鍦ㄥ氫釜瀛楁墊弿榪板叆鍙f枃浠剁殑鍘熷洜鏄鍥犱負鏈変簺妯″潡鍙浠ュ悓鏃剁敤鍦ㄥ氫釜鐜澧冧腑錛屽噯瀵逛笉鍚岀殑榪愯岀幆澧冮渶瑕佷嬌鐢ㄤ笉鍚岀殑浠g爜銆
浠 isomorphic-fetch 涓轟緥錛屽畠鏄 fetch API 鐨勪竴涓瀹炵幇錛屼絾鍙鍚屾椂鐢ㄤ簬嫻忚堝櫒鍜 Node.js 鐜澧冦
瀹冪殑 package.json 涓灝辨湁2涓鍏ュ彛鏂囦歡鎻忚堪瀛楁碉細
{
"browser": "fetch-npm-browserify.js",
"main": "fetch-npm-node.js"
}
isomorphic-fetch 鍦ㄤ笉鍚岀殑榪愯岀幆澧冧笅浣跨敤涓嶅悓鐨勪唬鐮佹槸鍥犱負 fetch API 鐨勫疄鐜版満鍒朵笉涓鏍鳳紝鍦ㄦ祻瑙堝櫒涓閫氳繃鍘熺敓鐨 fetch 鎴栬 XMLHttpRequest 瀹炵幇錛屽湪 Node.js 涓閫氳繃 http 妯″潡瀹炵幇銆
resolve.mainFields 鐨勯粯璁ゅ煎拰褰撳墠鐨 target 閰嶇疆鏈夊叧緋伙紝瀵瑰簲鍏崇郴濡備笅錛
褰 target 涓 web 鎴栬 webworker 鏃訛紝鍊兼槸 ["browser", "mole", "main"]
褰 target 涓哄叾瀹冩儏鍐墊椂錛屽兼槸 ["mole", "main"]
浠 target 絳変簬 web 涓轟緥錛學ebpack 浼氬厛閲囩敤絎涓夋柟妯″潡涓鐨 browser 瀛楁靛幓瀵繪壘妯″潡鐨勫叆鍙f枃浠訛紝濡傛灉涓嶅瓨鍦ㄥ氨閲囩敤 mole 瀛楁碉紝浠ユょ被鎺ㄣ
涓轟簡鍑忓皯鎼滅儲姝ラわ紝鍦ㄤ綘鏄庣『絎涓夋柟妯″潡鐨勫叆鍙f枃浠舵弿榪板瓧孌墊椂錛屼綘鍙浠ユ妸瀹冭劇疆鐨勫敖閲忓皯銆
鐢變簬澶у氭暟絎涓夋柟妯″潡閮介噰鐢 main 瀛楁靛幓鎻忚堪鍏ュ彛鏂囦歡鐨勪綅緗錛屽彲浠ヨ繖鏍烽厤緗 Webpack錛
mole.exports = {
resolve: {
// 鍙閲囩敤 main 瀛楁典綔涓哄叆鍙f枃浠舵弿榪板瓧孌碉紝浠ュ噺灝戞悳緔㈡ラ
mainFields: ['main'],
},
};
浣跨敤鏈鏂規硶浼樺寲鏃訛紝浣犻渶瑕佽冭檻鍒版墍鏈夎繍琛屾椂渚濊禆鐨勭涓夋柟妯″潡鐨勫叆鍙f枃浠舵弿榪板瓧孌碉紝灝辯畻鏈変竴涓妯″潡鎼為敊浜嗛兘鍙鑳戒細閫犳垚鏋勫緩鍑虹殑浠g爜鏃犳硶姝e父榪愯屻
浼樺寲 resolve.alias 閰嶇疆
鍦 2-4 Resolve 涓浠嬬粛榪 resolve.alias 閰嶇疆欏歸氳繃鍒鍚嶆潵鎶婂師瀵煎叆璺寰勬槧灝勬垚涓涓鏂扮殑瀵煎叆璺寰勩
鍦ㄥ疄鎴橀」鐩涓緇忓父浼氫緷璧栦竴浜涘簽澶х殑絎涓夋柟妯″潡錛屼互 React 搴撲負渚嬶紝瀹夎呭埌 node_moles 鐩褰曚笅鐨 React 搴撶殑鐩褰曠粨鏋勫備笅錛
鈹溾攢鈹 dist
鈹 鈹溾攢鈹 react.js
鈹 鈹斺攢鈹 react.min.js
鈹溾攢鈹 lib
鈹 ... 榪樻湁鍑犲嶮涓鏂囦歡琚蹇界暐
鈹 鈹溾攢鈹 LinkedStateMixin.js
鈹 鈹溾攢鈹 createClass.js
鈹 鈹斺攢鈹 React.js
鈹溾攢鈹 package.json
鈹斺攢鈹 react.js
鍙浠ョ湅鍒板彂甯冨嚭鍘葷殑 React 搴撲腑鍖呭惈涓ゅ椾唬鐮侊細
涓濂楁槸閲囩敤 CommonJS 瑙勮寖鐨勬ā鍧楀寲浠g爜錛岃繖浜涙枃浠墮兘鏀懼湪 lib 鐩褰曚笅錛屼互 package.json 涓鎸囧畾鐨勫叆鍙f枃浠 react.js 涓烘ā鍧楃殑鍏ュ彛銆
涓濂楁槸鎶 React 鎵鏈夌浉鍏崇殑浠g爜鎵撳寘濂界殑瀹屾暣浠g爜鏀懼埌涓涓鍗曠嫭鐨勬枃浠朵腑錛岃繖浜涗唬鐮佹病鏈夐噰鐢ㄦā鍧楀寲鍙浠ョ洿鎺ユ墽琛屻傚叾涓 dist/react.js 鏄鐢ㄤ簬寮鍙戠幆澧冿紝閲岄潰鍖呭惈媯鏌ュ拰璀﹀憡鐨勪唬鐮併 dist/react.min.js 鏄鐢ㄤ簬綰誇笂鐜澧冿紝琚鏈灝忓寲浜嗐
榛樿ゆ儏鍐典笅 Webpack 浼氫粠鍏ュ彛鏂囦歡 ./node_moles/react/react.js 寮濮嬮掑綊鐨勮В鏋愬拰澶勭悊渚濊禆鐨勫嚑鍗佷釜鏂囦歡錛岃繖浼氭椂涓涓鑰楁椂鐨勬搷浣溿
閫氳繃閰嶇疆 resolve.alias 鍙浠ヨ Webpack 鍦ㄥ勭悊 React 搴撴椂錛岀洿鎺ヤ嬌鐢ㄥ崟鐙瀹屾暣鐨 react.min.js 鏂囦歡錛屼粠鑰岃煩榪囪楁椂鐨勯掑綊瑙f瀽鎿嶄綔銆
鐩稿叧 Webpack 閰嶇疆濡備笅錛
mole.exports = {
resolve: {
// 浣跨敤 alias 鎶婂煎叆 react 鐨勮鍙ユ崲鎴愮洿鎺ヤ嬌鐢ㄥ崟鐙瀹屾暣鐨 react.min.js 鏂囦歡錛
// 鍑忓皯鑰楁椂鐨勯掑綊瑙f瀽鎿嶄綔
alias: {
'react': path.resolve(dirname, './node_moles/react/dist/react.min.js'),
}
},
};
闄や簡 React 搴撳栵紝澶у氭暟搴撳彂甯冨埌 Npm 浠撳簱涓鏃墮兘浼氬寘鍚鎵撳寘濂界殑瀹屾暣鏂囦歡錛屽逛簬榪欎簺搴撲綘涔熷彲浠ュ瑰畠浠閰嶇疆 alias銆
浣嗘槸瀵逛簬鏈変簺搴撲嬌鐢ㄦ湰浼樺寲鏂規硶鍚庝細褰卞搷鍒板悗闈㈣佽茬殑 浣跨敤 Tree-Shaking 鍘婚櫎鏃犳晥浠g爜 鐨勪紭鍖栵紝鍥犱負鎵撳寘濂界殑瀹屾暣鏂囦歡涓鏈夐儴鍒嗕唬鐮佷綘鐨勯」鐩鍙鑳芥案榪滅敤涓嶄笂銆
涓鑸瀵規暣浣撴ф瘮杈冨己鐨勫簱閲囩敤鏈鏂規硶浼樺寲錛屽洜涓哄畬鏁存枃浠朵腑鐨勪唬鐮佹槸涓涓鏁翠綋錛屾瘡涓琛岄兘鏄涓嶅彲鎴栫己鐨勩
浣嗘槸瀵逛簬涓浜涘伐鍏風被鐨勫簱錛屼緥濡 lodash 錛屼綘鐨勯」鐩鍙鑳藉彧鐢ㄥ埌浜嗗叾涓鍑犱釜宸ュ叿鍑芥暟錛屼綘灝變笉鑳戒嬌鐢ㄦ湰鏂規硶鍘諱紭鍖栵紝鍥犱負榪欎細瀵艱嚧浣犵殑杈撳嚭浠g爜涓鍖呭惈寰堝氭案榪滀笉浼氭墽琛岀殑浠g爜銆
浼樺寲 resolve.extensions 閰嶇疆
鍦ㄥ煎叆璇鍙ユ病甯︽枃浠跺悗緙鏃訛紝Webpack 浼氳嚜鍔ㄥ甫涓婂悗緙鍚庡幓灝濊瘯璇㈤棶鏂囦歡鏄鍚﹀瓨鍦ㄣ
鍦 2-4 Resolve 涓浠嬬粛榪 resolve.extensions 鐢ㄤ簬閰嶇疆鍦ㄥ皾璇曡繃紼嬩腑鐢ㄥ埌鐨勫悗緙鍒楄〃錛岄粯璁ゆ槸錛
extensions: ['.js', '.json']
涔熷氨鏄璇村綋閬囧埌 require('./data') 榪欐牱鐨勫煎叆璇鍙ユ椂錛學ebpack 浼氬厛鍘誨繪壘 ./data.js 鏂囦歡錛屽傛灉璇ユ枃浠朵笉瀛樺湪灝卞幓瀵繪壘 ./data.json 鏂囦歡錛屽傛灉榪樻槸鎵句笉鍒板氨鎶ラ敊銆
濡傛灉榪欎釜鍒楄〃瓚婇暱錛屾垨鑰呮g『鐨勫悗緙鍦ㄨ秺鍚庨潰錛屽氨浼氶犳垚灝濊瘯鐨勬℃暟瓚婂氾紝鎵浠 resolve.extensions 鐨勯厤緗涔熶細褰卞搷鍒版瀯寤虹殑鎬ц兘銆
鍦ㄩ厤緗 resolve.extensions 鏃朵綘闇瑕侀伒瀹堜互涓嬪嚑鐐癸紝浠ュ仛鍒板敖鍙鑳界殑浼樺寲鏋勫緩鎬ц兘錛
鍚庣紑灝濊瘯鍒楄〃瑕佸敖鍙鑳界殑灝忥紝涓嶈佹妸欏圭洰涓涓嶅彲鑳藉瓨鍦ㄧ殑鎯呭喌鍐欏埌鍚庣紑灝濊瘯鍒楄〃涓銆
棰戠巼鍑虹幇鏈楂樼殑鏂囦歡鍚庣紑瑕佷紭鍏堟斁鍦ㄦ渶鍓嶉潰錛屼互鍋氬埌灝藉揩鐨勯鍑哄繪壘榪囩▼銆傚湪婧愮爜涓鍐欏煎叆璇鍙ユ椂錛岃佸敖鍙鑳界殑甯︿笂鍚庣紑錛屼粠鑰屽彲浠ラ伩鍏嶅繪壘榪囩▼銆備緥濡傚湪浣犵『瀹氱殑鎯呭喌涓嬫妸 require('./data') 鍐欐垚 require('./data.json') 銆
鐩稿叧 Webpack 閰嶇疆濡備笅錛
mole.exports = {
resolve: {
// 灝藉彲鑳界殑鍑忓皯鍚庣紑灝濊瘯鐨勫彲鑳芥
extensions: ['js'],
},
};
浼樺寲 mole.noParse 閰嶇疆
鍦 2-3 Mole 涓浠嬬粛榪 mole.noParse 閰嶇疆欏瑰彲浠ヨ Webpack 蹇界暐瀵歸儴鍒嗘病閲囩敤妯″潡鍖栫殑鏂囦歡鐨勯掑綊瑙f瀽澶勭悊錛岃繖鏍峰仛鐨勫ソ澶勬槸鑳芥彁楂樻瀯寤烘ц兘銆
鍘熷洜鏄涓浜涘簱錛屼緥濡 jQuery 銆丆hartJS錛 瀹冧滑搴炲ぇ鍙堟病鏈夐噰鐢ㄦā鍧楀寲鏍囧噯錛岃 Webpack 鍘昏В鏋愯繖浜涙枃浠惰楁椂鍙堟病鏈夋剰涔夈
鍦ㄤ笂闈㈢殑 浼樺寲 resolve.alias 閰嶇疆 涓璁插埌鍗曠嫭瀹屾暣鐨 react.min.js 鏂囦歡灝辨病鏈夐噰鐢ㄦā鍧楀寲錛岃╂垜浠鏉ラ氳繃閰嶇疆 mole.noParse 蹇界暐瀵 react.min.js 鏂囦歡鐨勯掑綊瑙f瀽澶勭悊錛
鐩稿叧 Webpack 閰嶇疆濡備笅錛
const path = require('path');
mole.exports = {
mole: {
// 鐙瀹屾暣鐨 `react.min.js` 鏂囦歡灝辨病鏈夐噰鐢ㄦā鍧楀寲錛屽拷鐣ュ `react.min.js` 鏂囦歡鐨勯掑綊瑙f瀽澶勭悊
noParse: [/react.min.js$/],
},
};
娉ㄦ剰琚蹇界暐鎺夌殑鏂囦歡閲屼笉搴旇ュ寘鍚 import 銆 require 銆 define 絳夋ā鍧楀寲璇鍙ワ紝涓嶇劧浼氬艱嚧鏋勫緩鍑虹殑浠g爜涓鍖呭惈鏃犳硶鍦ㄦ祻瑙堝櫒鐜澧冧笅鎵ц岀殑妯″潡鍖栬鍙ャ
鐩鎬俊鐪嬩簡鏈鏂囨堜緥浣犲凡緇忔帉鎻′簡鏂規硶錛屾洿澶氱簿褰╄峰叧娉℅xl緗戝叾瀹冪浉鍏蟲枃絝狅紒
鎺ㄨ崘闃呰伙細
AngularJS瀹炵幇鐚滄暟瀛楀皬娓告垙
Angular瀹炵幇鍙娣誨姞鍒犻櫎涓庤$畻鎬婚噾棰濇晥鏋滄彃浠
Ⅲ 怎麼禁止網站配置文件Web.config能被瀏覽訪問
1.首先打開IIS,找到網站目錄或某個網站的虛擬目錄,點擊右鍵,執行「屬性」
2.切換到「虛擬目錄」,點擊「配置」按鈕
3.點擊「添加」按鈕
4.在「擴展名」輸入框中,輸入「.config」,然後,在「可執行文件「輸入框中,輸入「c:\windows\microsoft.net\framework\v2.0.50727\aspnet_isapi.dll」。