$id = absint($_GET['id'] ?? 0); check_admin_referer('sa_download_' . $id); global $wpdb; $r = $wpdb->get_row($wpdb->prepare('SELECT * FROM ' . $wpdb->prefix . 'special_auditor_files WHERE id = %d', $id)); if (!$r || !preg_match('/^[a-f0-9]{40}\.pdf$/', $r->stored_name)) wp_die('Documento não encontrado.', '', ['response'=>404]); $dir = sa_storage_status(); if (is_wp_error($dir)) wp_die('Armazenamento indisponível.'); $path = $dir . DIRECTORY_SEPARATOR . $r->stored_name; if (!is_file($path)) wp_die('Documento não encontrado.', '', ['response'=>404]); while (ob_get_level()) ob_end_clean(); nocache_headers(); header('Content-Type: application/pdf'); header('X-Content-Type-Options: nosniff'); header('Content-Disposition: attachment; filename="documento-' . $id . '.pdf"'); header('Content-Length: ' . filesize($path)); readfile($path); exit; }); // Credencial protegida em repouso: AES-256-GCM com chave derivada dos segredos do WordPress. // Se os salts do WordPress forem alterados, será necessário cadastrar a chave novamente. function sa_ai_crypto_key() { if (!function_exists('openssl_encrypt') || !function_exists('openssl_decrypt') || !defined('AUTH_KEY') || !defined('SECURE_AUTH_KEY') || !defined('LOGGED_IN_KEY') || !defined('NONCE_KEY')) return false; return hash('sha256', AUTH_KEY . SECURE_AUTH_KEY . LOGGED_IN_KEY . NONCE_KEY . 'special-auditor-openai-v1', true); } function sa_ai_encrypt($secret) { $key = sa_ai_crypto_key(); if (!$key || !in_array('aes-256-gcm', openssl_get_cipher_methods(), true)) return false; try { $iv = random_bytes(12); } catch (Exception $e) { return false; } $tag = ''; $cipher = openssl_encrypt($secret, 'aes-256-gcm', $key, OPENSSL_RAW_DATA, $iv, $tag); return $cipher === false ? false : base64_encode($iv . $tag . $cipher); } function sa_ai_secret() { $encoded = get_option('sa_ai_secret_v1', ''); if (!is_string($encoded) || $encoded === '') return ''; $raw = base64_decode($encoded, true); $key = sa_ai_crypto_key(); if (!$key || $raw === false || strlen($raw) < 29) return ''; $plain = openssl_decrypt(substr($raw, 28), 'aes-256-gcm', $key, OPENSSL_RAW_DATA, substr($raw, 0, 12), substr($raw, 12, 16)); return $plain === false ? '' : $plain; } function sa_ai_settings_page() { if (!current_user_can('manage_options')) wp_die('Acesso não autorizado.', '', ['response'=>403]); $configured = sa_ai_secret() !== ''; echo '

Special Auditor — Integração OpenAI

'; $notice = isset($_GET['sa_ai_notice']) ? sanitize_key(wp_unslash($_GET['sa_ai_notice'])) : ''; $messages = [ 'saved'=>['updated','Chave salva de forma criptografada.'], 'removed'=>['updated','Chave removida.'], 'invalid'=>['error','Informe uma chave de API válida.'], 'crypto'=>['error','Criptografia AES-256-GCM indisponível no servidor. Nada foi salvo.'], 'ok'=>['updated','Conexão com a API OpenAI confirmada.'], 'failed'=>['error','Não foi possível confirmar a conexão. Verifique a chave, permissões e conectividade do servidor.'] ]; if (isset($messages[$notice])) echo '

' . esc_html($messages[$notice][1]) . '

'; echo '

Status da chave: ' . ($configured ? 'Configurada' : 'Não configurada') . '

'; echo '

A chave não é exibida após o salvamento. Apenas administradores podem alterá-la. A configuração ainda não envia PDFs à OpenAI.

'; echo '
'; echo '' . wp_nonce_field('sa_ai_save', '_sa_ai_nonce', true, false); echo '

'; echo '

'; if ($configured) { echo '
'; echo '' . wp_nonce_field('sa_ai_test', '_sa_ai_nonce', true, false); echo '
'; echo '
'; echo '' . wp_nonce_field('sa_ai_remove', '_sa_ai_nonce', true, false); echo '
'; } echo '

Versão 1.3.0 — Credencial preservada. Extração e auditoria financeira ainda não habilitadas.

'; } function sa_ai_redirect($notice) { wp_safe_redirect(add_query_arg('sa_ai_notice', $notice, admin_url('admin.php?page=special-auditor-ai'))); exit; } add_action('admin_post_sa_ai_save', function () { if (!current_user_can('manage_options')) wp_die('Acesso não autorizado.', '', ['response'=>403]); check_admin_referer('sa_ai_save', '_sa_ai_nonce'); $secret = isset($_POST['sa_ai_key']) && is_string($_POST['sa_ai_key']) ? trim(wp_unslash($_POST['sa_ai_key'])) : ''; if (!preg_match('/^sk-[A-Za-z0-9_-]{16,}$/', $secret) || strlen($secret) > 512) sa_ai_redirect('invalid'); $encrypted = sa_ai_encrypt($secret); if ($encrypted === false) sa_ai_redirect('crypto'); update_option('sa_ai_secret_v1', $encrypted, false); sa_ai_redirect('saved'); }); add_action('admin_post_sa_ai_remove', function () { if (!current_user_can('manage_options')) wp_die('Acesso não autorizado.', '', ['response'=>403]); check_admin_referer('sa_ai_remove', '_sa_ai_nonce'); delete_option('sa_ai_secret_v1'); sa_ai_redirect('removed'); }); add_action('admin_post_sa_ai_test', function () { if (!current_user_can('manage_options')) wp_die('Acesso não autorizado.', '', ['response'=>403]); check_admin_referer('sa_ai_test', '_sa_ai_nonce'); $secret = sa_ai_secret(); if ($secret === '') sa_ai_redirect('failed'); $response = wp_remote_get('https://api.openai.com/v1/models', [ 'timeout'=>20, 'redirection'=>0, 'headers'=>['Authorization'=>'Bearer ' . $secret, 'Accept'=>'application/json'] ]); if (is_wp_error($response)) sa_ai_redirect('failed'); sa_ai_redirect(wp_remote_retrieve_response_code($response) === 200 ? 'ok' : 'failed'); }); Arquivo de Vila Carrão - Página 34 de 72 - Special Imóveis

Sobrado à venda, Vila Carrão, São Paulo

Belíssimo sobrado com Gourmet a venda ou aluga-se somente para fins comerciais nos Altos da Vila Carrão. Localização privilegiada próximo de todo comércio da região e ao Shopping Anália Franco e Esporte Clube Ceret com 160m2 área construída. Decorado de fino acabamento porcelanato, granito e laminado com 3 dormitórios, sendo 1 suíte, banheiro social, 4 […]

Sobrado de 300 metros na Vila Carrão.

Oportunidade imperdível na Vila Carrão! Este sobrado de 300 m² é a escolha ideal para quem busca conforto, espaço e excelente localização. Com 3 dormitórios, todos suítes, sendo a suíte master um verdadeiro luxo, com closet e hidromassagem no banheiro, você terá o máximo em privacidade e sofisticação. O imóvel ainda conta com um sótão […]

Sobrado novo 3 quartos e 3 vagas na Vila Carrão, 132m2

Sobrado novo 3 suítes e 3 vagas na Vila Carrão Fino acabamento, sistema de iluminação, infraestrutura de ar condicionado, box nos banheiros, lavabo, jardim de inverno, sacada, ampla sala, pequeno depósito, cozinha com ilha, churrasqueira, área de serviço e 3 vagas para carros pequenos ou 2 grandes 132 m² de área construída Lcalizado próximo ao […]

Sobrado com 4 quartos à venda Vila Carrão com 280 metros.

Sobrado à venda na Vila Carrao, 289 metros com 4 dormitorios,1 suite, cozinha, despensa, 4 banheiros, com uma edícula nos fundos com quarto, cozinha e banheiro, 4 vagas. Na parte superior da edícula um terraço com encanamento para instalar piscina. Próximo a Rua Taubaté e Astarte. REF. AF32100

Sobrado com 3 quartos à venda Vila Carrão.

Sobrado à venda na Vila Carrão com 3 dormitórios, 3 suítes, 2 closet, sacada, 6 banheiros, sala 2 ambientes mais sala tv, jardim de inverno, lavabo, cozinha, lavanderia, quintal entrada lateral e 2 vagas, area gourmet com churrasqueira, REF. AF29785

Apartamento na Vila Carrão em excelente localização.

Apartamento na Vila Carrão com 2 dormitório, sala, cozinha, banheiro social, área de serviço, novo, todo com piso. Em excelente localização com fácil acesso ao Terminal Carrão e a 10 minutos da Avenida Aricanduva. REF. AF28612

Sobrado com 4 dormitorios à venda Vila Carrão com 650 m².

Sobrado à venda Vila Carrão, 650 metros fino acabamento decorados com armarios planejados co 4 quartos, 2 suite, closetm 5 banheiros, sala 3 ambientes, 2 lareiras, lavabo, lazer piscina, sala de jogos, academia, adega e 3 vagas. Terreno 10X41 mts. REF. AF31604

Sobrado com 3 quartos excelente com área gourmet nos Altos da Vila Carrão 233 m²

Sobrado de 233 m² na Vila Carrão em Rua tranquila, bem residencial, todo iluminado e ensolarado de fino acabamento e decorado com armários planejados com 3 dormitórios, sendo 1 suite, banheiro social, sala 2 ambientes, lavabo, cozinha, lavanderia,dependência de empregada com banheiro, amplo quintal com entrada lateral e 4 vagas. Vale a pena ver! Localização […]

WhatsApp