3.3 KiB
3.3 KiB
🔐 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:
-
API Key dihapus dari Git tracking:
git rm --cached admin/api/config_api.php -
File konfigurasi dimodifikasi untuk menggunakan environment variables:
admin/api/config_api.phpsekarang membaca dari file.env- Gunakan template
.env.exampleuntuk membuat.env
-
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):
- Kunjungi Google AI Studio
- Login dengan akun Google
- Create API Key → Copy key baru
- Update file
.envdi 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:
- Pastikan file
.envada di root directory - Pastikan permission file
.envdapat dibaca oleh PHP - Restart web server jika perlu:
sudo service apache2 restart
Masalah: "403 Forbidden" dari Gemini API
Solusi:
- Periksa apakah API key valid di Google AI Studio
- Pastikan billing enabled di Google Cloud Console
- Cek quota usage di Google Cloud Console
📞 Support:
Jika menemukan masalah keamanan:
- Segera putar API key di Google AI Studio
- Update file
.envdi semua environment - 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