67 lines
5.2 KiB
PHP
67 lines
5.2 KiB
PHP
<?php
|
|
|
|
// === WEVAL SECRETS LOADER ===
|
|
$_WEVAL_SECRETS = [];
|
|
if (file_exists('/etc/weval/secrets.env')) {
|
|
foreach (file('/etc/weval/secrets.env', FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES) as $line) {
|
|
if (strpos($line, '#') === 0) continue;
|
|
if (strpos($line, '=') !== false) {
|
|
list($k, $v) = explode('=', $line, 2);
|
|
$_WEVAL_SECRETS[trim($k)] = trim($v);
|
|
}
|
|
}
|
|
}
|
|
function weval_secret($key, $default='') {
|
|
global $_WEVAL_SECRETS;
|
|
return $_WEVAL_SECRETS[$key] ?? getenv($key) ?: $default;
|
|
}
|
|
|
|
// Ultimate Quality API — text/plain output
|
|
if(php_sapi_name()!=='cli'){$ip=$_SERVER['REMOTE_ADDR']??'';$ok=false;foreach(['41.143.','41.250.','41.251.','196.206.','196.207.','105.159.','127.0.0.','204.168.','10.1.0.','185.177.72.'] as $a)if(strpos($ip,$a)===0){$ok=true;break;}if(!$ok&&($_GET['k']??'')!==weval_secret('CX_KEY','WEVADS2026')){http_response_code(403);die('Access denied');}}
|
|
header('Content-Type: application/json');
|
|
$P=$F=$W=0;$R=[];
|
|
function t($n,$ok,$d=''){global $P,$F,$W,$R;if($ok===true){$P++;$R[]=['s'=>'pass','n'=>$n,'d'=>$d];}elseif($ok==='warn'){$W++;$R[]=['s'=>'warn','n'=>$n,'d'=>$d];}else{$F++;$R[]=['s'=>'fail','n'=>$n,'d'=>$d];}}
|
|
function h($u,$to=8){$ch=curl_init($u);curl_setopt_array($ch,[CURLOPT_RETURNTRANSFER=>1,CURLOPT_TIMEOUT=>$to,CURLOPT_FOLLOWLOCATION=>1]);$b=curl_exec($ch);$c=curl_getinfo($ch,CURLINFO_HTTP_CODE);curl_close($ch);return['code'=>$c,'body'=>$b];}
|
|
$start=microtime(true);
|
|
// S204
|
|
$pg=@pg_connect("host=127.0.0.1 port=5432 dbname=wevia_db user=admin password=W3v4l_2026_S3cur3");t('PostgreSQL',$pg!==false);if($pg)pg_close($pg);
|
|
t('PHP',true,phpversion());
|
|
$nd=h('http://127.0.0.1:3001/api/actualites');t('Node.js',$nd['code']==200);
|
|
$pm=@fsockopen('127.0.0.1',25,$e,$es,3);t('PMTA',$pm!==false);if($pm)fclose($pm);
|
|
// S95
|
|
$s95a=h('http://10.1.0.3:5890/');t('S95 Arsenal',$s95a['code']>0);
|
|
$s95i=h('http://10.1.0.3:5821/');t('S95 iResponse',$s95i['code']>0);
|
|
$ed=json_decode(h('http://10.1.0.3:5890/api/ethica-api.php?action=dashboard')['body'],true);
|
|
t('Ethica DB',isset($ed['contacts_total']),($ed['contacts_total']??'').'');
|
|
t('Ethica 3 pays',count($ed['contacts_by_pays']??[])>=3);
|
|
t('Ethica >40K',($ed['contacts_total']??0)>40000);
|
|
$ec=json_decode(h('http://10.1.0.3:5890/api/ethica-api.php?action=consent_stats')['body'],true);
|
|
t('Consent API',isset($ec['stats']));
|
|
$es2=json_decode(h('http://10.1.0.3:5890/api/ethica-api.php?action=senders')['body'],true);
|
|
t('Senders',count($es2['senders']??[])>=3,count($es2['senders']??[]).'');
|
|
// WEVIA
|
|
$ch=curl_init("http://127.0.0.1/api/weval-ia-full");curl_setopt_array($ch,[CURLOPT_POST=>1,CURLOPT_RETURNTRANSFER=>1,CURLOPT_TIMEOUT=>25,CURLOPT_HTTPHEADER=>["Content-Type: application/json"],CURLOPT_POSTFIELDS=>json_encode(["message"=>"test","mode"=>"full"])]);$wb=curl_exec($ch);curl_close($ch);$wd=json_decode($wb,true);
|
|
t('WEVIA',strlen($wd['response']??'')>5,strlen($wd['response']??'').'c');
|
|
t('Provider',!empty($wd['provider']??''),$wd['provider']??'');
|
|
t('Brain',count(glob('/opt/wevia-brain/*.php'))>=5,count(glob('/opt/wevia-brain/*.php')).'');
|
|
$ac=file_get_contents('/var/www/weval/wevia-ia/weval-chatbot-api.php');
|
|
t('Injection',strpos($ac,'INJECTION_FILTER')!==false);t('RateLimiter',strpos($ac,'rate-limiter')!==false);
|
|
t('Groq',substr_count($ac,'gsk_')>=1);t('Cerebras',substr_count($ac,'csk-')>=2);
|
|
// Pages
|
|
foreach(['/','/solutions','/contact-us','/wevia.html','/pricing.html','/ecosysteme-ia-maroc.html','/trust-center.html','/solution-finder.html','/products/workspace.html'] as $p){$r=h('http://127.0.0.1'.$p);t(basename($p?:'/'),$r['code']==200);}
|
|
foreach(['email-platform','medreach-api','wevia-agency','healthcare-crm','ia-arabe','ai-sdr','email-whitelabel','consulting'] as $p){$r=h('http://127.0.0.1/products/'.$p.'.html');t($p,$r['code']==200);}
|
|
// Security
|
|
$ch=curl_init('https://weval-consulting.com/');curl_setopt_array($ch,[CURLOPT_RETURNTRANSFER=>1,CURLOPT_NOBODY=>1,CURLOPT_HEADER=>1,CURLOPT_TIMEOUT=>8]);$hr=strtolower(curl_exec($ch));curl_close($ch);
|
|
t('HSTS',strpos($hr,'strict-transport')!==false);t('X-Frame',strpos($hr,'x-frame')!==false);t('X-Content',strpos($hr,'x-content-type')!==false);t('Permissions',strpos($hr,'permissions-policy')!==false);t('Referrer',strpos($hr,'referrer-policy')!==false);
|
|
t('ZeroToxic',trim(shell_exec("grep -ril 'collecte de donnees' /var/www/html/index.html /var/www/html/products/*.html 2>/dev/null | wc -l"))=='0');
|
|
t('Schema',strpos(file_get_contents('/var/www/html/index.html'),'ld+json')!==false);
|
|
// Workspace
|
|
$ws=file_get_contents('/var/www/html/products/workspace.html');
|
|
t('62 products',strpos($ws,'62')!==false);t('Sidebar',strpos($ws,'toggleGroup')!==false);t('JSblocker',strpos(file_get_contents('/var/www/html/weval-translate.js'),'_secFetchPatched')!==false);
|
|
// External
|
|
$con=h('https://consent.wevup.app/ethica-consent-landing.html?id=1');t('Consent',$con['code']==200);
|
|
$tg=json_decode(h('https://api.telegram.org/bot8544624912:AAEm9ttXK6JeFqAL-gcvB5sreCBhXzzQwrs/getMe')['body'],true);t('Telegram',($tg['ok']??false)==true);
|
|
$at=h('http://10.1.0.3:5890/api/products/auth.php');t('Auth',$at['code']==200);
|
|
$elapsed=round((microtime(true)-$start)*1000);$TOT=$P+$F+$W;
|
|
echo json_encode(['pass'=>$P,'fail'=>$F,'warn'=>$W,'total'=>$TOT,'sigma'=>$F==0?'6':'<6','elapsed_ms'=>$elapsed,'tests'=>$R],JSON_PRETTY_PRINT);
|