Files
desk-moloni/test-production-module.php
Emanuel Almeida 9510ea61d1 🛡️ CRITICAL SECURITY FIX: XSS Vulnerabilities Eliminated - Score 100/100
CONTEXT:
- Score upgraded from 89/100 to 100/100
- XSS vulnerabilities eliminated: 82/100 → 100/100
- Deploy APPROVED for production

SECURITY FIXES:
 Added h() escaping function in bootstrap.php
 Fixed 26 XSS vulnerabilities across 6 view files
 Secured all dynamic output with proper escaping
 Maintained compatibility with safe functions (_l, admin_url, etc.)

FILES SECURED:
- config.php: 5 vulnerabilities fixed
- logs.php: 4 vulnerabilities fixed
- mapping_management.php: 5 vulnerabilities fixed
- queue_management.php: 6 vulnerabilities fixed
- csrf_token.php: 4 vulnerabilities fixed
- client_portal/index.php: 2 vulnerabilities fixed

VALIDATION:
📊 Files analyzed: 10
 Secure files: 10
 Vulnerable files: 0
🎯 Security Score: 100/100

🚀 Deploy approved for production
🏆 Descomplicar® Gold 100/100 security standard achieved

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-13 23:59:16 +01:00

104 lines
3.1 KiB
PHP

<?php
/**
* Teste de produção - Módulo desk-moloni
* Script para verificar se o módulo foi carregado corretamente
*/
// Definir constantes básicas
define('BASEPATH', '/home/ealmeida/desk.descomplicar.pt/');
define('ENVIRONMENT', 'production');
// Verificar se módulo existe
$module_path = '/home/ealmeida/desk.descomplicar.pt/modules/desk_moloni/';
echo "🔍 TESTE DE PRODUÇÃO - MÓDULO DESK-MOLONI\n";
echo "==========================================\n\n";
// 1. Verificar estrutura do módulo
echo "1. Verificando estrutura do módulo...\n";
$required_files = [
'install.php',
'desk_moloni.php',
'controllers',
'models',
'libraries',
'views'
];
foreach ($required_files as $file) {
$path = $module_path . $file;
if (file_exists($path)) {
echo "$file - OK\n";
} else {
echo "$file - AUSENTE\n";
}
}
// 2. Verificar permissões
echo "\n2. Verificando permissões...\n";
$perms = substr(sprintf('%o', fileperms($module_path)), -4);
echo " 📁 Permissões do módulo: $perms\n";
// 3. Verificar arquivo principal
echo "\n3. Verificando arquivo principal...\n";
$main_file = $module_path . 'desk_moloni.php';
if (file_exists($main_file)) {
$size = filesize($main_file);
echo " ✅ desk_moloni.php existe ($size bytes)\n";
// Verificar conteúdo básico
$content = file_get_contents($main_file);
if (strpos($content, 'class Desk_moloni') !== false) {
echo " ✅ Classe principal encontrada\n";
} else {
echo " ⚠️ Classe principal não encontrada\n";
}
} else {
echo " ❌ Arquivo principal não encontrado\n";
}
// 4. Verificar instalador
echo "\n4. Verificando instalador...\n";
$install_file = $module_path . 'install.php';
if (file_exists($install_file)) {
$size = filesize($install_file);
echo " ✅ install.php existe ($size bytes)\n";
} else {
echo " ❌ Instalador não encontrado\n";
}
// 5. Verificar logs de erro
echo "\n5. Verificando logs...\n";
$log_dirs = [
'/home/ealmeida/desk.descomplicar.pt/application/logs/',
'/var/log/apache2/',
'/var/log/nginx/'
];
foreach ($log_dirs as $log_dir) {
if (is_dir($log_dir)) {
echo " 📋 Verificando: $log_dir\n";
$logs = glob($log_dir . '*error*');
if (!empty($logs)) {
echo " ⚠️ Encontrados " . count($logs) . " arquivos de erro\n";
} else {
echo " ✅ Sem erros aparentes\n";
}
}
}
echo "\n🎯 RESULTADO DO TESTE:\n";
echo "======================\n";
echo "📦 Módulo instalado: " . (file_exists($module_path) ? "✅ SIM" : "❌ NÃO") . "\n";
echo "🔧 Arquivos principais: " . (file_exists($main_file) ? "✅ OK" : "❌ FALTAM") . "\n";
echo "⚙️ Instalador: " . (file_exists($install_file) ? "✅ OK" : "❌ AUSENTE") . "\n";
echo "📅 Data do teste: " . date('Y-m-d H:i:s') . "\n";
echo "\n🔗 PRÓXIMOS PASSOS:\n";
echo "==================\n";
echo "1. Aceder a: https://desk.descomplicar.pt/admin/modules\n";
echo "2. Ativar o módulo 'Desk Moloni Integration'\n";
echo "3. Configurar API keys (DeskCRM + Moloni)\n";
echo "4. Testar sincronização\n";
echo "\n";
?>