IT

&" 문자는 web.config에 저장된 암호를 해독합니다.

itgroup 2023. 7. 12. 23:42
반응형

&" 문자는 web.config에 저장된 암호를 해독합니다.

IIS 7.5에서 ASP.NET MVC3 C#.NET 응용 프로그램을 실행하고 있습니다.

파일 공유에 문서를 읽고 쓰기 위해 코드에 가장하는 Windows NT 서비스 계정이 있습니다.사용자 ID는 코드에 컴파일되고 서비스 계정 암호는 web.config 파일에 저장됩니다.

암호에 앰퍼샌드 문자(예: p&ssword).

이것은 사이트를 파괴했습니다.사이트에 액세스할 때 "죄송합니다. 요청을 처리하는 동안 오류가 발생했습니다."라는 오류가 발생했습니다.

다음은 암호를 사용하는 코드입니다.

    var password = ConfigurationManager.AppSettings.Get(Common.SVC_PWD);

    bool isSuccess = LogonUser(
        @"my_svc_acct",
        "my.domain.net",
        password,
        LOGON32_LOGON_NEW_CREDENTIALS,
        LOGON32_PROVIDER_DEFAULT, ref token
    );

이것이 사이트를 파괴하는 이유는 무엇입니까?

나는 당신이 비밀번호를 제대로 인코딩하지 않았다고 의심합니다.web.config파일입니다. 기억하세요.web.configXML 파일이므로 엔티티를 인코딩해야 합니다.

대신에

my&password 

해라

my&password

FreeFormatter.com 같은 사이트를 사용하여 XML 문자열을 이스케이프/에스케이프 해제할 수 있습니다.

인코딩된 값을 web.config에 넣어야 합니다.일단 풀링하면 올바르게 읽히지만 구성 파일 자체에서 인코딩해야 합니다.

예:

암호:your&password(당신이 기대하는 것)

인코딩된 버전:your&password(web.config에 저장해야 할 항목)

값을 읽어내는 래퍼 메소드는 값을 자동으로 인코딩 해제해야 합니다.your&password.

모든 '특수' 문자에 대해 이 작업을 수행해야 합니다.

< = &lt;
> = &gt;
" = &quot;
' = &apos;
& = &amp;

CDATA를 사용하여 web.config에 암호 저장

암호를 이 암호로 대체합니다.

<![CDATA[MyPassw&rd]]>

언급URL : https://stackoverflow.com/questions/14607920/the-character-breaks-passwords-that-are-stored-in-the-web-config

반응형