{"id":4588,"date":"2026-08-24T01:55:10","date_gmt":"2026-08-24T01:55:10","guid":{"rendered":"https:\/\/maroczain.com\/?p=4588"},"modified":"2026-08-24T01:55:10","modified_gmt":"2026-08-24T01:55:10","slug":"securiser-lensemble-de-la-medical-academy","status":"publish","type":"post","link":"https:\/\/maroczain.com\/en\/2026\/08\/24\/securiser-lensemble-de-la-medical-academy\/","title":{"rendered":"S\u00e9curiser l&rsquo;ensemble de la Medical Academy"},"content":{"rendered":"<!DOCTYPE html>\n<html lang=\"fr\">\n<head>\n<meta charset=\"UTF-8\">\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n<title>MZA Medical Security Center<\/title>\n<style>\n:root{\n  --bg:#f4f7fb;\n  --card:#ffffff;\n  --text:#152033;\n  --muted:#657089;\n  --primary:#0b5ea8;\n  --primary2:#073b6b;\n  --success:#0f8a57;\n  --warning:#b7791f;\n  --line:#e2e8f0;\n  --soft:#eef6ff;\n}\n*{box-sizing:border-box}\nbody{\n  margin:0;\n  font-family:Arial,Helvetica,sans-serif;\n  background:linear-gradient(180deg,#edf5fc 0,#f7f9fc 35%,#fff 100%);\n  color:var(--text)\n}\na{text-decoration:none;color:inherit}\n.wrap{max-width:1180px;margin:auto;padding:0 22px}\n.hero{\n  padding:72px 0 46px;\n  background:\n    radial-gradient(circle at 82% 12%,rgba(11,94,168,.16),transparent 28%),\n    radial-gradient(circle at 14% 8%,rgba(15,138,87,.10),transparent 22%);\n}\n.badge{\n  display:inline-block;padding:8px 14px;border-radius:999px;\n  background:#e8f3ff;color:var(--primary2);font-size:13px;font-weight:700\n}\nh1{font-size:50px;line-height:1.08;margin:18px 0 16px;max-width:900px}\n.lead{font-size:19px;line-height:1.65;color:#4d5a71;max-width:900px}\n.cta{display:flex;gap:12px;flex-wrap:wrap;margin-top:26px}\n.btn{padding:13px 18px;border-radius:12px;font-weight:700;display:inline-block}\n.btn-primary{background:var(--primary);color:#fff}\n.btn-secondary{background:#fff;border:1px solid var(--line);color:var(--primary2)}\n.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-top:38px}\n.stat{\n  background:rgba(255,255,255,.9);border:1px solid var(--line);\n  border-radius:18px;padding:20px;box-shadow:0 10px 30px rgba(15,23,42,.05)\n}\n.stat strong{display:block;font-size:26px;margin-bottom:5px}\n.stat span{font-size:14px;color:var(--muted)}\nsection{padding:56px 0}\nh2{font-size:32px;margin:0 0 10px}\n.sub{color:var(--muted);line-height:1.65;max-width:850px;margin-bottom:26px}\n.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}\n.card{\n  background:var(--card);border:1px solid var(--line);border-radius:18px;\n  padding:22px;box-shadow:0 10px 30px rgba(15,23,42,.05)\n}\n.icon{font-size:27px;margin-bottom:12px}\n.card h3{margin:0 0 9px;font-size:20px}\n.card p{margin:0;color:var(--muted);line-height:1.55}\n.status{\n  display:inline-block;margin-top:14px;padding:6px 10px;border-radius:999px;\n  background:#ecfdf5;color:#047857;font-size:12px;font-weight:700\n}\n.table{width:100%;border-collapse:collapse;background:#fff;border:1px solid var(--line);border-radius:16px;overflow:hidden}\n.table th,.table td{padding:14px 16px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}\n.table th{background:#f8fafc}\n.ok{color:var(--success);font-weight:700}\n.warn{color:var(--warning);font-weight:700}\n.callout{\n  border-radius:22px;padding:30px;\n  background:linear-gradient(135deg,var(--primary2),var(--primary));\n  color:#fff\n}\n.callout p{color:#dcecff;line-height:1.6;max-width:900px}\n.flow{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-top:18px}\n.step{background:#fff;border:1px solid var(--line);border-radius:12px;padding:12px 14px;font-weight:700}\n.arrow{color:#64748b;font-weight:700}\nfooter{padding:36px 0 50px;color:#6b7280;font-size:14px}\n@media(max-width:900px){.stats,.grid{grid-template-columns:repeat(2,1fr)}h1{font-size:40px}}\n@media(max-width:620px){.stats,.grid{grid-template-columns:1fr}h1{font-size:34px}}\n<\/style>\n<\/head>\n<body>\n\n<header class=\"hero\">\n  <div class=\"wrap\">\n    <span class=\"badge\">MZA Medical Security Center<\/span>\n    <h1>S\u00e9curiser l\u2019ensemble de la Medical Academy<\/h1>\n    <p class=\"lead\">\n      Une architecture commune de s\u00e9curit\u00e9 pour les extensions WordPress m\u00e9dicales :\n      contr\u00f4le des acc\u00e8s, journal d\u2019audit, protection des actions sensibles, durcissement\n      HTTP et surveillance technique.\n    <\/p>\n\n    <div class=\"cta\">\n      <a href=\"#protections\" class=\"btn btn-primary\">Voir les protections<\/a>\n      <a href=\"#installation\" class=\"btn btn-secondary\">Ordre d\u2019installation<\/a>\n    <\/div>\n\n    <div class=\"stats\">\n      <div class=\"stat\"><strong>RBAC<\/strong><span>contr\u00f4le des permissions<\/span><\/div>\n      <div class=\"stat\"><strong>Audit<\/strong><span>journal des actions sensibles<\/span><\/div>\n      <div class=\"stat\"><strong>CSRF<\/strong><span>actions prot\u00e9g\u00e9es par nonce<\/span><\/div>\n      <div class=\"stat\"><strong>Privacy<\/strong><span>IP hach\u00e9es dans les logs<\/span><\/div>\n    <\/div>\n  <\/div>\n<\/header>\n\n<section id=\"protections\">\n  <div class=\"wrap\">\n    <h2>Protections int\u00e9gr\u00e9es<\/h2>\n    <p class=\"sub\">\n      Le Security Core fournit une couche commune. Chaque pack m\u00e9dical peut ensuite\n      s\u2019appuyer sur les m\u00eames r\u00e8gles au lieu de r\u00e9inventer sa s\u00e9curit\u00e9.\n    <\/p>\n\n    <div class=\"grid\">\n      <div class=\"card\">\n        <div class=\"icon\">\ud83d\udd10<\/div>\n        <h3>Contr\u00f4le d\u2019acc\u00e8s<\/h3>\n        <p>Les pages sensibles v\u00e9rifient les capacit\u00e9s WordPress avant toute action administrative.<\/p>\n        <span class=\"status\">Actif<\/span>\n      <\/div>\n      <div class=\"card\">\n        <div class=\"icon\">\ud83d\udee1\ufe0f<\/div>\n        <h3>Protection anti-CSRF<\/h3>\n        <p>Les formulaires sensibles utilisent des nonces WordPress et refusent les requ\u00eates non valides.<\/p>\n        <span class=\"status\">Actif<\/span>\n      <\/div>\n      <div class=\"card\">\n        <div class=\"icon\">\ud83e\uddfc<\/div>\n        <h3>Sanitization &#038; escaping<\/h3>\n        <p>Les entr\u00e9es sont nettoy\u00e9es et les sorties \u00e9chapp\u00e9es avec les fonctions natives WordPress.<\/p>\n        <span class=\"status\">Actif<\/span>\n      <\/div>\n      <div class=\"card\">\n        <div class=\"icon\">\ud83e\uddfe<\/div>\n        <h3>Journal d\u2019audit<\/h3>\n        <p>Connexions, activations, d\u00e9sactivations et changements de r\u00f4le peuvent \u00eatre journalis\u00e9s.<\/p>\n        <span class=\"status\">Actif<\/span>\n      <\/div>\n      <div class=\"card\">\n        <div class=\"icon\">\ud83c\udf10<\/div>\n        <h3>En-t\u00eates HTTP<\/h3>\n        <p>Ajout d\u2019en-t\u00eates d\u00e9fensifs pour limiter certains comportements ind\u00e9sirables du navigateur.<\/p>\n        <span class=\"status\">Actif<\/span>\n      <\/div>\n      <div class=\"card\">\n        <div class=\"icon\">\ud83d\udd12<\/div>\n        <h3>XML-RPC<\/h3>\n        <p>D\u00e9sactivation par d\u00e9faut dans le Security Core pour r\u00e9duire la surface d\u2019exposition.<\/p>\n        <span class=\"status\">D\u00e9sactiv\u00e9<\/span>\n      <\/div>\n    <\/div>\n  <\/div>\n<\/section>\n\n<section style=\"background:#f8fafc\">\n  <div class=\"wrap\">\n    <h2>Checklist de s\u00e9curit\u00e9<\/h2>\n    <p class=\"sub\">Ces points doivent \u00eatre contr\u00f4l\u00e9s sur l\u2019h\u00e9bergement en plus des protections du plugin.<\/p>\n\n    <table class=\"table\">\n      <thead>\n        <tr><th>Contr\u00f4le<\/th><th>\u00c9tat recommand\u00e9<\/th><th>Pourquoi<\/th><\/tr>\n      <\/thead>\n      <tbody>\n        <tr><td>HTTPS<\/td><td class=\"ok\">Obligatoire<\/td><td>Chiffre les \u00e9changes entre navigateur et serveur.<\/td><\/tr>\n        <tr><td>WP_DEBUG en production<\/td><td class=\"ok\">D\u00e9sactiv\u00e9<\/td><td>\u00c9vite l\u2019exposition de d\u00e9tails techniques sensibles.<\/td><\/tr>\n        <tr><td>DISALLOW_FILE_EDIT<\/td><td class=\"ok\">Activ\u00e9<\/td><td>D\u00e9sactive l\u2019\u00e9diteur de fichiers depuis l\u2019administration WordPress.<\/td><\/tr>\n        <tr><td>WordPress \/ PHP \/ plugins<\/td><td class=\"ok\">\u00c0 jour<\/td><td>R\u00e9duit l\u2019exposition aux vuln\u00e9rabilit\u00e9s connues.<\/td><\/tr>\n        <tr><td>Sauvegardes externes<\/td><td class=\"ok\">Test\u00e9es<\/td><td>Permet une restauration r\u00e9elle en cas d\u2019incident.<\/td><\/tr>\n        <tr><td>Comptes administrateurs<\/td><td class=\"ok\">Minimum n\u00e9cessaire<\/td><td>R\u00e9duit le risque d\u2019abus ou de compromission.<\/td><\/tr>\n        <tr><td>MFA<\/td><td class=\"warn\">Fortement recommand\u00e9<\/td><td>Ajoute une seconde barri\u00e8re aux comptes sensibles.<\/td><\/tr>\n      <\/tbody>\n    <\/table>\n  <\/div>\n<\/section>\n\n<section id=\"installation\">\n  <div class=\"wrap\">\n    <h2>Ordre d\u2019installation recommand\u00e9<\/h2>\n    <p class=\"sub\">\n      Pour garder une architecture stable, installez d\u2019abord la couche de s\u00e9curit\u00e9, puis les packs m\u00e9tiers.\n    <\/p>\n\n    <div class=\"flow\">\n      <div class=\"step\">1. Security Core<\/div>\n      <div class=\"arrow\">\u2192<\/div>\n      <div class=\"step\">2. Nursing Secure<\/div>\n      <div class=\"arrow\">\u2192<\/div>\n      <div class=\"step\">3. Cardio Secure<\/div>\n      <div class=\"arrow\">\u2192<\/div>\n      <div class=\"step\">4. N\u00e9phro Secure<\/div>\n      <div class=\"arrow\">\u2192<\/div>\n      <div class=\"step\">5. Autres packs<\/div>\n    <\/div>\n  <\/div>\n<\/section>\n\n<section>\n  <div class=\"wrap\">\n    <div class=\"callout\">\n      <h2 style=\"margin-top:0\">Principe directeur<\/h2>\n      <p>\n        Chaque extension doit rester petite, autonome et testable. Le Security Core centralise les protections\n        communes, tandis que les packs sp\u00e9cialis\u00e9s gardent uniquement leur logique m\u00e9tier. Cette s\u00e9paration\n        r\u00e9duit les conflits, facilite les mises \u00e0 jour et limite le risque qu\u2019un seul module compromette toute la plateforme.\n      <\/p>\n    <\/div>\n  <\/div>\n<\/section>\n\n<footer>\n  <div class=\"wrap\">\n    Maroc Zain Medical Academy \u2014 Security Center HTML.\n  <\/div>\n<\/footer>\n\n<\/body>\n<\/html>","protected":false},"excerpt":{"rendered":"<p>MZA Medical Security Center MZA Medical Security Center S\u00e9curiser l\u2019ensemble de la Medical Academy Une architecture commune de s\u00e9curit\u00e9 pour les extensions WordPress m\u00e9dicales : contr\u00f4le des acc\u00e8s, journal d\u2019audit, protection des actions sensibles, durcissement HTTP et surveillance technique. Voir les protections Ordre d\u2019installation RBACcontr\u00f4le des permissions Auditjournal des actions sensibles CSRFactions prot\u00e9g\u00e9es par nonce [&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-4588","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\/4588","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=4588"}],"version-history":[{"count":1,"href":"https:\/\/maroczain.com\/en\/wp-json\/wp\/v2\/posts\/4588\/revisions"}],"predecessor-version":[{"id":4589,"href":"https:\/\/maroczain.com\/en\/wp-json\/wp\/v2\/posts\/4588\/revisions\/4589"}],"wp:attachment":[{"href":"https:\/\/maroczain.com\/en\/wp-json\/wp\/v2\/media?parent=4588"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/maroczain.com\/en\/wp-json\/wp\/v2\/categories?post=4588"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/maroczain.com\/en\/wp-json\/wp\/v2\/tags?post=4588"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}