{"id":4607,"date":"2026-08-24T02:22:55","date_gmt":"2026-08-24T02:22:55","guid":{"rendered":"https:\/\/maroczain.com\/?p=4607"},"modified":"2026-08-24T02:22:55","modified_gmt":"2026-08-24T02:22:55","slug":"mza-security-command-v3","status":"publish","type":"post","link":"https:\/\/maroczain.com\/en\/2026\/08\/24\/mza-security-command-v3\/","title":{"rendered":"MZA Security Command V3"},"content":{"rendered":"\n<style>\n#mza-soc-v3{--bg:#f5f7fb;--card:#fff;--text:#172033;--muted:#667085;--line:#e4e7ec;--p:#0b5ea8;--ok:#067647;--warn:#b54708;--bad:#b42318;font-family:Arial,sans-serif;background:var(--bg);color:var(--text);padding:28px;border-radius:20px}\n#mza-soc-v3.dark{--bg:#0b1220;--card:#111a2b;--text:#eef4fb;--muted:#9fb0c6;--line:#263957;--p:#4da3ff}\n#mza-soc-v3 *{box-sizing:border-box}\n#mza-soc-v3 .top{display:flex;justify-content:space-between;gap:16px;align-items:center;flex-wrap:wrap}\n#mza-soc-v3 h2{font-size:32px;margin:0 0 8px} #mza-soc-v3 p{color:var(--muted);line-height:1.55}\n#mza-soc-v3 button,#mza-soc-v3 select,#mza-soc-v3 input{padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:var(--card);color:var(--text)}\n#mza-soc-v3 button{cursor:pointer;font-weight:700}\n#mza-soc-v3 .kpis{display:grid;grid-template-columns:repeat(5,1fr);gap:12px;margin:22px 0}\n#mza-soc-v3 .kpi,#mza-soc-v3 .panel{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:18px}\n#mza-soc-v3 .kpi strong{display:block;font-size:26px} #mza-soc-v3 .kpi span{font-size:12px;color:var(--muted)}\n#mza-soc-v3 .tabs{display:flex;gap:8px;flex-wrap:wrap;margin:18px 0}\n#mza-soc-v3 .tabs button.active{background:var(--p);color:#fff;border-color:var(--p)}\n#mza-soc-v3 .tab{display:none} #mza-soc-v3 .tab.active{display:block}\n#mza-soc-v3 .grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}\n#mza-soc-v3 .status{display:inline-block;padding:5px 9px;border-radius:999px;font-size:12px;font-weight:700}\n#mza-soc-v3 .ok{background:#ecfdf3;color:#067647}.warn{background:#fffaeb;color:#b54708}.bad{background:#fef3f2;color:#b42318}\n#mza-soc-v3 table{width:100%;border-collapse:collapse;background:var(--card)}\n#mza-soc-v3 th,#mza-soc-v3 td{text-align:left;padding:12px;border-bottom:1px solid var(--line)}\n#mza-soc-v3 .tools{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:14px}\n#mza-soc-v3 .bar{height:10px;background:var(--line);border-radius:99px;overflow:hidden;margin-top:8px}\n#mza-soc-v3 .bar i{display:block;height:100%;background:var(--p)}\n#mza-soc-v3 .note{font-size:12px;color:var(--muted);margin-top:16px}\n@media(max-width:900px){#mza-soc-v3 .kpis{grid-template-columns:repeat(2,1fr)}#mza-soc-v3 .grid{grid-template-columns:1fr}}\n<\/style>\n\n<div id=\"mza-soc-v3\">\n  <div class=\"top\">\n    <div>\n      <h2>\ud83d\udee1\ufe0f MZA Security Command Center V3<\/h2>\n      <p>Cockpit HTML interactif \u2014 s\u00e9curit\u00e9, plugins, incidents, sauvegardes, examens et certificats.<\/p>\n    <\/div>\n    <div class=\"tools\">\n      <button onclick=\"mzaToggleTheme()\">\u263e \/ \u2600<\/button>\n      <button onclick=\"window.print()\">\ud83d\udda8 Imprimer<\/button>\n      <button onclick=\"mzaExportJSON()\">\u2b07 Export JSON<\/button>\n    <\/div>\n  <\/div>\n\n  <div class=\"kpis\">\n    <div class=\"kpi\"><strong id=\"mzaScore\">94<\/strong><span>Security Score \/100<\/span><div class=\"bar\"><i id=\"mzaScoreBar\" style=\"width:94%\"><\/i><\/div><\/div>\n    <div class=\"kpi\"><strong>26<\/strong><span>Packs m\u00e9dicaux suivis<\/span><\/div>\n    <div class=\"kpi\"><strong id=\"mzaCritical\">1<\/strong><span>Alertes critiques<\/span><\/div>\n    <div class=\"kpi\"><strong>4h<\/strong><span>RTO cible<\/span><\/div>\n    <div class=\"kpi\"><strong>24h<\/strong><span>RPO cible<\/span><\/div>\n  <\/div>\n\n  <div class=\"tabs\">\n    <button class=\"active\" data-tab=\"overview\">Vue g\u00e9n\u00e9rale<\/button>\n    <button data-tab=\"plugins\">Plugins<\/button>\n    <button data-tab=\"incidents\">Incidents<\/button>\n    <button data-tab=\"backup\">Sauvegardes<\/button>\n    <button data-tab=\"academic\">Examens &#038; certificats<\/button>\n    <button data-tab=\"controls\">Contr\u00f4les<\/button>\n  <\/div>\n\n  <div id=\"overview\" class=\"tab active\">\n    <div class=\"grid\">\n      <div class=\"panel\"><h3>\ud83d\udd10 Acc\u00e8s<\/h3><p>MFA administrateurs, r\u00f4les minimaux, revue p\u00e9riodique des comptes.<\/p><span class=\"status ok\">Fort<\/span><\/div>\n      <div class=\"panel\"><h3>\ud83e\udde9 Sant\u00e9 plugins<\/h3><p>Inventaire, versions, d\u00e9pendances, checksum et tests avant production.<\/p><span class=\"status warn\">\u00c0 surveiller<\/span><\/div>\n      <div class=\"panel\"><h3>\ud83d\udea8 Incidents<\/h3><p>D\u00e9tection \u2192 qualification \u2192 isolation \u2192 restauration \u2192 revue.<\/p><span class=\"status bad\">1 critique simul\u00e9<\/span><\/div>\n      <div class=\"panel\"><h3>\ud83d\udcbe Continuit\u00e9<\/h3><p>Backup externe, restauration test\u00e9e, RPO\/RTO document\u00e9s.<\/p><span class=\"status ok\">Plan d\u00e9fini<\/span><\/div>\n      <div class=\"panel\"><h3>\ud83d\udcdd Examens<\/h3><p>Banque d&rsquo;items s\u00e9par\u00e9e, version fig\u00e9e et journalisation.<\/p><span class=\"status ok\">Architecture pr\u00eate<\/span><\/div>\n      <div class=\"panel\"><h3>\ud83c\udfc6 Certificats<\/h3><p>UUID, QR, v\u00e9rification et r\u00e9vocation.<\/p><span class=\"status warn\">\u00c0 connecter<\/span><\/div>\n    <\/div>\n  <\/div>\n\n  <div id=\"plugins\" class=\"tab\">\n    <div class=\"tools\">\n      <input id=\"pluginSearch\" placeholder=\"Rechercher un pack...\" oninput=\"mzaFilterPlugins()\">\n      <select id=\"pluginFilter\" onchange=\"mzaFilterPlugins()\"><option value=\"\">Tous<\/option><option>OK<\/option><option>\u00c0 s\u00e9curiser<\/option><\/select>\n    <\/div>\n    <table id=\"pluginTable\"><thead><tr><th>Pack<\/th><th>\u00c9tat<\/th><th>Trust score<\/th><\/tr><\/thead><tbody><\/tbody><\/table>\n  <\/div>\n\n  <div id=\"incidents\" class=\"tab\">\n    <table><thead><tr><th>Incident<\/th><th>Criticit\u00e9<\/th><th>Action<\/th><th>\u00c9tat<\/th><\/tr><\/thead>\n    <tbody>\n      <tr><td>Erreur fatale plugin<\/td><td>Critique<\/td><td>Isolation + rollback<\/td><td><span class=\"status bad\">Ouvert<\/span><\/td><\/tr>\n      <tr><td>\u00c9chec t\u00e2che Cron<\/td><td>Moyenne<\/td><td>Diagnostic<\/td><td><span class=\"status warn\">Surveillance<\/span><\/td><\/tr>\n      <tr><td>\u00c9chec email<\/td><td>Moyenne<\/td><td>Test SMTP<\/td><td><span class=\"status ok\">R\u00e9solu<\/span><\/td><\/tr>\n    <\/tbody><\/table>\n  <\/div>\n\n  <div id=\"backup\" class=\"tab\">\n    <div class=\"grid\">\n      <div class=\"panel\"><h3>Base de donn\u00e9es<\/h3><p>Quotidien<\/p><span class=\"status ok\">Cible<\/span><\/div>\n      <div class=\"panel\"><h3>Plugins MZA<\/h3><p>Snapshot avant release<\/p><span class=\"status ok\">Cible<\/span><\/div>\n      <div class=\"panel\"><h3>Restore Drill<\/h3><p>Test de restauration en environnement isol\u00e9.<\/p><span class=\"status warn\">\u00c0 planifier<\/span><\/div>\n    <\/div>\n  <\/div>\n\n  <div id=\"academic\" class=\"tab\">\n    <div class=\"grid\">\n      <div class=\"panel\"><h3>Question Bank Vault<\/h3><p>Acc\u00e8s auteurs\/reviewers uniquement.<\/p><\/div>\n      <div class=\"panel\"><h3>Exam Session Lock<\/h3><p>Version d&rsquo;examen fig\u00e9e pendant la session.<\/p><\/div>\n      <div class=\"panel\"><h3>Credential Registry<\/h3><p>\u00c9mission, validation et r\u00e9vocation des certificats.<\/p><\/div>\n    <\/div>\n  <\/div>\n\n  <div id=\"controls\" class=\"tab\">\n    <div class=\"panel\">\n      <h3>Calcul du Security Score<\/h3>\n      <p>Cochez les contr\u00f4les r\u00e9ellement appliqu\u00e9s sur votre environnement.<\/p>\n      <label><input type=\"checkbox\" class=\"mzaCheck\" checked> HTTPS actif<\/label><br>\n      <label><input type=\"checkbox\" class=\"mzaCheck\" checked> WP_DEBUG d\u00e9sactiv\u00e9<\/label><br>\n      <label><input type=\"checkbox\" class=\"mzaCheck\" checked> \u00c9diteur de fichiers d\u00e9sactiv\u00e9<\/label><br>\n      <label><input type=\"checkbox\" class=\"mzaCheck\" checked> Sauvegarde externe<\/label><br>\n      <label><input type=\"checkbox\" class=\"mzaCheck\"> MFA administrateurs<\/label><br>\n      <label><input type=\"checkbox\" class=\"mzaCheck\" checked> Mises \u00e0 jour contr\u00f4l\u00e9es<\/label><br>\n      <label><input type=\"checkbox\" class=\"mzaCheck\"> Restauration test\u00e9e<\/label><br>\n      <label><input type=\"checkbox\" class=\"mzaCheck\" checked> Journal d&rsquo;audit<\/label>\n    <\/div>\n  <\/div>\n\n  <div class=\"note\">\u26a0\ufe0f Cette page HTML est un cockpit visuel local. Elle ne lit pas r\u00e9ellement PHP, MySQL, les utilisateurs ou l&rsquo;\u00e9tat du serveur sans backend WordPress s\u00e9curis\u00e9.<\/div>\n<\/div>\n\n<script>\n(function(){\nconst packs=[\"Nursing\",\"Cardio\",\"N\u00e9phro\",\"ORL\",\"Ophtalmo\",\"Psychiatrie\",\"Pneumologie\",\"Neurologie\",\"Urgences\",\"R\u00e9animation\",\"P\u00e9diatrie\",\"Gyn\u00e9co-Obst\u00e9trique\",\"Pharmacologie\",\"Radiologie\",\"Laboratoire\",\"Endocrinologie\",\"Gastro-H\u00e9pato\",\"H\u00e9matologie\",\"Oncologie\",\"Infectiologie\",\"Dermatologie\",\"Rhumatologie\",\"G\u00e9riatrie\",\"Bloc op\u00e9ratoire\",\"Anesth\u00e9sie\",\"Dialyse avanc\u00e9e\"];\nwindow.mzaPacks=packs.map((n,i)=>({name:n,status:i===0?\"OK\":\"\u00c0 s\u00e9curiser\",score:i===0?96:72}));\nfunction render(){\n const tb=document.querySelector(\"#pluginTable tbody\"); if(!tb)return; tb.innerHTML=\"\";\n window.mzaPacks.forEach(p=>{let tr=document.createElement(\"tr\");tr.dataset.name=p.name.toLowerCase();tr.dataset.status=p.status;\n tr.innerHTML=\"<td>\"+p.name+\"<\/td><td>\"+p.status+\"<\/td><td>\"+p.score+\"\/100<\/td>\";tb.appendChild(tr);});\n}\nrender();\ndocument.querySelectorAll(\"#mza-soc-v3 .tabs button\").forEach(b=>b.addEventListener(\"click\",function(){\n document.querySelectorAll(\"#mza-soc-v3 .tabs button\").forEach(x=>x.classList.remove(\"active\"));\n document.querySelectorAll(\"#mza-soc-v3 .tab\").forEach(x=>x.classList.remove(\"active\"));\n this.classList.add(\"active\");document.getElementById(this.dataset.tab).classList.add(\"active\");\n}));\ndocument.querySelectorAll(\".mzaCheck\").forEach(c=>c.addEventListener(\"change\",function(){\n const all=[...document.querySelectorAll(\".mzaCheck\")], yes=all.filter(x=>x.checked).length;\n const score=Math.round(60+(yes\/all.length)*40);\n document.getElementById(\"mzaScore\").textContent=score;document.getElementById(\"mzaScoreBar\").style.width=score+\"%\";\n}));\n})();\nfunction mzaToggleTheme(){document.getElementById(\"mza-soc-v3\").classList.toggle(\"dark\")}\nfunction mzaFilterPlugins(){\n const q=document.getElementById(\"pluginSearch\").value.toLowerCase(),f=document.getElementById(\"pluginFilter\").value;\n document.querySelectorAll(\"#pluginTable tbody tr\").forEach(r=>r.style.display=(r.dataset.name.includes(q)&&(!f||r.dataset.status===f))?\"\":\"none\");\n}\nfunction mzaExportJSON(){\n const data={generated:new Date().toISOString(),securityScore:document.getElementById(\"mzaScore\").textContent,packs:window.mzaPacks};\n const blob=new Blob([JSON.stringify(data,null,2)],{type:\"application\/json\"}),a=document.createElement(\"a\");\n a.href=URL.createObjectURL(blob);a.download=\"mza-security-report.json\";a.click();URL.revokeObjectURL(a.href);\n}\n<\/script>\n","protected":false},"excerpt":{"rendered":"<p>\ud83d\udee1\ufe0f MZA Security Command Center V3 Cockpit HTML interactif \u2014 s\u00e9curit\u00e9, plugins, incidents, sauvegardes, examens et certificats. \u263e \/ \u2600 \ud83d\udda8 Imprimer \u2b07 Export JSON 94Security Score \/100 26Packs m\u00e9dicaux suivis 1Alertes critiques 4hRTO cible 24hRPO cible Vue g\u00e9n\u00e9rale Plugins Incidents Sauvegardes Examens &#038; certificats Contr\u00f4les \ud83d\udd10 Acc\u00e8s MFA administrateurs, r\u00f4les minimaux, revue p\u00e9riodique des [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_feature_clip_id":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_post_was_ever_published":false},"categories":[1],"tags":[],"class_list":["post-4607","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"jetpack_sharing_enabled":true,"jetpack_featured_media_url":"","_links":{"self":[{"href":"https:\/\/maroczain.com\/en\/wp-json\/wp\/v2\/posts\/4607","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/maroczain.com\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/maroczain.com\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/maroczain.com\/en\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/maroczain.com\/en\/wp-json\/wp\/v2\/comments?post=4607"}],"version-history":[{"count":1,"href":"https:\/\/maroczain.com\/en\/wp-json\/wp\/v2\/posts\/4607\/revisions"}],"predecessor-version":[{"id":4608,"href":"https:\/\/maroczain.com\/en\/wp-json\/wp\/v2\/posts\/4607\/revisions\/4608"}],"wp:attachment":[{"href":"https:\/\/maroczain.com\/en\/wp-json\/wp\/v2\/media?parent=4607"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/maroczain.com\/en\/wp-json\/wp\/v2\/categories?post=4607"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/maroczain.com\/en\/wp-json\/wp\/v2\/tags?post=4607"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}