Ⅰ 如何加密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”。
