add
This commit is contained in:
47
scripts/safe-command-check.sh
Executable file
47
scripts/safe-command-check.sh
Executable file
@ -0,0 +1,47 @@
|
||||
#!/bin/bash
|
||||
# Claude Code用の安全なコマンドチェッカー
|
||||
|
||||
COMMAND="$1"
|
||||
|
||||
# 危険なコマンドパターン
|
||||
DANGEROUS_PATTERNS=(
|
||||
"rm -rf /"
|
||||
"rm -rf ~"
|
||||
":(){ :|:& };:" # Fork bomb
|
||||
"> /dev/sda"
|
||||
"dd if=/dev/zero"
|
||||
"mkfs"
|
||||
"format"
|
||||
)
|
||||
|
||||
# 確認が必要なコマンド
|
||||
CONFIRM_PATTERNS=(
|
||||
"sudo"
|
||||
"rm -rf"
|
||||
"git push --force"
|
||||
"npm publish"
|
||||
"pip install"
|
||||
)
|
||||
|
||||
# 危険なコマンドをチェック
|
||||
for pattern in "${DANGEROUS_PATTERNS[@]}"; do
|
||||
if [[ "$COMMAND" =~ $pattern ]]; then
|
||||
echo "❌ 危険なコマンドを検出しました: $COMMAND"
|
||||
echo "このコマンドは実行できません。"
|
||||
exit 1
|
||||
fi
|
||||
done
|
||||
|
||||
# 確認が必要なコマンドをチェック
|
||||
for pattern in "${CONFIRM_PATTERNS[@]}"; do
|
||||
if [[ "$COMMAND" =~ $pattern ]]; then
|
||||
echo "⚠️ 確認が必要なコマンド: $COMMAND"
|
||||
read -p "本当に実行しますか? (yes/no): " confirm
|
||||
if [[ "$confirm" != "yes" ]]; then
|
||||
echo "コマンドをキャンセルしました。"
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
done
|
||||
|
||||
echo "✅ コマンドは安全です: $COMMAND"
|
Reference in New Issue
Block a user