나는이 문제에 대해 충분히 의논하지 않았다. 매우 당황 스럽다. :.Net SQLConnection 클래스에 대한보다 안전한 대안이 있습니까?
This article은 windbg를 사용하여 실행중인 .Net 프로세스 문자열을 메모리에 덤프하는 방법을 알려준다.
관리되지 않는 고정 된 메모리 블록을 사용하는 SecureString 클래스를 연구하는 데 많은 시간을 할애하여 데이터를 암호화 된 상태로 유지합니다. 좋은 물건.
값을 사용하여 System.String 형식 인 SQLConnection.ConnectionString 속성에 할당하면 문제가 발생합니다. 이것은 무엇을 의미 하는가? 음 ...
- 이 그것은
- 가비지 컬렉션은 메모리에 사본을 떠나 주위를 이동 일반 텍스트로 저장되어 는 그것은 windbg를 메모리를 읽을 수는
그 완전히을 Negate 덤프
그 외에 SQLConnection 클래스는 상속되지 않으며, 대신 SecureString 속성으로 내 자신을 굴릴 수 없습니다. 폐쇄 소스에 대한 예. 예.
새로운 DAL 레이어가 진행되고 있지만 새 주 버전과 많은 사용자에 대해 모든 사용자가 업그레이드되기까지 최소 2 년이 걸릴 수 있습니다. 어떤 이유로 든 이전 버전을 무기한으로 유지할 수 있습니다.
빈도 때문에 연결이 사용되므로 SecureString에서 마샬링하면 도움이되지 않습니다. GC가 돌아올 때까지 불변의 오래된 복사본이 메모리에 고정되어 있기 때문입니다. 일부 클라이언트는 도메인에서 작동하지 않고 다른 클라이언트는 네트워크에서 로밍하고 연결하기 때문에 Windows 통합 보안은 옵션이 아닙니다.
어떻게 메모리에 연결 문자열을 보호하여 windbg에서 볼 수 없습니까?
고객 시스템 또는 웹 앱에있는 애플리케이션에 대해 이야기하고 있습니까? – ALOToverflow
이것은 클라이언트 측 데스크탑 응용 프로그램입니다 .Net 2.0, 클라이언트 - 서버 아키텍처 – invert