2009-07-15 10 views
1

Word 및 Excel과 같은 MS Office 응용 프로그램에서 사용하는 COM 추가 기능이 있습니다. 해당 COM 추가 기능에서 사용할 몇 가지 API가 노출되어 사용자 지정에 사용됩니다.사용자가 VBA에 액세스하지 못하게하려면 어떻게해야합니까?

문제는 - 모든 사용자가 API에 액세스 할 수 있으며 이로 인해 보안 문제가 발생합니다. 우리는 그런 일이 일어나기를 원하지 않으며, 소수의 사람들에게만 VBA 편집기에 대한 액세스 권한을 부여하려고합니다.

VBA를 비활성화하지 않고 VBA 편집기를 사용하지 않도록 설정할 수있는 방법이 있습니까? 다른 매크로와 추가 기능을 사용하고 싶기 때문입니다.

미리 감사드립니다.

PS - 도구 모음에서 '개발자'탭을 숨기려고했지만 바로 가기 (ALT-F11)를 아는 사람이라면 누구나 여전히 사용할 수 있습니다.

+0

API가 손상되었거나 사용자가 COM에 대한 모든 액세스를 차단하려는 경우 사용자가 보안 조치로 VBA를 사용하지 못하도록할지 여부를 명확히해야합니다 또는 사용자가 시스템에 새 프로그램을 설치하지 못하게하려는 경우. –

+0

COM API에 대한 액세스를 방지하기 위해 Powershell, JScript, VBScript, Perl에 대한 액세스를 차단해야하며 사용자가 USB 키, CDROM, 네트워크 공유 등에서 응용 프로그램을 실행하거나 복사하지 못하도록해야합니다. 인터넷. 사실, 해커는 메모장에 EXE를 입력 할 수도 있습니다 (아마 복사 및 붙여 넣기를 사용하지만 여전히 그렇습니다). –

+0

아, 문서에서 VBA 매크로를 허용하면 다른 컴퓨터에 문서를 작성하고 이메일로 보낼 수 있습니다. –

답변

0

코드를 보거나 편집하기 위해 암호를 추가 할 수 없습니까? 최소한 그들은 당신의 API를 볼 수 없으며 편집자를 열지 못하게해야합니다.

VBA 프로젝트 창에서 프로젝트를 마우스 오른쪽 단추로 클릭하고 '속성'을 선택하여 보호 탭에서 해당 프로젝트에 암호를 추가하십시오.

+0

누구나 API를 볼 수 있습니다 (예 : 개체 브라우저 사용). API를 호출하는 VBA 프로젝트 코드를 볼 수 없으면 호출해야하는 방법에 대한 단서가 거의 없습니다. –

+0

나는 @Oorang의 대답과 함께 갈 것이다. COM 가능 프로그램 편집기를 가진 사용자는 API를 사용할 수 있으므로 VBA를 차단해도 구멍이 닫히지 않습니다. API를 수정하는 것이 유일한 실제 솔루션입니다. –

2

COM 추가 기능의 요구 사항 중 하나가 제한된 액세스 인 경우 솔루션은 액세스 할 수있는 것 이외의 기능을 해제하면 안됩니다. 대답은 추가 기능 자체를 수정해야합니다. 쉽게 할 수있는 방법은 추가 기능을 사용할 수있는 사용자 그룹을 정의한 다음 추가 기능 검사를 통해 사용자가 해당 그룹의 구성원인지 확인하는 것입니다. 이는 구현하기 쉽고 유지 보수가 간단해야합니다.

1

VBA 암호 보호는 실제로 파일을 읽는 사람들로부터 사용자를 보호하지 않습니다. 보호 기능을 제거하는 것은 매우 간단합니다.

한 가지 대안은 COM API뿐만 아니라 VBA도 난독 화하는 것입니다 (사람들이 코드를 읽을 수 있다고해도 상황을 파악하는 것은 어려울 수 있습니다). Apple은 과거에이 작업을 수행했습니다 (예 : YoMamaWearsCombatBootsSupported - https://github.com/JaviSoto/iOS7-Runtime-Headers/commit/6ccf9c4526992fec0dc414d48e4a3f7446e9822f#L10R61).

+0

+1 썸네일 :) – Santosh

관련 문제