Microsoft MVP성태의 닷넷 이야기
.NET : 47. PInvoke 함수에 대한 적절한 보안 적용 [링크 복사], [링크+제목 복사],
조회: 9839
글쓴 사람
정성태 (techsharer at outlook.com)
홈페이지
첨부 파일
 

Move pinvokes to native methods class
; https://learn.microsoft.com/en-us/dotnet/fundamentals/code-analysis/quality-rules/ca1060

제가 이래서 ^^ "FxCop"(Team System 의 경우 "Code Analysis")을 좋아한다니까요. ^^

PInvoke 관련한 함수들을 호출하기 위해서 무조건 "UnmanagedCode" 권한을 모든 호출자의 스택에서 요구하도록 만들기보다는, 함수 유형에 따라서 알맞은 보안 권한을 별도로 주는 것을 고려해 볼 수 있겠습니다.

예를 들어, 위의 토픽에서 소개되는 예제에 따르면.
MessageBeep Win32 API를 호출하기 위해서 UnmanagedCode 권한을 요구하기 보다는 SuppressUnmanagedCodeSecurityAttribute 특성을 적용한 클래스에 별도 관리해 주고 있습니다.

또한, ShowCursor Win32 API를 위해서도 "UIPermissionWindow.AllWindows" 닷넷 보안을 적용시키도록 한정짓고 있습니다.

근데... 아무래도 가장 좋은 방법은, 마이크로소프트 측에서 단계적으로 기존 Win32 API를 적절하게 감싸는 어셈블리를 제공해주면 어떨까 하는 생각이 드네요. ^^








[최초 등록일: ]
[최종 수정일: 3/27/2023]


비밀번호

댓글 작성자
 




1  2  3  4  5  6  7  8  [9]  10  11  12  13  14  15  ...
NoWriterDateCnt.TitleFile(s)
975정성태10/9/200810701.NET : 88. ClickOnce에서 .application 파일을 다운로드 하려고 할 때.
974정성태10/8/200810718TFS : 168. MSBuild Extension Pack
973정성태10/5/200812391.NET 3.5 : 42. WPF - Web Browser 및 Splash Control 추가
972정성태10/2/200810659TFS : 167. TFS Power Tools 다음 버전 소개
971정성태9/22/200810992TFS : 166. Index cards and Team System
970정성태9/16/200810972Vista : 53. 설치 디스크를 USB 로 만들기
968정성태9/11/200810587XML Conformance Level 에 Fragment 값이 쓰이는 경우.
967정성태9/8/200810712.NET : 87. CertEnroll 개체를 이용한 인증서 요청/반환/설치
966정성태9/2/200810769.NET : 86. .NET Framework 3.5 SP1 소스 코드 공개
965정성태9/2/200811707Vista : 52. SPI(Stateful Packet Inspection) 옵션 제거
964정성태8/18/200812717.NET 3.0 : 24. WPF DataGrid
969정성태9/16/200810998    답변글 .NET 3.0 : 24.1 Editing Tabular Data in WPF - Building a WPF Grid
963정성태7/25/200811783.NET : 85. VPL(Visual Programming Language)를 아세요?
962정성태7/24/200810843TFS : 165. WorkItem 에 대해 Full Text 검색
961정성태7/20/200810790.NET : 84. WCSF Application Architecture
960정성태7/14/200810618.NET : 83. Non Paged CLR Host
959정성태7/7/200811162.NET : 82. Composite Application Guidance for WPF
958정성태7/7/200812313.NET : 81. C# - 왜 모든 함수호출에서 callvirt 를 사용할까?
957정성태6/30/200811283GUID
956정성태6/27/200810792TFS : 164. 팀 프로젝트 간 WorkItem 이동 방법
955정성태6/26/200811317TFS : 163. 삭제된 항목을 소스 컨트롤 탐색기에서 보이도록 하는 방법
954정성태6/20/200810947Debug : 37. IDE 디자인 모드에서의 디버깅 기법
953정성태6/10/200811788.NET : 80. Unity Application Block 소개(?) [1]
952정성태4/28/200811066.NET : 79. IconHandler 2.0
951정성태4/28/200811483SDK : 14. STA / MTA 기원
950정성태4/24/200810579.NET : 78. Ajax View
1  2  3  4  5  6  7  8  [9]  10  11  12  13  14  15  ...