Files
sidak/README_API_SECURITY.md

3.3 KiB
Executable File

🔐 Keamanan API Key SIDAK

⚠️ PENTING: API Key Terdeteksi di Repository Git

File admin/api/config_api.php sebelumnya mengandung kunci API Gemini yang terekspos di repository Git. Kunci ini telah diamankan dengan sistem environment variables.

🛡️ Langkah-Langkah Pengamanan yang Telah Dilakukan:

  1. API Key dihapus dari Git tracking:

    git rm --cached admin/api/config_api.php
    
  2. File konfigurasi dimodifikasi untuk menggunakan environment variables:

    • admin/api/config_api.php sekarang membaca dari file .env
    • Gunakan template .env.example untuk membuat .env
  3. File sensitif ditambahkan ke .gitignore:

    admin/api/config_api.php
    .env
    .env.*.local
    

🚀 Deployment Instructions:

1. Untuk Development Lokal:

# Salin template .env
cp .env.example .env

# Edit .env dengan API key Anda
nano .env  # atau editor favorit Anda

2. Untuk Production Server:

# Buat file .env di server
cat > /var/www/sidak/.env << 'EOF'
# Google Gemini API Configuration
GEMINI_API_KEY=your_actual_production_key_here
EOF

# Pastikan permission aman
chmod 600 /var/www/sidak/.env
chown www-data:www-data /var/www/sidak/.env

3. Get New API Key (jika perlu):

  1. Kunjungi Google AI Studio
  2. Login dengan akun Google
  3. Create API Key → Copy key baru
  4. Update file .env di server

📁 Struktur File yang Aman:

sidak/
├── .env                    # ⚠️ JANGAN commit (sudah di .gitignore)
├── .env.example           # ✅ Template aman untuk commit
├── .gitignore            # ✅ Menyertakan .env dan config_api.php
├── admin/
│   └── api/
│       ├── config_api.php  # ✅ Membaca dari environment variables
│       └── ocr_helper.php  # ✅ Menggunakan GEMINI_API_KEY dari config
└── README_API_SECURITY.md # ✅ Dokumentasi ini

🔧 Testing Configuration:

Untuk memastikan konfigurasi bekerja:

<?php
// Test script: test_api_config.php
require_once 'admin/api/config_api.php';

echo "GEMINI_API_KEY: " . (defined('GEMINI_API_KEY') ? '✅ Set' : '❌ Not set') . "\n";
echo "GEMINI_API_URL: " . GEMINI_API_URL . "\n";

if (empty(GEMINI_API_KEY)) {
    echo "❌ ERROR: API key tidak terdeteksi.\n";
    echo "Pastikan file .env ada dan berisi GEMINI_API_KEY=your_key\n";
} else {
    echo "✅ Konfigurasi API siap digunakan.\n";
}
?>

🔄 Jika Terjadi Masalah:

Masalah: "API key not set"

Solusi:

  1. Pastikan file .env ada di root directory
  2. Pastikan permission file .env dapat dibaca oleh PHP
  3. Restart web server jika perlu: sudo service apache2 restart

Masalah: "403 Forbidden" dari Gemini API

Solusi:

  1. Periksa apakah API key valid di Google AI Studio
  2. Pastikan billing enabled di Google Cloud Console
  3. Cek quota usage di Google Cloud Console

📞 Support:

Jika menemukan masalah keamanan:

  1. Segera putar API key di Google AI Studio
  2. Update file .env di semua environment
  3. Hubungi developer: [wartana@example.com]

⚠️ REMINDER: JANGAN pernah commit file .env atau admin/api/config_api.php ke repository Git. Selalu gunakan .env.example sebagai template.

Terakhir diperbarui: 22 Januari 2026