2009-07-15 17 views
1

WordやExcelなどのMS Officeアプリケーションで使用するCOMアドインがあります。 COMアドインでは、使用するAPIがほとんど公開されていません。これをカスタマイズに使用します。ユーザーがVBAにアクセスできないようにするにはどうすればよいですか?

問題点 - すべてのユーザーがAPIにアクセスでき、セキュリティ上の問題が発生しています。 私たちはそれが起こることを望んでいない、我々はわずか数人にVBAエディタへのアクセスを与えたい。

他のマクロとアドインを使用したいので、VBAを無効にすることなくVBAエディタを無効にする方法はありますか?

ありがとうございます!

PS - ツールバーから「開発者」タブを隠そうとしましたが、ショートカット(ALT-F11)を知っている人は誰でも引き続き使用できます。

+0

APIが壊れているためにユーザーがVBAをセキュリティ手段として使用しないようにするか、COMへのすべてのアクセスを禁止するかを明確にする必要がありますまたはシステム上に*新しいプログラムをインストールするのを防ぐためには、 –

+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つがアクセス制限されている場合、解決策はアクセスできないようにすることではありません。答えは、アドイン自体を修正することです。簡単に行うには、アドインを使用できるユーザーグループを定義し、アドインチェックを行ってそのユーザーがそのグループのメンバーであることを確認するだけです。それは実装が簡単で、維持が簡単でなければなりません。

1

VBAパスワード保護は実際にあなたがファイルを読んでいる人からあなたを保護するものではありません。保護を解除するのは非常に簡単です。

もう1つの方法は、COM APIとVBAを難読化することです(コードを読むことができたとしても、何が起こっているのか把握するのは難しいでしょう)。 Appleが過去に行ったことです(例:YoMamaWearsCombatBootsSupported - https://github.com/JaviSoto/iOS7-Runtime-Headers/commit/6ccf9c4526992fec0dc414d48e4a3f7446e9822f#L10R61

+0

+1親指アップ:) – Santosh

関連する問題