0

指定したディレクトリ以外のディレクトリからツール (実行可能ファイル) が実行されるのを防ぐ方法は? ツールのソース コードを編集して再コンパイルする場合があります。Linux ベースの OS。

4

1 に答える 1

0

getcwd()ディレクトリが指定されたディレクトリであるかどうかを呼び出して確認します。

#define ALLOWED_DIR "/foo/bar/baz"
char dir[BUFSIZ];
getcwd(dir, BUFSIZ);
if (strcmp(dir, ALLOWED_DIR) != 0) {
  /* complain and exit */
}

編集

あなたのコメントから、ユーザーが実行しているディレクトリを探しているのではなく、実行可能ファイル自体を含むディレクトリを探しているようです。これを行うための完全に信頼できる方法はありません。http://www.linuxquestions.org/questions/programming-9/how-do-i-get-the-application-path-in-c-426517/を参照してください。

実行可能な場所を確認しても、実際のセキュリティは提供されません。誰かがプログラムのコピーを作成した場合、その場所をチェックする部分を削除するだけです。

ユーザーが公式にインストールされたバージョンのプログラムのみを使用するようにしたい場合は、通常のユーザーがアクセスできないものへのアクセスに依存させる必要があります。次に、プログラムを setuid または setgid にして、アクセスできるようにします。その後、コピーを実行しようとしても、適切なアクセス許可で実行されないため、機能しません。

于 2013-04-16T07:26:40.143 に答える