fix: sanitize API_KEY and BLOCK_PRIVATE_IPS in config generation
- Fix Issue 1: Normalize BLOCK_PRIVATE_IPS to safe boolean (true/false) using shell case statement to prevent PHP injection from non-boolean values like 'yes' - Fix Issue 2: Strip single quotes from API_KEY to prevent PHP string injection if the value contains quotes - Update docker-compose-dev.yml to document these configuration options Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -13,5 +13,7 @@ services:
|
|||||||
|
|
||||||
environment:
|
environment:
|
||||||
- URL=http://localhost:8080
|
- URL=http://localhost:8080
|
||||||
|
# - API_KEY=your-secret-key # if set, all /api requests must provide it
|
||||||
|
# - BLOCK_PRIVATE_IPS=true # block LAN/loopback/metadata IPs (recommended for public hosting)
|
||||||
ports:
|
ports:
|
||||||
- 8080:80
|
- 8080:80
|
||||||
|
|||||||
@@ -14,11 +14,18 @@ chmod 777 /srv/logs
|
|||||||
|
|
||||||
echo ' [+] Building config'
|
echo ' [+] Building config'
|
||||||
_buildConfig() {
|
_buildConfig() {
|
||||||
|
local block_private api_key
|
||||||
|
case "${BLOCK_PRIVATE_IPS:-false}" in
|
||||||
|
true|1|yes) block_private=true ;;
|
||||||
|
*) block_private=false ;;
|
||||||
|
esac
|
||||||
|
api_key="${API_KEY:-}"
|
||||||
|
api_key="${api_key//\'/}"
|
||||||
echo "<?php"
|
echo "<?php"
|
||||||
echo "date_default_timezone_set('Europe/Vienna');"
|
echo "date_default_timezone_set('Europe/Vienna');"
|
||||||
echo "define('URL','${URL:-http://localhost:8080}');"
|
echo "define('URL','${URL:-http://localhost:8080}');"
|
||||||
echo "define('API_KEY','${API_KEY:-}');"
|
echo "define('API_KEY','${api_key}');"
|
||||||
echo "define('BLOCK_PRIVATE_IPS',${BLOCK_PRIVATE_IPS:-false});"
|
echo "define('BLOCK_PRIVATE_IPS',${block_private});"
|
||||||
echo ""
|
echo ""
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user