asp.net 2.0 의 web.config 에 db 연결자 부분 암호화
이번에도 web.config 파일에 대해 살펴보죠.
.net framework 2.0 에서 사용이 가능한 부분이랍니다. 이점 참고해 주시고요.
저 처럼 의심(?) 이 많은 사람들에게 제일 좋은 tip 인듯 해서 올립니다.
보통 web.config 에 db 연결자 부분을 지정하여 사용하지만, 열어 볼 경우 이것을 가지고
도용할 수 있을지 모른다는..의심을 항상 가지게 된다면 아래와 같은 방법을 취하게 된다면
어느 정도 마음이 조금이나마 편하지 않을까 생각이 드네요.
저는 아래와 같이 web.config 에 db 연결자를 셋팅 했습니다.
===============================
<connectionStrings>
<add name="Pubs" connectionString=" Server=localhost;Integrated Security=True;Database=Pubs" providerName="System.Data.SqlClient" />
<add name="Northwind" connectionString="Server=localhost;Integrated Security=True;Database=Northwind" providerName="System.Data.SqlClient" />
</connectionStrings>
==============================
asp.net 2.0 부터 새로운 보안 기능이 추가 되었는데요.
자동적으로 web.config 파일의 어느 section 이든지 완전히 암호화 할 수 있다는 점이죠.
그러면 어떻게 하느냐면요. dos 창을 띄우시고요.
%windows%\Microsoft.NET\Framework\v2.0.50727 폴더에 접근을 한다음,
aspnet_regiis -pe "connectionStrings" -app "/SampleApplication"
위와 같이 -pe 로 구성섹션을 암호화 할 수 있습니다. 자세한 것은 aspnet_regiis 를 실행해서
도움말을 보시기 바랍니다.
그려면 호스팅을 하는 사람들은 어떻게 해야 하는지요? 라는 질문에.. 아래와 같이 기재하면
된답니다.
===============
Configuration config = Configuration.GetWebConfiguration(Request.ApplicationPath);
ConfigurationSection section = config.Sections["connectionStrings"];
section.ProtectSection ("DataProtectionConfigurationProvider");
config.Update ();
================
실행하면...어떻게 되나면요?
<connectionStrings>
<EncryptedData>
<CipherData>
<CipherValue>AQAAANCMndjHoAw...</CipherValue>
</CipherData>
</EncryptedData>
</connectionStrings>