@@ -10,7 +10,10 @@ source "$(dirname "$0")/../test_framework.sh"
1010# Test: Security agent detects hardcoded secrets
1111it " should detect hardcoded secrets in code"
1212scan_for_secrets () {
13- local test_file=$( mktemp)
13+ local test_file=$( mktemp -t secrets_test.XXXXXX)
14+ # Ensure cleanup on exit
15+ trap " rm -f '$test_file '" RETURN
16+
1417 cat > " $test_file " << 'EOF '
1518API_KEY="sk-1234567890abcdef"
1619PASSWORD="supersecret123"
2023 # Simulate secret detection
2124 grep -E " (API_KEY|PASSWORD|TOKEN).*=.*['\" ]" " $test_file " > /dev/null
2225 local result=$?
23- rm -f " $test_file "
2426 return $result
2527}
2628expect_true " scan_for_secrets" " Should detect hardcoded secrets"
@@ -64,15 +66,19 @@ expect_false "echo 'sudo rm -rf /' | grep -q 'sudo rm -rf /'" "Should flag dange
6466# Test: Security agent validates file permissions
6567it " should check file permissions are secure"
6668check_file_permissions () {
67- local test_file=$( mktemp)
69+ # Use mktemp with template for better control
70+ local test_dir=$( mktemp -d -t security_test.XXXXXX)
71+ trap " rm -rf '$test_dir '" RETURN
72+
73+ local test_file=" $test_dir /test_file"
74+ touch " $test_file "
6875 chmod 777 " $test_file "
6976
7077 # Check if file is world-writable (insecure)
7178 local perms=$( stat -f " %OLp" " $test_file " 2> /dev/null || stat -c " %a" " $test_file " 2> /dev/null)
7279 local is_secure=1
7380 [[ " $perms " == " 777" ]] && is_secure=0
7481
75- rm -f " $test_file "
7682 [[ $is_secure -eq 0 ]] && return 1
7783 return 0
7884}
0 commit comments