{"id":30625,"date":"2026-09-17T13:39:56","date_gmt":"2026-09-17T13:39:56","guid":{"rendered":"https:\/\/www.stroople.com\/?page_id=30625"},"modified":"2026-09-20T15:28:10","modified_gmt":"2026-09-20T15:28:10","slug":"signaler-des-tiers","status":"publish","type":"page","link":"https:\/\/www.stroople.com\/fr\/signal-third-parties\/","title":{"rendered":"\u00c9valuation des risques li\u00e9s aux tiers : Cyber, Juridique, Certifications"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"30625\" class=\"elementor elementor-30625\" wpc-filter-elementor-widget=\"1\" data-elementor-post-type=\"page\">\n\t\t\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-619ed34 elementor-section-full_width elementor-section-height-default elementor-section-height-default syd-sticky-section-no\" data-id=\"619ed34\" data-element_type=\"section\" data-e-type=\"section\" data-settings=\"{&quot;background_background&quot;:&quot;gradient&quot;,&quot;_ha_eqh_enable&quot;:false}\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-357d32b syd-sticky-section-no\" data-id=\"357d32b\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-5f3d22e syd-sticky-section-no elementor-widget elementor-widget-html\" data-id=\"5f3d22e\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<div class=\"elementor-widget-container\">\n\n\n\n<meta charset=\"UTF-8\">\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n<title>Third Parties \u2014 Supplier Risk Check<\/title>\n<style>\n.ss-home-link,.ss-home-link:hover,.ss-home-link:visited,.ss-home-link:active{color:#fff !important;text-decoration:none;display:inline-flex;align-items:center;gap:6px;font-weight:600;font-size:14px;font-family:Montserrat,sans-serif;opacity:0.85;transition:opacity .2s;}\n.ss-home-link:hover{opacity:1 !important;}\n.ss-layout{display:flex;max-width:1400px;margin:0 auto;}\n.ss-sidebar-toggle-btn{display:none;background:#09025F;color:#fff !important;font-family:Montserrat,sans-serif;font-size:13px;font-weight:600;padding:10px 16px;border:none;border-radius:6px;margin:16px 24px 0;cursor:pointer;transition:background .15s;}\n.ss-sidebar-toggle-btn:hover{background:#150a7a;color:#fff !important;}\n#ss-sidebar{width:220px;flex-shrink:0;padding:28px 16px 28px 24px;}\n.ss-sidebar-label{font-family:Montserrat,sans-serif;font-size:10px;font-weight:700;letter-spacing:0.08em;color:#8a8a9a;text-transform:uppercase;margin:20px 0 8px;}\n.ss-sidebar-label:first-child{margin-top:0;}\n.ss-sidebar-link{display:flex;align-items:center;gap:8px;font-family:Montserrat,sans-serif;font-size:14px;color:#3a3a4a;text-decoration:none;padding:8px 10px;border-radius:6px;margin-bottom:2px;}\n.ss-sidebar-link:hover{background:#f0f0f5;}\n.ss-sidebar-link.ss-active{background:#EDEAFF;color:#09025F;font-weight:700;}\n.ss-content-area{flex:1;min-width:0;}\n@media (max-width:900px){\n  #ss-sidebar{position:fixed;top:0;left:0;height:100vh;background:#fff;z-index:999;box-shadow:2px 0 12px rgba(0,0,0,0.1);transform:translateX(-100%);transition:transform .25s;overflow-y:auto;}\n  #ss-sidebar.ss-open{transform:translateX(0);}\n  .ss-sidebar-toggle-btn{display:inline-block;}\n  .ss-layout{display:block;}\n}\n.ss-back-link{font-family:Montserrat,sans-serif;font-size:13px;color:#09025F;text-decoration:none;font-weight:600;display:inline-block;margin-top:24px;}\n.ss-back-link:hover{text-decoration:underline;}\n\n.ss-tp-steps{display:flex;align-items:center;gap:10px;margin:24px 0 24px;flex-wrap:wrap;}\n.ss-tp-step{display:flex;align-items:center;gap:8px;font-family:Montserrat,sans-serif;}\n.ss-tp-step-dot{width:30px;height:30px;border-radius:50%;background:#f0f0f5;color:#8a8a9a;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:13px;flex-shrink:0;transition:background .2s,color .2s;}\n.ss-tp-step.ss-on .ss-tp-step-dot{background:#09025F;color:#fff;}\n.ss-tp-step-label{font-size:14px;color:#5a5a6e;font-weight:600;}\n.ss-tp-step.ss-on .ss-tp-step-label{color:#09025F;}\n.ss-tp-step-line{width:56px;height:2px;background:#e0e0e5;flex-shrink:0;}\n.ss-tp-step-line.ss-on{background:#09025F;}\n\n.ss-tp-card{background:#fff;border:1px solid #ececf2;border-radius:12px;padding:28px;margin-bottom:20px;}\n.ss-tp-label{font-family:Montserrat,sans-serif;font-weight:700;font-size:14px;color:#09025F;margin-bottom:8px;display:block;}\n.ss-tp-textarea{width:100%;min-height:118px;border:1px solid #e0e0e5;border-radius:8px;padding:12px 14px;font-family:Montserrat,sans-serif;font-size:14px;color:#3a3a4a;background:#fff;box-sizing:border-box;resize:vertical;line-height:1.7;}\n.ss-tp-note{background:#f7f7fb;border-radius:8px;padding:14px 16px;margin-top:16px;font-family:Montserrat,sans-serif;font-size:12.5px;color:#5a5a6e;line-height:1.6;}\n.ss-tp-note div{display:flex;align-items:flex-start;gap:8px;margin-bottom:6px;}\n.ss-tp-note div:last-child{margin-bottom:0;}\n.ss-tp-check{display:flex;align-items:flex-start;gap:10px;margin-top:16px;font-family:Montserrat,sans-serif;font-size:13px;color:#5a5a6e;line-height:1.5;}\n.ss-tp-check input{margin-top:3px;}\n.ss-tp-actions{display:flex;gap:12px;margin-top:20px;flex-wrap:wrap;}\n.ss-tp-btn{flex:1;min-width:200px;background:#09025F;color:#fff !important;border:none;border-radius:8px;padding:16px;font-family:Montserrat,sans-serif;font-size:15px;font-weight:700;cursor:pointer;transition:background .15s,color .15s;}\n.ss-tp-btn:hover{background:#04C0CE;color:#04014a !important;}\n.ss-tp-btn:disabled{background:#c0c0cc;color:#6b6b7a !important;cursor:not-allowed;}\n.ss-tp-btn-sec{background:#fff;color:#09025F !important;border:1px solid #e0e0e5;border-radius:8px;padding:16px 22px;font-family:Montserrat,sans-serif;font-size:15px;font-weight:700;cursor:pointer;}\n.ss-tp-btn-sec:hover{background:#f0f0f5;}\n.ss-tp-error{background:#fee2e2;color:#991b1b;border-radius:8px;padding:12px 16px;margin-top:14px;font-family:Montserrat,sans-serif;font-size:13px;display:none;}\n\n.ss-tp-counter{font-family:Montserrat,sans-serif;font-size:13px;font-weight:700;color:#09025F;margin:14px 0 2px;}\n.ss-tp-diagram{display:block;width:100%;max-width:640px;margin:8px auto 24px;}\n.ss-tp-select{width:100%;border:1px solid #e0e0e5;border-radius:8px;padding:12px 14px;font-family:Montserrat,sans-serif;font-size:14px;color:#3a3a4a;background:#fff;box-sizing:border-box;}\n.ss-tp-size{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:10px;}\n@media (max-width:620px){.ss-tp-size{grid-template-columns:1fr;}}\n.ss-tp-size button{border:1px solid #e0e0e5;border-radius:8px;padding:14px;font-family:Montserrat,sans-serif;font-size:14px;font-weight:600;color:#3a3a4a;background:#fff;cursor:pointer;text-align:left;transition:border-color .15s,background .15s;}\n.ss-tp-size button span{display:block;font-size:12px;font-weight:400;color:#8a8a9a;margin-top:3px;}\n.ss-tp-size button:hover{background:#fafafd;}\n.ss-tp-size button.ss-sel{border-color:#09025F;background:#EDEAFF;color:#09025F;}\n.ss-tp-size button.ss-sel span{color:#6b63b8;}\n.ss-tp-reg{background:#F4F5FA;border:1px solid #dcdcf0;border-radius:12px;padding:20px 22px;margin-bottom:18px;font-family:Montserrat,sans-serif;font-size:13px;color:#3a3a4a;line-height:1.7;}\n.ss-tp-reg strong{display:block;color:#09025F;font-size:13.5px;margin-bottom:6px;}\n.ss-tp-scope{font-family:Montserrat,sans-serif;font-size:12.5px;color:#5a5a6e;line-height:1.7;background:#f7f7fb;border-radius:10px;padding:16px 18px;margin-top:20px;}\n\n.ss-tp-conf{border:1px solid #ececf2;border-radius:12px;padding:20px 22px;margin-bottom:14px;background:#fff;}\n.ss-tp-conf-dom{font-family:Montserrat,sans-serif;font-weight:700;font-size:15px;color:#09025F;margin-bottom:12px;word-break:break-all;}\n.ss-tp-cand{display:block;width:100%;text-align:left;border:1px solid #e0e0e5;border-radius:8px;padding:12px 14px;margin-bottom:8px;background:#fff;cursor:pointer;font-family:Montserrat,sans-serif;transition:border-color .15s,background .15s;}\n.ss-tp-cand:hover{background:#fafafd;}\n.ss-tp-cand.ss-sel{border-color:#09025F;background:#EDEAFF;}\n.ss-tp-cand-nom{font-weight:700;font-size:13.5px;color:#09025F;}\n.ss-tp-cand-meta{font-size:12px;color:#8a8a9a;margin-top:4px;line-height:1.5;display:block;}\n.ss-tp-cand-line{display:block;margin-top:2px;}\n.ss-tp-cand-tag{display:inline-block;font-size:11px;font-weight:700;color:#09025F;background:#EDEAFF;border-radius:20px;padding:2px 9px;margin-bottom:4px;}\n.ss-tp-cand-exact{display:inline-block;font-size:10px;font-weight:700;letter-spacing:0.04em;text-transform:uppercase;color:#166534;background:#DCFCE7;border-radius:20px;padding:2px 8px;margin-left:8px;vertical-align:middle;}\n.ss-tp-cand-count{font-family:Montserrat,sans-serif;font-size:12px;color:#92400E;background:#FEF3C7;border-radius:8px;padding:9px 12px;margin:8px 0 4px;line-height:1.5;}\n.ss-tp-dep{max-width:84px;flex:0 0 84px !important;min-width:0 !important;text-align:center;}\n.ss-tp-crit{display:flex;gap:8px;margin-top:12px;flex-wrap:wrap;}\n.ss-tp-crit button{border:1px solid #e0e0e5;background:#fff;border-radius:20px;padding:6px 14px;font-family:Montserrat,sans-serif;font-size:12.5px;color:#5a5a6e;cursor:pointer;}\n.ss-tp-crit button.ss-sel{border-color:#09025F;background:#09025F;color:#fff;font-weight:700;}\n.ss-tp-crit-label{font-family:Montserrat,sans-serif;font-size:12px;color:#8a8a9a;margin-top:14px;}\n\n.ss-tp-row{background:#fff;border:1px solid #ececf2;border-radius:12px;margin-bottom:12px;overflow:hidden;opacity:0;transform:translateY(6px);transition:opacity .35s ease,transform .35s ease;}\n.ss-tp-row.ss-vis{opacity:1;transform:none;}\n.ss-tp-row-head{display:grid;grid-template-columns:1.6fr 1fr 1fr 1fr 24px;gap:14px;align-items:center;padding:16px 20px;cursor:pointer;}\n@media (max-width:820px){.ss-tp-row-head{grid-template-columns:1fr;gap:10px;}}\n.ss-tp-row-name{font-family:Montserrat,sans-serif;font-weight:700;font-size:14px;color:#09025F;word-break:break-word;}\n.ss-tp-row-dom{font-family:Montserrat,sans-serif;font-size:12px;color:#8a8a9a;margin-top:2px;word-break:break-all;}\n.ss-tp-cell-label{font-family:Montserrat,sans-serif;font-size:10px;font-weight:700;letter-spacing:0.06em;text-transform:uppercase;color:#a0a0b0;margin-bottom:4px;}\n.ss-tp-cell-val{font-family:Montserrat,sans-serif;font-size:13px;color:#3a3a4a;line-height:1.45;}\n.ss-tp-chev{color:#c0c0cc;transition:transform .2s;}\n.ss-tp-row.ss-open .ss-tp-chev{transform:rotate(180deg);}\n.ss-tp-row-body{display:none;padding:0 20px 22px;border-top:1px solid #f4f4f8;}\n.ss-tp-row.ss-open .ss-tp-row-body{display:block;}\n.ss-tp-block{margin-top:18px;}\n.ss-tp-block-title{display:flex;align-items:center;gap:9px;font-family:Montserrat,sans-serif;font-weight:700;font-size:13px;color:#09025F;margin-bottom:10px;}\n.ss-tp-find{display:flex;align-items:flex-start;gap:8px;font-family:Montserrat,sans-serif;font-size:13px;color:#3a3a4a;line-height:1.55;margin-bottom:7px;}\n.ss-tp-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0;margin-top:5px;}\n.ss-tp-meta{font-family:Montserrat,sans-serif;font-size:12px;color:#8a8a9a;line-height:1.6;margin-top:8px;}\n.ss-tp-badge{display:inline-block;font-family:Montserrat,sans-serif;font-size:11px;font-weight:700;border-radius:20px;padding:3px 10px;margin:0 6px 6px 0;background:#EDEAFF;color:#09025F;}\n.ss-tp-badge.ss-warn{background:#FEF3C7;color:#92400E;}\n.ss-tp-num{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px;background:#f4f4f8;border-radius:4px;padding:1px 6px;color:#3a3a4a;}\n.ss-tp-crit-tag{display:inline-block;font-family:Montserrat,sans-serif;font-size:11px;font-weight:700;border-radius:20px;padding:3px 10px;}\n.ss-tp-crit-high{background:#09025F;color:#fff;}\n.ss-tp-crit-med{background:#EDEAFF;color:#09025F;}\n.ss-tp-crit-low{background:#f0f0f5;color:#8a8a9a;}\n\n.ss-tp-progress{font-family:Montserrat,sans-serif;font-size:13px;color:#5a5a6e;margin-bottom:14px;display:flex;align-items:center;gap:10px;}\n.ss-tp-progress-bar{flex:1;height:4px;border-radius:4px;background:#f0f0f5;overflow:hidden;}\n.ss-tp-progress-fill{height:100%;background:#09025F;border-radius:4px;transition:width .4s ease;}\n\n.ss-tp-trust{display:flex;align-items:center;gap:16px;background:#F4F5FA;border:1px solid #dcdcf0;border-radius:12px;padding:18px 22px;margin-top:24px;font-family:Montserrat,sans-serif;font-size:13px;color:#3a3a4a;line-height:1.65;}\n.ss-tp-trust svg{flex-shrink:0;}\n.ss-tp-final{display:flex;gap:12px;flex-wrap:wrap;margin-top:18px;}\n\n.ss-tp-search{display:flex;gap:8px;margin-top:10px;flex-wrap:wrap;}\n.ss-tp-search input{flex:1;min-width:200px;border:1px solid #e0e0e5;border-radius:8px;padding:10px 12px;font-family:Montserrat,sans-serif;font-size:13px;color:#3a3a4a;box-sizing:border-box;}\n.ss-tp-search button{border:1px solid #09025F;background:#fff;color:#09025F;border-radius:8px;padding:10px 16px;font-family:Montserrat,sans-serif;font-size:13px;font-weight:700;cursor:pointer;}\n.ss-tp-search button:hover{background:#EDEAFF;}\n.ss-tp-search button:disabled{border-color:#d8d8e2;color:#a0a0b0;cursor:not-allowed;background:#fff;}\n\n.ss-tp-check-anim{display:flex;align-items:center;gap:12px;background:#fff;border:1px solid #ececf2;border-radius:12px;padding:18px 20px;margin-bottom:16px;font-family:Montserrat,sans-serif;}\n.ss-tp-radar{flex-shrink:0;}\n.ss-tp-radar-sweep{transform-origin:24px 24px;animation:ss-tp-spin 2.4s linear infinite;}\n@keyframes ss-tp-spin{to{transform:rotate(360deg);}}\n.ss-tp-check-text{font-size:14px;color:#09025F;font-weight:700;transition:opacity .3s ease;}\n.ss-tp-check-sub{font-size:12px;color:#8a8a9a;margin-top:3px;}\n@media (prefers-reduced-motion: reduce){\n  .ss-tp-radar-sweep{animation:none;}\n  .ss-tp-check-text{transition:none;}\n}\n\n.ss-tp-thumb{width:52px;height:52px;border-radius:9px;border:1px solid #ececf2;object-fit:cover;background:#fafafd;flex-shrink:0;}\n.ss-tp-thumb-fallback{width:52px;height:52px;border-radius:9px;background:#EDEAFF;color:#09025F;display:flex;align-items:center;justify-content:center;font-family:Montserrat,sans-serif;font-weight:800;font-size:17px;flex-shrink:0;}\n.ss-tp-idcard{display:flex;gap:14px;align-items:flex-start;}\n.ss-tp-shot{width:100%;max-width:420px;border:1px solid #ececf2;border-radius:10px;display:block;margin-top:10px;background:#fafafd;}\n.ss-tp-alert{display:flex;align-items:flex-start;gap:10px;background:#FEE2E2;border-left:4px solid #DC2626;color:#991B1B;font-family:Montserrat,sans-serif;font-size:13px;font-weight:600;line-height:1.55;padding:12px 16px;}\n.ss-tp-alert svg{flex-shrink:0;margin-top:1px;}\n@media print{\n  #ss-sidebar,.ss-sidebar-toggle-btn,#ss-topbar,.ss-back-link,.ss-tp-final,.ss-tp-steps{display:none !important;}\n  .ss-tp-row-body{display:block !important;}\n  .ss-tp-row{opacity:1 !important;transform:none !important;break-inside:avoid;}\n}\n<\/style>\n\n\n<div id=\"ss-topbar\" style=\"background:#04014a;padding:10px 24px;display:flex;justify-content:flex-end;align-items:center;gap:20px;box-sizing:border-box;\">\n  <a href=\"https:\/\/www.stroople.com\/signal-about-the-data\/\" class=\"ss-home-link\">About the data<\/a>\n  <a href=\"https:\/\/www.stroople.com\/\" target=\"_blank\" rel=\"noopener\" class=\"ss-home-link\">\n    Stroople\n    <svg width=\"12\" height=\"12\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"#fff\" stroke-width=\"2.5\"><path d=\"M7 17L17 7M17 7H8M17 7V16\"><\/path><\/svg>\n  <\/a>\n<\/div>\n\n<button id=\"ss-sidebar-toggle\" class=\"ss-sidebar-toggle-btn\">\u2630 Menu Signal<\/button>\n\n<div class=\"ss-layout\">\n  <nav id=\"ss-sidebar\">\n    <div class=\"ss-sidebar-label\">Monitoring<\/div>\n    <a href=\"https:\/\/www.stroople.com\/signal-ransomware\/\" class=\"ss-sidebar-link\">Ransomware<\/a>\n    <a href=\"https:\/\/www.stroople.com\/signal-vulnerabilities-kev\/\" class=\"ss-sidebar-link\">Vulnerabilities<\/a>\n    <a href=\"https:\/\/www.stroople.com\/signal-data-breaches\/\" class=\"ss-sidebar-link\">Data Breaches<\/a>\n    <a href=\"https:\/\/www.stroople.com\/signal-cnil-sanctions-france\/\" class=\"ss-sidebar-link\">CNIL Sanctions<\/a>\n    <a href=\"https:\/\/www.stroople.com\/signal-phishing\/\" class=\"ss-sidebar-link\">Phishing<\/a>\n    <a href=\"https:\/\/www.stroople.com\/signal-malware-infrastructure\/\" class=\"ss-sidebar-link\">Malware Infrastructure<\/a>\n    <a href=\"https:\/\/www.stroople.com\/signal-threat-actors\/\" class=\"ss-sidebar-link\">Threat Actors<\/a>\n\n    <div class=\"ss-sidebar-label\">Tools<\/div>\n    <a href=\"https:\/\/www.stroople.com\/signal-my-exposure\/\" class=\"ss-sidebar-link\">My Exposure<\/a>\n    <a href=\"https:\/\/www.stroople.com\/signal-third-parties\/\" class=\"ss-sidebar-link ss-active\">Third Parties<\/a>\n    <a href=\"https:\/\/www.stroople.com\/signal-fingerprint\/\" class=\"ss-sidebar-link\">Fingerprinting<\/a>\n    <a href=\"https:\/\/www.stroople.com\/signal-link-exposure\/\" class=\"ss-sidebar-link\">Link Exposure<\/a>\n    <a href=\"https:\/\/www.stroople.com\/signal-password-checker\/\" class=\"ss-sidebar-link\">Password Checker<\/a>\n    <a href=\"https:\/\/www.stroople.com\/signal-ip-url-check\/\" class=\"ss-sidebar-link\">IP\/URL Check<\/a>\n    <a href=\"https:\/\/www.stroople.com\/signal-cyber-index\/\" class=\"ss-sidebar-link\">Cyber Index<\/a>\n    <a href=\"https:\/\/www.stroople.com\/signal-my-alerts\/\" class=\"ss-sidebar-link\">My Alerts<\/a>\n  <\/nav>\n\n  <div class=\"ss-content-area\">\n    <div style=\"max-width:980px;margin:0 auto;padding:0 24px 60px;\">\n      <a href=\"https:\/\/www.stroople.com\/signal\/\" class=\"ss-back-link\">\u2190 Back to overview<\/a>\n\n      <h1 style=\"font-family:Montserrat,sans-serif;color:#09025F;font-size:28px;margin:16px 0 8px;\">Third Parties \u2014 Supplier Risk Check<\/h1>\n      <p style=\"color:#5a5a6e;font-size:14px;line-height:1.6;max-width:760px;\">\n        Check up to five suppliers at once: the public exposure of their website, their legal situation when the company is registered in France, and the certifications they publish themselves. Public sources only, no account, no sign-up.\n      <\/p>\n\n      <div id=\"ss-tp-counter\" class=\"ss-tp-counter\"><\/div>\n\n      <svg class=\"ss-tp-diagram\" viewBox=\"0 0 640 132\" role=\"img\" aria-label=\"A domain name leads to a legal entity, which leads to public facts\">\n        <defs>\n          <marker id=\"ss-tp-arrow\" viewBox=\"0 0 10 10\" refX=\"9\" refY=\"5\" markerWidth=\"7\" markerHeight=\"7\" orient=\"auto-start-reverse\">\n            <path d=\"M 0 0 L 10 5 L 0 10 z\" fill=\"#09025F\"><\/path>\n          <\/marker>\n        <\/defs>\n        <rect x=\"6\" y=\"34\" width=\"176\" height=\"64\" rx=\"11\" fill=\"#EDEAFF\" stroke=\"#c9c2f5\"><\/rect>\n        <text x=\"94\" y=\"60\" text-anchor=\"middle\" font-family=\"Montserrat,sans-serif\" font-size=\"12.5\" font-weight=\"700\" fill=\"#09025F\">Domain name<\/text>\n        <text x=\"94\" y=\"79\" text-anchor=\"middle\" font-family=\"Montserrat,sans-serif\" font-size=\"11\" fill=\"#6b63b8\">what you type<\/text>\n        <line x1=\"188\" y1=\"66\" x2=\"222\" y2=\"66\" stroke=\"#09025F\" stroke-width=\"2\" marker-end=\"url(#ss-tp-arrow)\"><\/line>\n        <rect x=\"230\" y=\"34\" width=\"180\" height=\"64\" rx=\"11\" fill=\"#EDEAFF\" stroke=\"#c9c2f5\"><\/rect>\n        <text x=\"320\" y=\"60\" text-anchor=\"middle\" font-family=\"Montserrat,sans-serif\" font-size=\"12.5\" font-weight=\"700\" fill=\"#09025F\">Legal entity<\/text>\n        <text x=\"320\" y=\"79\" text-anchor=\"middle\" font-family=\"Montserrat,sans-serif\" font-size=\"11\" fill=\"#6b63b8\">you confirm it<\/text>\n        <line x1=\"416\" y1=\"66\" x2=\"450\" y2=\"66\" stroke=\"#09025F\" stroke-width=\"2\" marker-end=\"url(#ss-tp-arrow)\"><\/line>\n        <rect x=\"458\" y=\"34\" width=\"176\" height=\"64\" rx=\"11\" fill=\"#EDEAFF\" stroke=\"#c9c2f5\"><\/rect>\n        <text x=\"546\" y=\"60\" text-anchor=\"middle\" font-family=\"Montserrat,sans-serif\" font-size=\"12.5\" font-weight=\"700\" fill=\"#09025F\">Public facts<\/text>\n        <text x=\"546\" y=\"79\" text-anchor=\"middle\" font-family=\"Montserrat,sans-serif\" font-size=\"11\" fill=\"#6b63b8\">side by side<\/text>\n      <\/svg>\n\n      <div class=\"ss-tp-steps\">\n        <div class=\"ss-tp-step ss-on\" id=\"ss-tp-s1\"><div class=\"ss-tp-step-dot\">1<\/div><div class=\"ss-tp-step-label\">Suppliers<\/div><\/div>\n        <div class=\"ss-tp-step-line\" id=\"ss-tp-l1\"><\/div>\n        <div class=\"ss-tp-step\" id=\"ss-tp-s2\"><div class=\"ss-tp-step-dot\">2<\/div><div class=\"ss-tp-step-label\">Confirm<\/div><\/div>\n        <div class=\"ss-tp-step-line\" id=\"ss-tp-l2\"><\/div>\n        <div class=\"ss-tp-step\" id=\"ss-tp-s3\"><div class=\"ss-tp-step-dot\">3<\/div><div class=\"ss-tp-step-label\">Comparison<\/div><\/div>\n      <\/div>\n\n      <div id=\"ss-tp-panel-1\">\n        <div class=\"ss-tp-card\">\n          <label class=\"ss-tp-label\" for=\"ss-tp-sector\">Your own industry sector<\/label>\n          <select id=\"ss-tp-sector\" class=\"ss-tp-select\"><option value=\"\">Select your sector<\/option><\/select>\n\n          <label class=\"ss-tp-label\" style=\"margin-top:20px;\">Your own organisation size<\/label>\n          <div class=\"ss-tp-size\" id=\"ss-tp-size\">\n            <button type=\"button\" data-s=\"tpe\">Under 50 staff<span>or under 10 M\u20ac turnover<\/span><\/button>\n            <button type=\"button\" data-s=\"pme\">50 to 249 staff<span>or under 50 M\u20ac turnover<\/span><\/button>\n            <button type=\"button\" data-s=\"eti\">250 to 4 999 staff<span>mid-size company<\/span><\/button>\n            <button type=\"button\" data-s=\"grande\">5 000 staff or more<span>large company<\/span><\/button>\n          <\/div>\n          <div class=\"ss-tp-crit-label\">Your sector and size are used only to state what NIS2 or DORA expects of you regarding your suppliers.<\/div>\n\n          <label class=\"ss-tp-label\" for=\"ss-tp-domains\" style=\"margin-top:22px;\">Supplier domain names, one per line, up to five<\/label>\n          <textarea id=\"ss-tp-domains\" class=\"ss-tp-textarea\" spellcheck=\"false\" placeholder=\"example-supplier.com&#10;another-supplier.fr\"><\/textarea>\n          <div class=\"ss-tp-actions\">\n            <button class=\"ss-tp-btn\" id=\"ss-tp-go\">Find these companies<\/button>\n          <\/div>\n          <div class=\"ss-tp-error\" id=\"ss-tp-err1\"><\/div>\n        <\/div>\n      <\/div>\n\n      <div id=\"ss-tp-panel-2\" style=\"display:none;\">\n        <p style=\"font-family:Montserrat,sans-serif;font-size:13.5px;color:#5a5a6e;line-height:1.65;margin:0 0 18px;max-width:760px;\">\n          A domain name rarely names its legal owner. Pick the right company for each supplier, or skip the step and keep the domain alone. Then say how critical the supplier is to your own operations: that is the only judgement this page asks of you, and it is what orders the comparison.\n        <\/p>\n        <div id=\"ss-tp-confirm\"><\/div>\n        <div class=\"ss-tp-actions\">\n          <button class=\"ss-tp-btn\" id=\"ss-tp-run\">Run the comparison<\/button>\n          <button class=\"ss-tp-btn-sec\" id=\"ss-tp-back1\">Back<\/button>\n        <\/div>\n        <div class=\"ss-tp-error\" id=\"ss-tp-err2\"><\/div>\n      <\/div>\n\n      <div id=\"ss-tp-panel-3\" style=\"display:none;\">\n        <div class=\"ss-tp-check-anim\" id=\"ss-tp-anim\">\n          <svg class=\"ss-tp-radar\" width=\"48\" height=\"48\" viewBox=\"0 0 48 48\" aria-hidden=\"true\">\n            <circle cx=\"24\" cy=\"24\" r=\"19\" fill=\"none\" stroke=\"#e6e6f0\" stroke-width=\"1.5\"><\/circle>\n            <circle cx=\"24\" cy=\"24\" r=\"12\" fill=\"none\" stroke=\"#eeeef6\" stroke-width=\"1.5\"><\/circle>\n            <circle cx=\"24\" cy=\"24\" r=\"5\" fill=\"none\" stroke=\"#eeeef6\" stroke-width=\"1.5\"><\/circle>\n            <g class=\"ss-tp-radar-sweep\"><path d=\"M24 24 L24 5 A19 19 0 0 1 38 11 Z\" fill=\"#09025F\" opacity=\"0.16\"><\/path><line x1=\"24\" y1=\"24\" x2=\"24\" y2=\"5\" stroke=\"#09025F\" stroke-width=\"2\"><\/line><\/g>\n            <circle cx=\"24\" cy=\"24\" r=\"2.5\" fill=\"#09025F\"><\/circle>\n          <\/svg>\n          <div>\n            <div class=\"ss-tp-check-text\" id=\"ss-tp-anim-text\">Checking DNS records<\/div>\n            <div class=\"ss-tp-check-sub\" id=\"ss-tp-anim-sub\">Reading public sources<\/div>\n          <\/div>\n        <\/div>\n        <div class=\"ss-tp-progress\" id=\"ss-tp-prog\">\n          <span id=\"ss-tp-prog-text\">Starting\u2026<\/span>\n          <span class=\"ss-tp-progress-bar\"><span class=\"ss-tp-progress-fill\" id=\"ss-tp-prog-fill\" style=\"width:0%\"><\/span><\/span>\n        <\/div>\n        <div id=\"ss-tp-reg\"><\/div>\n        <div id=\"ss-tp-rows\"><\/div>\n        <div class=\"ss-tp-scope\">\n          These results are built from public sources and from statements the suppliers publish themselves. They give a first, documented view of a third party. They do not replace an in-depth assessment carried out and validated by an expert, which covers contractual commitments, the actual scope of certifications, and everything that is not visible from the outside.\n        <\/div>\n        <div class=\"ss-tp-final\">\n          <button class=\"ss-tp-btn-sec\" onclick=\"window.print()\">Export as PDF<\/button>\n          <button class=\"ss-tp-btn-sec\" id=\"ss-tp-restart\">Check other suppliers<\/button>\n        <\/div>\n      <\/div>\n\n    <\/div>\n  <\/div>\n<\/div>\n\n<script>\n(function(){\n  var cfg = (typeof SS_CONFIG !== 'undefined') ? SS_CONFIG : { ajax_url: '\/wp-admin\/admin-ajax.php', nonce: '' };\n  var MAX = 5;\n  var state = { items: [], sector: '', size: '' };\n\n  var $ = function(id){ return document.getElementById(id); };\n  function esc(v){ return String(v === null || v === undefined ? '' : v).replace(\/[&<>\"']\/g, function(c){ return {'&':'&amp;','<':'&lt;','>':'&gt;','\"':'&quot;',\"'\":'&#39;'}[c]; }); }\n\n  var toggle = $('ss-sidebar-toggle');\n  if (toggle) toggle.addEventListener('click', function(){ $('ss-sidebar').classList.toggle('ss-open'); });\n\n  \/\/ Tolere une URL complete ou un www, exige une extension.\n  function nettoyerDomaine(v){\n    return String(v || '').trim().toLowerCase()\n      .replace(\/^[a-z]+:\\\/\\\/\/, '')\n      .replace(\/^www\\.\/, '')\n      .replace(\/[\\\/?#].*$\/, '')\n      .replace(\/\\.$\/, '');\n  }\n  function domaineValide(v){\n    var d = nettoyerDomaine(v);\n    return \/^[a-z0-9]([a-z0-9-]*[a-z0-9])?(\\.[a-z0-9]([a-z0-9-]*[a-z0-9])?)*\\.[a-z]{2,}$\/.test(d);\n  }\n\n  function showErr(id, msg){ var e = $(id); e.textContent = msg; e.style.display = 'block'; }\n  function hideErr(id){ $(id).style.display = 'none'; }\n\n  function step(n){\n    [1,2,3].forEach(function(i){\n      $('ss-tp-s' + i).classList.toggle('ss-on', i <= n);\n      $('ss-tp-panel-' + i).style.display = (i === n) ? 'block' : 'none';\n    });\n    [1,2].forEach(function(i){ $('ss-tp-l' + i).classList.toggle('ss-on', i < n); });\n    window.scrollTo({ top: 0, behavior: 'smooth' });\n  }\n\n  function post(action, params){\n    var body = new URLSearchParams(Object.assign({ action: action, nonce: cfg.nonce }, params));\n    return fetch(cfg.ajax_url, { method: 'POST', body: body })\n      .then(function(r){ return r.json(); })\n      .then(function(j){ if (!j || !j.success) throw new Error((j && j.data && j.data.message) || 'This check could not be completed.'); return j.data; });\n  }\n\n  \/* --- Etape 1 : profil du donneur d'ordre et saisie -------------- *\/\n\n  \/\/ La liste des secteurs vient du serveur : une seule table de\n  \/\/ secteurs est maintenue dans tout le plugin, celle de My Exposure.\n  function refreshCounter(){\n    post('ss_suppliers_stats', {})\n      .then(function(d){\n        var n = parseInt(d.total, 10) || 0;\n        if (n > 0) $('ss-tp-counter').textContent = n.toLocaleString('en-US') + ' supplier check' + (n > 1 ? 's' : '') + ' completed so far, thanks to you.';\n      })\n      .catch(function(){});\n  }\n  refreshCounter();\n\n  post('ss_suppliers_sectors', {})\n    .then(function(d){\n      var sel = $('ss-tp-sector');\n      (d.sectors || []).forEach(function(s){\n        var o = document.createElement('option');\n        o.value = s.key; o.textContent = s.label;\n        sel.appendChild(o);\n      });\n    })\n    .catch(function(){});\n\n  $('ss-tp-sector').addEventListener('change', function(){ state.sector = this.value; });\n\n  Array.prototype.forEach.call($('ss-tp-size').querySelectorAll('button'), function(b){\n    b.addEventListener('click', function(){\n      Array.prototype.forEach.call($('ss-tp-size').querySelectorAll('button'), function(o){ o.classList.remove('ss-sel'); });\n      b.classList.add('ss-sel');\n      state.size = b.dataset.s;\n    });\n  });\n\n  $('ss-tp-go').addEventListener('click', function(){\n    hideErr('ss-tp-err1');\n    var lignes = $('ss-tp-domains').value.split('\\n').map(function(s){ return s.trim(); }).filter(Boolean);\n    if (!state.sector) { showErr('ss-tp-err1', 'Please select your own industry sector.'); return; }\n    if (!state.size) { showErr('ss-tp-err1', 'Please select your own organisation size.'); return; }\n    if (!lignes.length) { showErr('ss-tp-err1', 'Please enter at least one supplier domain name.'); return; }\n    if (lignes.length > MAX) { showErr('ss-tp-err1', 'Please enter no more than ' + MAX + ' domain names.'); return; }\n\n    \/\/ Un domaine sans extension etait accepte ici et n'echouait qu'au\n    \/\/ tableau final, apres avoir fait echouer silencieusement la\n    \/\/ recherche d'entreprise. Il est desormais refuse tout de suite, et\n    \/\/ la ligne fautive est nommee.\n    var mauvaises = lignes.filter(function(d){ return !domaineValide(d); });\n    if (mauvaises.length) {\n      showErr('ss-tp-err1', 'This is not a complete domain name: ' + mauvaises.join(', ') + '. Add the extension, for example cyna-it.fr rather than cyna-it.');\n      return;\n    }\n    lignes = lignes.map(nettoyerDomaine);\n\n    var btn = this;\n    btn.disabled = true;\n    btn.textContent = 'Looking up\u2026';\n\n    state.items = lignes.map(function(d){ return { domain: d, candidates: [], siren: '', crit: 'med', result: null }; });\n\n    var chain = Promise.resolve();\n    state.items.forEach(function(item){\n      chain = chain.then(function(){\n        return post('ss_suppliers_candidates', { domain: item.domain })\n          .then(function(d){ item.domain = d.domain || item.domain; item.candidates = d.candidates || []; item.total = d.total || 0; })\n          .catch(function(){ item.candidates = []; });\n      });\n    });\n\n    chain.then(function(){\n      btn.disabled = false;\n      btn.textContent = 'Find these companies';\n      renderConfirm();\n      step(2);\n    });\n  });\n\n  \/* --- Etape 2 : confirmation de l'entite et criticite ------------ *\/\n\n  \/* Deux entites soeurs d'un meme groupe portent la meme raison\n     sociale : ce sont l'adresse du siege, l'enseigne, l'activite et le\n     nombre d'etablissements qui les distinguent. *\/\n  function candMeta(c){\n    var l1 = [];\n    if (c.activite) l1.push(c.activite);\n    if (c.categorie) l1.push(c.categorie);\n    if (c.effectif_texte) l1.push(c.effectif_texte);\n    if (c.creation) l1.push('since ' + String(c.creation).slice(0,4));\n\n    var l2 = [];\n    if (c.adresse) l2.push(c.adresse);\n    else if (c.ville) l2.push(c.ville + (c.code_postal ? ' ' + c.code_postal : ''));\n    if (c.etablissements) l2.push(c.etablissements + ' open establishment' + (c.etablissements > 1 ? 's' : ''));\n\n    var l3 = [];\n    if (c.siren) l3.push('SIREN ' + c.siren);\n    if (c.etat && c.etat !== 'A') l3.push('no longer active');\n    if (c.origine) l3.push('matched on ' + c.origine);\n\n    var out = '';\n    if (c.enseigne) out += '<span class=\"ss-tp-cand-tag\">trading as ' + esc(c.enseigne) + '<\/span>';\n    [l1, l2, l3].forEach(function(l){ if (l.length) out += '<span class=\"ss-tp-cand-line\">' + esc(l.join(' \u00b7 ')) + '<\/span>'; });\n    return out;\n  }\n\n  function renderConfirm(){\n    var html = '';\n    state.items.forEach(function(item, i){\n      html += '<div class=\"ss-tp-conf\">';\n      html += '<div class=\"ss-tp-conf-dom\">' + esc(item.domain) + '<\/div>';\n      if (item.candidates.length) {\n        item.candidates.forEach(function(c, j){\n          html += '<button type=\"button\" class=\"ss-tp-cand\" data-i=\"' + i + '\" data-j=\"' + j + '\">' +\n                  '<span class=\"ss-tp-cand-nom\">' + esc(c.nom || c.sigle || '\u2014') + (c.exact ? '<span class=\"ss-tp-cand-exact\">exact name<\/span>' : '') + '<\/span>' +\n                  '<span class=\"ss-tp-cand-meta\">' + candMeta(c) + '<\/span><\/button>';\n        });\n        html += '<button type=\"button\" class=\"ss-tp-cand ss-sel\" data-i=\"' + i + '\" data-j=\"-1\">' +\n                '<span class=\"ss-tp-cand-nom\">None of these<\/span>' +\n                '<span class=\"ss-tp-cand-meta\">Keep the domain alone, without a legal entity<\/span><\/button>';\n      } else {\n        html += '<div class=\"ss-tp-cand-meta\"><span class=\"ss-tp-cand-line\">No company from the French register matches this domain name.<\/span><\/div>';\n      }\n      if (item.total && item.total > item.candidates.length) {\n        html += '<div class=\"ss-tp-cand-count\">' + esc(item.total) + ' companies match this search. Narrow it with a d\u00e9partement number, or paste the SIREN or SIRET to settle it outright.<\/div>';\n      }\n      html += '<div class=\"ss-tp-search\" data-i=\"' + i + '\">' +\n              '<input type=\"text\" class=\"ss-tp-q\" placeholder=\"Registered name, SIREN or SIRET\" value=\"' + esc(item.term || '') + '\">' +\n              '<input type=\"text\" class=\"ss-tp-dep\" maxlength=\"3\" placeholder=\"D\u00e9p.\" value=\"' + esc(item.dep || '') + '\">' +\n              '<button type=\"button\">Search<\/button><\/div>';\n      html += '<div class=\"ss-tp-crit-label\">How critical is this supplier to your own operations?<\/div>';\n      html += '<div class=\"ss-tp-crit\" data-i=\"' + i + '\">' +\n              '<button type=\"button\" data-c=\"high\">Critical<\/button>' +\n              '<button type=\"button\" data-c=\"med\" class=\"ss-sel\">Important<\/button>' +\n              '<button type=\"button\" data-c=\"low\">Secondary<\/button><\/div>';\n      html += '<\/div>';\n    });\n    $('ss-tp-confirm').innerHTML = html;\n\n    Array.prototype.forEach.call($('ss-tp-confirm').querySelectorAll('.ss-tp-cand'), function(b){\n      b.addEventListener('click', function(){\n        var i = +b.dataset.i, j = +b.dataset.j;\n        Array.prototype.forEach.call($('ss-tp-confirm').querySelectorAll('.ss-tp-cand[data-i=\"' + i + '\"]'), function(o){ o.classList.remove('ss-sel'); });\n        b.classList.add('ss-sel');\n        state.items[i].siren = (j >= 0 && state.items[i].candidates[j]) ? (state.items[i].candidates[j].siren || '') : '';\n      });\n    });\n\n    Array.prototype.forEach.call($('ss-tp-confirm').querySelectorAll('.ss-tp-search'), function(g){\n      var input = g.querySelector('.ss-tp-q'), dep = g.querySelector('.ss-tp-dep'), btn = g.querySelector('button'), i = +g.dataset.i;\n      var go = function(){\n        var q = input.value.trim();\n        if (q.length < 2) { input.focus(); return; }\n        btn.disabled = true;\n        btn.textContent = 'Searching\u2026';\n        post('ss_suppliers_candidates', { domain: state.items[i].domain, q: q, dep: dep.value.trim() })\n          .then(function(d){\n            state.items[i].candidates = d.candidates || [];\n            state.items[i].total = d.total || 0;\n            state.items[i].term = q;\n            state.items[i].dep = d.dep || '';\n            state.items[i].siren = '';\n            renderConfirm();\n          })\n          \/\/ L'erreur etait avalee : le bouton revenait a son etat initial\n          \/\/ sans rien dire, ce qui se lisait comme \u00ab entreprise\n          \/\/ introuvable \u00bb alors que la requete n'avait pas abouti.\n          .catch(function(e){\n            btn.disabled = false;\n            btn.textContent = 'Search';\n            showErr('ss-tp-err2', e.message || 'This search could not be completed.');\n          });\n      };\n      btn.addEventListener('click', go);\n      [input, dep].forEach(function(f){\n        f.addEventListener('keydown', function(ev){ if (ev.key === 'Enter') { ev.preventDefault(); go(); } });\n      });\n    });\n\n    Array.prototype.forEach.call($('ss-tp-confirm').querySelectorAll('.ss-tp-crit'), function(g){\n      Array.prototype.forEach.call(g.querySelectorAll('button'), function(b){\n        b.addEventListener('click', function(){\n          Array.prototype.forEach.call(g.querySelectorAll('button'), function(o){ o.classList.remove('ss-sel'); });\n          b.classList.add('ss-sel');\n          state.items[+g.dataset.i].crit = b.dataset.c;\n        });\n      });\n    });\n  }\n\n  $('ss-tp-back1').addEventListener('click', function(){ step(1); });\n\n  \/* --- Etape 3 : comparaison, rendu progressif ------------------- *\/\n\n  var CRIT_ORDER = { high: 0, med: 1, low: 2 };\n  var CRIT_LABEL = { high: 'Critical', med: 'Important', low: 'Secondary' };\n  var CRIT_CLASS = { high: 'ss-tp-crit-high', med: 'ss-tp-crit-med', low: 'ss-tp-crit-low' };\n\n  function dotColor(level){\n    if (level === 'high') return '#DC2626';\n    if (level === 'medium') return '#F59E0B';\n    if (level === 'ok') return '#16A34A';\n    return '#a0a0b0';\n  }\n\n  function findings(list){\n    if (!list || !list.length) return '';\n    return list.map(function(f){\n      var advice = f.advice ? '<div class=\"ss-tp-meta\">' + esc(f.advice) + '<\/div>' : '';\n      return '<div class=\"ss-tp-find\"><span class=\"ss-tp-dot\" style=\"background:' + dotColor(f.level) + '\"><\/span><span>' + esc(f.text) + advice + '<\/span><\/div>';\n    }).join('');\n  }\n\n  function cyberSummary(r){\n    var c = r.cyber || {};\n    var vals = ['email_security','certificates','exposed_services'].map(function(k){ return (c[k] && typeof c[k].score === 'number') ? c[k].score : null; }).filter(function(v){ return v !== null; });\n    if (!vals.length) return 'not read';\n    var issues = 0;\n    ['email_security','certificates','exposed_services'].forEach(function(k){\n      ((c[k] || {}).findings || []).forEach(function(f){ if (f.level === 'high' || f.level === 'medium') issues++; });\n    });\n    return issues === 0 ? 'nothing flagged' : issues + ' point' + (issues > 1 ? 's' : '') + ' to review';\n  }\n\n  function sanctionSummary(r){\n    if ((r.sanctions || {}).gels && r.sanctions.gels.length) return 'asset freeze on record';\n    var g = (r.juridiction || {}).gafi;\n    if (g) return 'FATF ' + g.liste;\n    return '';\n  }\n\n  function legalSummary(r){\n    var e = (r.legal || {}).entite;\n    var b = (r.legal || {}).bodacc || {};\n    var sanc = sanctionSummary(r);\n    if (sanc) return sanc;\n    if (!e) return 'no French entity confirmed';\n    if (b.procedures && b.procedures.length) return 'insolvency filing on record';\n    var bits = [];\n    if (e.categorie) bits.push(e.categorie);\n    if (e.etat === 'A') bits.push('active');\n    return bits.length ? bits.join(', ') : 'registered';\n  }\n\n  function certSummary(r){\n    var n = ((r.confiance || {}).certifications || []).length;\n    var a = (r.anssi || []).length;\n    if (!n && !a) return 'none published';\n    var bits = [];\n    if (n) bits.push(n + ' published');\n    if (a) bits.push(a + ' ANSSI');\n    return bits.join(', ');\n  }\n\n  function thumb(item){\n    var ic = item.result && item.result.identite ? (item.result.identite.icone || item.result.identite.image) : null;\n    var initiale = esc(item.domain.charAt(0).toUpperCase());\n    if (ic) return '<img decoding=\"async\" class=\"ss-tp-thumb\" src=\"' + esc(ic) + '\" alt=\"\" loading=\"lazy\" referrerpolicy=\"no-referrer\" data-initiale=\"' + initiale + '\">';\n    return '<span class=\"ss-tp-thumb-fallback\">' + initiale + '<\/span>';\n  }\n\n  function renderRow(item, idx){\n    var r = item.result;\n    var alertes = [];\n    if (r && r.sanctions && r.sanctions.gels && r.sanctions.gels.length) {\n      alertes.push('Asset freeze on record: this legal entity matches an entry in the French national asset-freeze register. Verify before any payment, delivery or contract.');\n    }\n    if (r && r.recent_compromise) {\n      alertes.push('Recent compromise on record: this organisation appears in ransomware activity or a confirmed data breach dated within the last twelve months, or with no date established.');\n    }\n    var alert = alertes.map(function(a){\n      return '<div class=\"ss-tp-alert\"><svg width=\"18\" height=\"18\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"#DC2626\" stroke-width=\"2\"><path d=\"M12 3l9 16H3z\"><\/path><path d=\"M12 9v5\"><\/path><circle cx=\"12\" cy=\"17\" r=\"0.6\" fill=\"#DC2626\"><\/circle><\/svg><span>' + esc(a) + '<\/span><\/div>';\n    }).join('');\n    var head = alert + '<div class=\"ss-tp-row-head\">' +\n      '<div class=\"ss-tp-idcard\">' + thumb(item) + '<div><div class=\"ss-tp-row-name\">' + esc((r && r.legal && r.legal.entite && r.legal.entite.nom) || item.domain) + '<\/div>' +\n      '<div class=\"ss-tp-row-dom\">' + esc(item.domain) + ' \u00b7 <span class=\"ss-tp-crit-tag ' + CRIT_CLASS[item.crit] + '\">' + CRIT_LABEL[item.crit] + '<\/span><\/div><\/div><\/div>' +\n      '<div><div class=\"ss-tp-cell-label\">Exposure<\/div><div class=\"ss-tp-cell-val\">' + esc(r ? cyberSummary(r) : 'not read') + '<\/div><\/div>' +\n      '<div><div class=\"ss-tp-cell-label\">Legal<\/div><div class=\"ss-tp-cell-val\">' + esc(r ? legalSummary(r) : 'not read') + '<\/div><\/div>' +\n      '<div><div class=\"ss-tp-cell-label\">Certifications<\/div><div class=\"ss-tp-cell-val\">' + esc(r ? certSummary(r) : 'not read') + '<\/div><\/div>' +\n      '<svg class=\"ss-tp-chev\" width=\"18\" height=\"18\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><path d=\"M6 9l6 6 6-6\"><\/path><\/svg>' +\n      '<\/div>';\n\n    if (!r) return '<div class=\"ss-tp-row ss-vis\" data-idx=\"' + idx + '\">' + head + '<div class=\"ss-tp-row-body\"><div class=\"ss-tp-meta\">' + esc(item.error || 'This supplier could not be read.') + '<\/div><\/div><\/div>';\n\n    var body = '<div class=\"ss-tp-row-body\">';\n\n    var id = r.identite || {};\n    if (id.titre || id.image) {\n      body += '<div class=\"ss-tp-block\"><div class=\"ss-tp-block-title\">' +\n        '<svg width=\"17\" height=\"17\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"#09025F\" stroke-width=\"1.7\"><rect x=\"3\" y=\"4\" width=\"18\" height=\"15\" rx=\"2\"><\/rect><path d=\"M3 9h18\"><\/path><circle cx=\"6\" cy=\"6.5\" r=\"0.6\" fill=\"#09025F\"><\/circle><\/svg>Is this the right supplier?<\/div>';\n      if (id.titre) body += '<div class=\"ss-tp-find\"><span class=\"ss-tp-dot\" style=\"background:#a0a0b0\"><\/span><span>' + esc(id.titre) + '<\/span><\/div>';\n      if (id.image) body += '<img decoding=\"async\" class=\"ss-tp-shot\" src=\"' + esc(id.image) + '\" alt=\"\" loading=\"lazy\" referrerpolicy=\"no-referrer\">';\n      body += '<div class=\"ss-tp-meta\">Read from ' + esc(id.url || ('https:\/\/' + item.domain)) + ', as the site presents itself.<\/div>';\n      body += '<\/div>';\n    }\n\n    body += '<div class=\"ss-tp-block\"><div class=\"ss-tp-block-title\">' +\n      '<svg width=\"17\" height=\"17\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"#09025F\" stroke-width=\"1.7\"><path d=\"M12 3l7 3v5c0 4.4-3 8.3-7 10-4-1.7-7-5.6-7-10V6l7-3z\"><\/path><\/svg>Public exposure<\/div>';\n    ['email_security','certificates','exposed_services'].forEach(function(k){\n      body += findings(((r.cyber || {})[k] || {}).findings);\n    });\n    var br = (r.cyber || {}).breach || {};\n    if (br.ransomware || br.fuite) {\n      var m = br.ransomware || br.fuite;\n      body += '<div class=\"ss-tp-find\"><span class=\"ss-tp-dot\" style=\"background:#DC2626\"><\/span><span>This organisation appears in the ransomware activity or confirmed breaches already tracked by Stroople Signal, matched as \"' + esc(m.name || '') + '\"' + (m.date ? ', ' + esc(m.date) : '') + '.<\/span><\/div>';\n    }\n    body += '<\/div>';\n\n    body += '<div class=\"ss-tp-block\"><div class=\"ss-tp-block-title\">' +\n      '<svg width=\"17\" height=\"17\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"#09025F\" stroke-width=\"1.7\"><circle cx=\"12\" cy=\"9\" r=\"5\"><\/circle><path d=\"M8.5 13.5L7 21l5-2.5L17 21l-1.5-7.5\"><\/path><\/svg>Legal situation and continuity<\/div>';\n    var e = (r.legal || {}).entite, b = (r.legal || {}).bodacc || {};\n    if (e) {\n      var l = [];\n      if (e.nom) l.push('Registered name: ' + e.nom);\n      if (e.siren) l.push('SIREN ' + e.siren);\n      if (e.categorie) l.push('Size category: ' + e.categorie);\n      if (e.creation) l.push('Registered since ' + e.creation);\n      if (e.ville) l.push('Head office: ' + e.ville);\n      if (e.etablissements) l.push(e.etablissements + ' open establishment(s)');\n      if (e.etat) l.push('Administrative status: ' + (e.etat === 'A' ? 'active' : e.etat));\n      body += '<div class=\"ss-tp-find\"><span class=\"ss-tp-dot\" style=\"background:#a0a0b0\"><\/span><span>' + esc(l.join('. ')) + '.<\/span><\/div>';\n      if (e.finances && e.finances.annee) {\n        body += '<div class=\"ss-tp-find\"><span class=\"ss-tp-dot\" style=\"background:#a0a0b0\"><\/span><span>Last published accounts: ' + esc(e.finances.annee) + '.<\/span><\/div>';\n      }\n      if (b.repondu) {\n        if (b.procedures && b.procedures.length) {\n          b.procedures.forEach(function(p){\n            body += '<div class=\"ss-tp-find\"><span class=\"ss-tp-dot\" style=\"background:#DC2626\"><\/span><span>Insolvency-related filing in BODACC: ' + esc(p.type) + (p.date ? ', ' + esc(p.date) : '') + '.<\/span><\/div>';\n          });\n        } else {\n          body += '<div class=\"ss-tp-find\"><span class=\"ss-tp-dot\" style=\"background:#16A34A\"><\/span><span>No insolvency proceeding found among the ' + esc(b.annonces) + ' BODACC announcement(s) on record for this company.<\/span><\/div>';\n        }\n      }\n    } else {\n      body += '<div class=\"ss-tp-meta\">No legal entity was confirmed for this domain, so this block covers the domain alone.<\/div>';\n    }\n    body += '<\/div>';\n\n    body += '<div class=\"ss-tp-block\"><div class=\"ss-tp-block-title\">' +\n      '<svg width=\"17\" height=\"17\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"#09025F\" stroke-width=\"1.7\"><path d=\"M7 3h10v11l-5 3-5-3z\"><\/path><path d=\"M9 20l3-2 3 2\"><\/path><\/svg>Certifications published by the supplier<\/div>';\n    var certs = (r.confiance || {}).certifications || [];\n    if (certs.length) {\n      certs.forEach(function(c){\n        body += '<div class=\"ss-tp-find\"><span class=\"ss-tp-dot\" style=\"background:#a0a0b0\"><\/span><span><strong>' + esc(c.referentiel) + '<\/strong>' +\n                (c.numero ? ' \u00b7 certificate number <span class=\"ss-tp-num\">' + esc(c.numero) + '<\/span>' : '') +\n                '<div class=\"ss-tp-meta\">Verify ' + esc(c.verifier) + '.<\/div><\/span><\/div>';\n      });\n    }\n    (r.anssi || []).forEach(function(a){\n      body += '<div class=\"ss-tp-find\"><span class=\"ss-tp-dot\" style=\"background:#a0a0b0\"><\/span><span>ANSSI ' + esc(a.qualification) + ' \u00b7 ' + esc(a.statut === 'qualifie' ? 'qualified' : 'qualification in progress') + '<div class=\"ss-tp-meta\">Listed by ANSSI under \"' + esc(a.nom) + '\", matched on the ' + esc(a.rapprochement === 'domaine' ? 'domain name' : 'company name') + '.<\/div><\/span><\/div>';\n    });\n    if (!certs.length && !(r.anssi || []).length) {\n      body += '<div class=\"ss-tp-meta\">This supplier publishes no certification on the pages read.<\/div>';\n    }\n    if ((r.confiance || {}).page_confiance) {\n      body += '<div class=\"ss-tp-meta\">Read from ' + esc(r.confiance.page_confiance) + '.<\/div>';\n    }\n    if (certs.length) {\n      body += '<div class=\"ss-tp-meta\">A published claim is not a verified certificate. Each line above says where the certificate should be checked.<\/div>';\n    }\n    body += '<\/div>';\n\n    var sanc = r.sanctions || {}, jur = r.juridiction || {};\n    if (sanc.index_pret || jur.pays) {\n      body += '<div class=\"ss-tp-block\"><div class=\"ss-tp-block-title\">' +\n        '<svg width=\"17\" height=\"17\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"#09025F\" stroke-width=\"1.7\"><circle cx=\"12\" cy=\"12\" r=\"9\"><\/circle><path d=\"M5 5l14 14\"><\/path><\/svg>Sanctions and jurisdiction<\/div>';\n\n      (sanc.gels || []).forEach(function(g){\n        var det = [];\n        if (g.pays) det.push(g.pays);\n        if (g.reference) det.push('EU reference ' + g.reference);\n        body += '<div class=\"ss-tp-find\"><span class=\"ss-tp-dot\" style=\"background:#DC2626\"><\/span><span>Listed in the French national asset-freeze register as <strong>' + esc(g.nom) + '<\/strong>' + (det.length ? ' (' + esc(det.join(', ')) + ')' : '') + '.' +\n                (g.base ? '<div class=\"ss-tp-meta\">Legal basis: ' + esc(g.base) + '<\/div>' : '') +\n                '<div class=\"ss-tp-meta\">Matched on the ' + esc(g.rapprochement === 'identifier' ? 'registration identifier' : 'registered name') + '.<\/div><\/span><\/div>';\n      });\n\n      if (sanc.index_pret && !(sanc.gels || []).length) {\n        body += '<div class=\"ss-tp-find\"><span class=\"ss-tp-dot\" style=\"background:#16A34A\"><\/span><span>No entry matching this legal entity in the French national asset-freeze register' + (sanc.publication ? ', published ' + esc(String(sanc.publication).slice(0,10)) : '') + '.<\/span><\/div>';\n      }\n\n      if (jur.pays) {\n        var g2 = jur.gafi;\n        body += '<div class=\"ss-tp-find\"><span class=\"ss-tp-dot\" style=\"background:' + (g2 ? '#F59E0B' : '#a0a0b0') + '\"><\/span><span>Jurisdiction: ' + esc(jur.pays) +\n          (g2 ? '. FATF status: ' + esc(g2.liste) + (g2.mesure ? ', ' + esc(g2.mesure) : '') : '. Not on a FATF high-risk or increased-monitoring list.') +\n          '<div class=\"ss-tp-meta\">Determined from the ' + esc(jur.origine) + '.<\/div><\/span><\/div>';\n      }\n\n      body += '<div class=\"ss-tp-meta\">The register covers freezing measures in force in France, whether decided by the United Nations, by the European Union or nationally. Matching is on an exact registered name, an exact alias or an exact registration identifier. Individuals are never screened by this page.<\/div>';\n      body += '<\/div>';\n    }\n\n    var presta = r.prestataires || [];\n    if (presta.length) {\n      body += '<div class=\"ss-tp-block\"><div class=\"ss-tp-block-title\">' +\n        '<svg width=\"17\" height=\"17\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"#09025F\" stroke-width=\"1.7\"><circle cx=\"12\" cy=\"12\" r=\"3\"><\/circle><circle cx=\"5\" cy=\"6\" r=\"2\"><\/circle><circle cx=\"19\" cy=\"6\" r=\"2\"><\/circle><circle cx=\"12\" cy=\"21\" r=\"2\"><\/circle><path d=\"M6.5 7.5L10 10M17.5 7.5L14 10M12 15v4\"><\/path><\/svg>Providers behind this supplier<\/div>';\n      body += '<div>' + presta.map(function(p){ return '<span class=\"ss-tp-badge\">' + esc(p.nom) + ' \u00b7 ' + esc(p.role) + '<\/span>'; }).join('') + '<\/div>';\n      body += '<div class=\"ss-tp-meta\">Named by the supplier\\'s own public DNS records. Your supplier\\'s suppliers are part of your own chain.<\/div>';\n      body += '<\/div>';\n    }\n\n    if (typeof r.checks_undetermined === 'number' && r.checks_undetermined > 0) {\n      body += '<div class=\"ss-tp-meta\">Partial reading: ' + esc(r.checks_undetermined) + ' check(s) returned no answer within the time budget.<\/div>';\n    }\n\n    body += '<\/div>';\n    return '<div class=\"ss-tp-row\" data-idx=\"' + idx + '\">' + head + body + '<\/div>';\n  }\n\n  function paint(){\n    var ordered = state.items.map(function(it, i){ return { it: it, i: i }; })\n      .sort(function(a, b){\n        var d = CRIT_ORDER[a.it.crit] - CRIT_ORDER[b.it.crit];\n        return d !== 0 ? d : a.i - b.i;\n      });\n    $('ss-tp-rows').innerHTML = ordered.filter(function(o){ return o.it.done; })\n      .map(function(o){ return renderRow(o.it, o.i); }).join('');\n    Array.prototype.forEach.call($('ss-tp-rows').querySelectorAll('.ss-tp-row'), function(row, k){\n      setTimeout(function(){ row.classList.add('ss-vis'); }, 90 * k);\n      row.querySelector('.ss-tp-row-head').addEventListener('click', function(){ row.classList.toggle('ss-open'); });\n    });\n    \/\/ Une icone injoignable ne doit pas laisser une image cassee : on la\n    \/\/ remplace par l'initiale du domaine.\n    Array.prototype.forEach.call($('ss-tp-rows').querySelectorAll('img.ss-tp-thumb'), function(img){\n      img.addEventListener('error', function(){\n        var s = document.createElement('span');\n        s.className = 'ss-tp-thumb-fallback';\n        s.textContent = img.getAttribute('data-initiale') || '?';\n        if (img.parentNode) img.parentNode.replaceChild(s, img);\n      });\n    });\n  }\n\n  \/* L'animation nomme ce qui est effectivement lu pendant l'appel en\n     cours. Elle ne coche rien et ne pretend rien terminer : les quatre\n     lectures se font dans la meme requete. *\/\n  var ANIM = [\n    ['Checking DNS records', 'Mail routing, name servers, certificate authorities'],\n    ['Checking the TLS certificate', 'Validity, issuer, enforcement of HTTPS'],\n    ['Checking exposed services', 'Ports and software already indexed publicly'],\n    ['Checking the company register', 'Legal entity, size, establishments, insolvency filings'],\n    ['Checking published certifications', 'ISO, SOC 2, HDS and ANSSI qualifications']\n  ];\n  var animTimer = null;\n\n  function animStart(){\n    var i = 0;\n    var t = $('ss-tp-anim-text'), s = $('ss-tp-anim-sub');\n    var tick = function(){\n      t.style.opacity = '0'; s.style.opacity = '0';\n      setTimeout(function(){\n        t.textContent = ANIM[i][0]; s.textContent = ANIM[i][1];\n        t.style.opacity = '1'; s.style.opacity = '1';\n        i = (i + 1) % ANIM.length;\n      }, 300);\n    };\n    tick();\n    animTimer = setInterval(tick, 2600);\n  }\n\n  function animStop(n){\n    if (animTimer) { clearInterval(animTimer); animTimer = null; }\n    $('ss-tp-anim').style.display = 'none';\n  }\n\n  $('ss-tp-run').addEventListener('click', function(){\n    hideErr('ss-tp-err2');\n    var btn = this;\n    btn.disabled = true;\n    step(3);\n    $('ss-tp-anim').style.display = 'flex';\n    animStart();\n\n    post('ss_suppliers_regulatory', { sector: state.sector, org_size: state.size })\n      .then(function(d){\n        $('ss-tp-reg').innerHTML = '<div class=\"ss-tp-reg\"><strong>' + esc(d.titre) + '<\/strong>' + esc(d.texte) + '<\/div>';\n      })\n      .catch(function(){});\n\n    var total = state.items.length, done = 0;\n    var chain = Promise.resolve();\n\n    state.items.forEach(function(item){\n      chain = chain.then(function(){\n        $('ss-tp-prog-text').textContent = 'Reading ' + item.domain + '\u2026';\n        return post('ss_suppliers_analyse', { domain: item.domain, siren: item.siren })\n          .then(function(d){ item.result = d; })\n          .catch(function(e){ item.error = e.message; })\n          .then(function(){\n            item.done = true;\n            done++;\n            $('ss-tp-prog-fill').style.width = Math.round(100 * done \/ total) + '%';\n            paint();\n          });\n      });\n    });\n\n    chain.then(function(){\n      btn.disabled = false;\n      animStop();\n      refreshCounter();\n      $('ss-tp-prog-text').textContent = done + ' supplier(s) read, ordered by the criticality you declared.';\n    });\n  });\n\n  $('ss-tp-restart').addEventListener('click', function(){\n    animStop();\n    state.items = [];\n    $('ss-tp-rows').innerHTML = '';\n    $('ss-tp-reg').innerHTML = '';\n    $('ss-tp-domains').value = '';\n    $('ss-tp-prog-fill').style.width = '0%';\n    step(1);\n  });\n})();\n<\/script>\n\n<\/div>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-d639f48 syd-sticky-section-no elementor-widget elementor-widget-html\" data-id=\"d639f48\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<script type=\"application\/ld+json\">{\"@context\":\"https:\/\/schema.org\",\"@type\":\"FAQPage\",\"mainEntity\":[{\"@type\":\"Question\",\"name\":\"What does the Third Parties page do?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"It takes up to five supplier domain names and returns, for each one, the public exposure of the supplier's website, its legal situation when the company is registered in France, and the certifications the supplier publishes itself. Everything is read from public sources in real time, with no account and no sign-up.\"}},{\"@type\":\"Question\",\"name\":\"How does Stroople Signal link a domain name to a company?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"It does not decide on its own. A domain name rarely names its legal owner, so the page searches the French company register for the most plausible candidates and shows each one with its SIREN, size category and location. You confirm which is the right company, or skip the step and keep the domain alone.\"}},{\"@type\":\"Question\",\"name\":\"Is my supplier list stored?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"No. The domains submitted are never kept, neither as a list nor as a pair of companies. Only anonymous counters are incremented, by activity sector and by company, with no visitor, no address and no precise time, and a sector figure is published only once at least five distinct enquiries exist.\"}},{\"@type\":\"Question\",\"name\":\"What do the certifications shown on a supplier mean?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"They are the certifications the supplier publishes on its own website, typically ISO 27001, ISO 9001, SOC 2, HDS or an ANSSI qualification. Stroople Signal reports the claim and, when the supplier states one, the certificate number, together with the registry or body where that number should be checked. A published claim is not a verified certificate.\"}},{\"@type\":\"Question\",\"name\":\"Does the page give each supplier a score?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"No. There is no single grade and no ranking. A third party rated on public signals alone would be rated wrongly, so the page places the observable facts side by side, orders them by the criticality you declare yourself, and leaves the judgement to you.\"}}]}<\/script>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-1107e88 syd-sticky-section-no elementor-widget elementor-widget-html\" data-id=\"1107e88\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<script type=\"application\/ld+json\">{\"@context\":\"https:\/\/schema.org\",\"@type\":\"FAQPage\",\"mainEntity\":[{\"@type\":\"Question\",\"name\":\"\u00c0 quoi sert la page Tiers de Stroople Signal ?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Elle accepte jusqu'\u00e0 cinq noms de domaine de fournisseurs et restitue, pour chacun, l'exposition publique de son site, sa situation juridique lorsque l'entreprise est immatricul\u00e9e en France, et les certifications que le fournisseur publie lui-m\u00eame. Tout provient de sources publiques, en temps r\u00e9el, sans compte et sans inscription.\"}},{\"@type\":\"Question\",\"name\":\"Comment le rapprochement entre un nom de domaine et une entreprise est-il \u00e9tabli ?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Il n'est jamais \u00e9tabli automatiquement. Un nom de domaine d\u00e9signe rarement son titulaire l\u00e9gal, la page interroge donc le registre des entreprises fran\u00e7aises et propose les candidats les plus plausibles avec leur SIREN, leur cat\u00e9gorie de taille et leur commune. C'est vous qui confirmez la bonne entit\u00e9, ou qui passez l'\u00e9tape.\"}},{\"@type\":\"Question\",\"name\":\"Ma liste de fournisseurs est-elle conserv\u00e9e ?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Non. Les domaines soumis ne sont conserv\u00e9s ni en liste ni en couple d'entreprises. Seuls des compteurs anonymes sont incr\u00e9ment\u00e9s, par secteur d'activit\u00e9 et par entreprise, sans visiteur, sans adresse et sans horodatage fin, et un chiffre sectoriel n'est publi\u00e9 qu'\u00e0 partir de cinq consultations distinctes.\"}},{\"@type\":\"Question\",\"name\":\"Que signifient les certifications affich\u00e9es pour un fournisseur ?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Ce sont les certifications que le fournisseur publie sur son propre site, le plus souvent ISO 27001, ISO 9001, SOC 2, HDS ou une qualification ANSSI. Stroople Signal restitue la mention et, lorsqu'elle est indiqu\u00e9e, le num\u00e9ro de certificat, accompagn\u00e9 du registre ou de l'organisme o\u00f9 ce num\u00e9ro doit \u00eatre v\u00e9rifi\u00e9. Une mention publi\u00e9e n'est pas un certificat v\u00e9rifi\u00e9.\"}},{\"@type\":\"Question\",\"name\":\"La page attribue-t-elle une note \u00e0 chaque fournisseur ?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Non. Aucune note globale, aucun classement. Un tiers not\u00e9 sur les seuls signaux publics serait mal not\u00e9, la page juxtapose donc les faits observables, les ordonne selon la criticit\u00e9 que vous d\u00e9clarez vous-m\u00eame, et laisse le jugement \u00e0 votre appr\u00e9ciation.\"}}]}<\/script>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-9a5b21a syd-sticky-section-no elementor-widget elementor-widget-html\" data-id=\"9a5b21a\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<script type=\"application\/ld+json\">{\"@context\":\"https:\/\/schema.org\",\"@type\":\"FAQPage\",\"mainEntity\":[{\"@type\":\"Question\",\"name\":\"What is the CISA KEV catalog?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"The Known Exploited Vulnerabilities (KEV) catalog is a list maintained by the US Cybersecurity and Infrastructure Security Agency, tracking vulnerabilities that are being actively exploited by attackers in the wild.\"}},{\"@type\":\"Question\",\"name\":\"What does actively exploited mean?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"It means real-world attackers are already using this vulnerability to compromise systems, as opposed to a theoretical flaw that has only been demonstrated in a lab or research setting.\"}},{\"@type\":\"Question\",\"name\":\"Is this catalog specific to France?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"No, unlike other Stroople Signal pages, this catalog is global. Vulnerabilities affect software used worldwide regardless of borders.\"}},{\"@type\":\"Question\",\"name\":\"What does the ransomware-linked badge mean?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"It indicates the vulnerability has been associated with known ransomware campaigns, which generally raises its priority for patching.\"}},{\"@type\":\"Question\",\"name\":\"Where can I find the complete official KEV catalog?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"The full, authoritative and up to date catalog is published directly on the CISA website.\"}}]}<\/script>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-cb4f4dc syd-sticky-section-no elementor-widget elementor-widget-html\" data-id=\"cb4f4dc\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<script type=\"application\/ld+json\">{\"@context\":\"https:\/\/schema.org\",\"@type\":\"FAQPage\",\"mainEntity\":[{\"@type\":\"Question\",\"name\":\"Qu'est-ce que le catalogue CISA KEV ?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Le catalogue KEV (Known Exploited Vulnerabilities) est une liste maintenue par l'agence am\u00e9ricaine CISA, recensant les vuln\u00e9rabilit\u00e9s activement exploit\u00e9es par des attaquants dans des conditions r\u00e9elles.\"}},{\"@type\":\"Question\",\"name\":\"Que signifie activement exploit\u00e9e ?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Cela signifie que des attaquants utilisent d\u00e9j\u00e0 cette vuln\u00e9rabilit\u00e9 pour compromettre des syst\u00e8mes, \u00e0 la diff\u00e9rence d'une faille th\u00e9orique seulement d\u00e9montr\u00e9e en laboratoire ou en recherche.\"}},{\"@type\":\"Question\",\"name\":\"Ce catalogue est-il sp\u00e9cifique \u00e0 la France ?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Non, contrairement aux autres pages de Stroople Signal, ce catalogue est mondial. Les vuln\u00e9rabilit\u00e9s touchent des logiciels utilis\u00e9s partout, sans fronti\u00e8re.\"}},{\"@type\":\"Question\",\"name\":\"Que signifie le badge li\u00e9 \u00e0 un ransomware ?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Il indique que la vuln\u00e9rabilit\u00e9 a \u00e9t\u00e9 associ\u00e9e \u00e0 des campagnes de ransomware connues, ce qui augmente g\u00e9n\u00e9ralement la priorit\u00e9 de son correctif.\"}},{\"@type\":\"Question\",\"name\":\"O\u00f9 trouver le catalogue KEV officiel complet ?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Le catalogue complet, \u00e0 jour et faisant foi, est publi\u00e9 directement sur le site officiel de la CISA.\"}}]}<\/script>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t<div class=\"elementor-element elementor-element-cbae25a e-flex e-con-boxed syd-sticky-section-no e-con e-parent\" data-id=\"cbae25a\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;_ha_eqh_enable&quot;:false}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-b36088b syd-sticky-section-no elementor-widget elementor-widget-html\" data-id=\"b36088b\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<div id=\"ss-lang-switch\" style=\"position:fixed;bottom:80px;right:24px;z-index:9999;display:flex;gap:6px\"><\/div>\n<script>\n(function(){\n  var isFrench = window.location.pathname.indexOf('\/fr\/') !== -1;\n  var active = {background:'#09025F', color:'#fff'};\n  var inactive = {background:'#f1efe8', color:'#5f5e5a'};\n\n  var wrap = document.getElementById('ss-lang-switch');\n  if(!wrap) return;\n\n  function makeLink(url, label, isActive){\n    var a = document.createElement('a');\n    a.href = url;\n    a.textContent = label;\n    a.style.fontSize = '11px';\n    a.style.fontWeight = '500';\n    a.style.padding = '6px 12px';\n    a.style.borderRadius = '6px';\n    a.style.textDecoration = 'none';\n    a.style.fontFamily = '-apple-system,sans-serif';\n    a.style.background = isActive ? active.background : inactive.background;\n    a.style.color = isActive ? active.color : inactive.color;\n    return a;\n  }\n\n  var enUrl = 'https:\/\/www.stroople.com\/signal-third-parties\/';\n  var frUrl = 'https:\/\/www.stroople.com\/fr\/signal-third-parties\/';\n\n  wrap.appendChild(makeLink(enUrl, '\\u{1F1EC}\\u{1F1E7} EN', !isFrench));\n  wrap.appendChild(makeLink(frUrl, '\\u{1F1EB}\\u{1F1F7} FR', isFrench));\n})();\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Third Parties \u2014 Supplier Risk Check About the data Stroople \u2630 Menu Signal Monitoring Ransomware Vulnerabilities Data Breaches CNIL Sanctions Phishing Malware [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":28148,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"elementor_canvas","meta":{"footnotes":""},"class_list":["post-30625","page","type-page","status-publish","has-post-thumbnail","hentry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.7 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Third Party Risk Check: Cyber, Legal, Certifications - Stroople<\/title>\n<meta name=\"description\" content=\"Check your suppliers : public exposure, legal status, insolvency filings and published certifications. Free, no sign-up.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.stroople.com\/fr\/signaler-des-tiers\/\" \/>\n<meta property=\"og:locale\" content=\"fr_FR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Third Party Risk Check: Cyber, Legal, Certifications - Stroople\" \/>\n<meta property=\"og:description\" content=\"Check your suppliers : public exposure, legal status, insolvency filings and published certifications. Free, no sign-up.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.stroople.com\/fr\/signaler-des-tiers\/\" \/>\n<meta property=\"og:site_name\" content=\"Stroople\" \/>\n<meta property=\"article:modified_time\" content=\"2026-09-20T15:28:10+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.stroople.com\/wp-content\/uploads\/2026\/06\/stroople-signal-cyber-threat-intelligence-france.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"640\" \/>\n\t<meta property=\"og:image:height\" content=\"360\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:site\" content=\"@Stroople1\" \/>\n<meta name=\"twitter:label1\" content=\"Dur\u00e9e de lecture estim\u00e9e\" \/>\n\t<meta name=\"twitter:data1\" content=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.stroople.com\\\/signal-third-parties\\\/\",\"url\":\"https:\\\/\\\/www.stroople.com\\\/signal-third-parties\\\/\",\"name\":\"Third Party Risk Check: Cyber, Legal, Certifications - Stroople\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.stroople.com\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.stroople.com\\\/signal-third-parties\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.stroople.com\\\/signal-third-parties\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.stroople.com\\\/wp-content\\\/uploads\\\/2026\\\/06\\\/stroople-signal-cyber-threat-intelligence-france.jpg\",\"datePublished\":\"2026-09-17T13:39:56+00:00\",\"dateModified\":\"2026-09-20T15:28:10+00:00\",\"description\":\"Check your suppliers : public exposure, legal status, insolvency filings and published certifications. Free, no sign-up.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.stroople.com\\\/signal-third-parties\\\/#breadcrumb\"},\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.stroople.com\\\/signal-third-parties\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\\\/\\\/www.stroople.com\\\/signal-third-parties\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.stroople.com\\\/wp-content\\\/uploads\\\/2026\\\/06\\\/stroople-signal-cyber-threat-intelligence-france.jpg\",\"contentUrl\":\"https:\\\/\\\/www.stroople.com\\\/wp-content\\\/uploads\\\/2026\\\/06\\\/stroople-signal-cyber-threat-intelligence-france.jpg\",\"width\":640,\"height\":360,\"caption\":\"Stroople Signal \u2014 France cyber threat intelligence live dashboard\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.stroople.com\\\/signal-third-parties\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Accueil\",\"item\":\"https:\\\/\\\/www.stroople.com\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Third Party Risk Check: Cyber, Legal, Certifications\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.stroople.com\\\/#website\",\"url\":\"https:\\\/\\\/www.stroople.com\\\/\",\"name\":\"Stroople\",\"description\":\"Cybersecurity Expertise\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.stroople.com\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.stroople.com\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"fr-FR\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.stroople.com\\\/#organization\",\"name\":\"Stroople Cybersecurity\",\"alternateName\":\"Stroople\",\"url\":\"https:\\\/\\\/www.stroople.com\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\\\/\\\/www.stroople.com\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/www.stroople.com\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/Logo-Stroople-responsive.png\",\"contentUrl\":\"https:\\\/\\\/www.stroople.com\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/Logo-Stroople-responsive.png\",\"width\":1000,\"height\":1000,\"caption\":\"Stroople Cybersecurity\"},\"image\":{\"@id\":\"https:\\\/\\\/www.stroople.com\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/x.com\\\/Stroople1\",\"https:\\\/\\\/www.linkedin.com\\\/company\\\/stroople\\\/\",\"https:\\\/\\\/www.youtube.com\\\/channel\\\/UC_kTnaswN04kjIrHU0Pi_qg\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Contr\u00f4le des risques tiers : Cyber, Juridique, Certifications - Stroople","description":"V\u00e9rifiez vos fournisseurs : exposition publique, statut juridique, proc\u00e9dures d'insolvabilit\u00e9 et certifications publi\u00e9es. Gratuit, sans inscription.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.stroople.com\/fr\/signaler-des-tiers\/","og_locale":"fr_FR","og_type":"article","og_title":"Third Party Risk Check: Cyber, Legal, Certifications - Stroople","og_description":"Check your suppliers : public exposure, legal status, insolvency filings and published certifications. Free, no sign-up.","og_url":"https:\/\/www.stroople.com\/fr\/signaler-des-tiers\/","og_site_name":"Stroople","article_modified_time":"2026-09-20T15:28:10+00:00","og_image":[{"width":640,"height":360,"url":"https:\/\/www.stroople.com\/wp-content\/uploads\/2026\/06\/stroople-signal-cyber-threat-intelligence-france.jpg","type":"image\/jpeg"}],"twitter_card":"summary_large_image","twitter_site":"@Stroople1","twitter_misc":{"Dur\u00e9e de lecture estim\u00e9e":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.stroople.com\/signal-third-parties\/","url":"https:\/\/www.stroople.com\/signal-third-parties\/","name":"Contr\u00f4le des risques tiers : Cyber, Juridique, Certifications - Stroople","isPartOf":{"@id":"https:\/\/www.stroople.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.stroople.com\/signal-third-parties\/#primaryimage"},"image":{"@id":"https:\/\/www.stroople.com\/signal-third-parties\/#primaryimage"},"thumbnailUrl":"https:\/\/www.stroople.com\/wp-content\/uploads\/2026\/06\/stroople-signal-cyber-threat-intelligence-france.jpg","datePublished":"2026-09-17T13:39:56+00:00","dateModified":"2026-09-20T15:28:10+00:00","description":"V\u00e9rifiez vos fournisseurs : exposition publique, statut juridique, proc\u00e9dures d'insolvabilit\u00e9 et certifications publi\u00e9es. Gratuit, sans inscription.","breadcrumb":{"@id":"https:\/\/www.stroople.com\/signal-third-parties\/#breadcrumb"},"inLanguage":"fr-FR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.stroople.com\/signal-third-parties\/"]}]},{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/www.stroople.com\/signal-third-parties\/#primaryimage","url":"https:\/\/www.stroople.com\/wp-content\/uploads\/2026\/06\/stroople-signal-cyber-threat-intelligence-france.jpg","contentUrl":"https:\/\/www.stroople.com\/wp-content\/uploads\/2026\/06\/stroople-signal-cyber-threat-intelligence-france.jpg","width":640,"height":360,"caption":"Stroople Signal \u2014 France cyber threat intelligence live dashboard"},{"@type":"BreadcrumbList","@id":"https:\/\/www.stroople.com\/signal-third-parties\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Accueil","item":"https:\/\/www.stroople.com\/"},{"@type":"ListItem","position":2,"name":"Third Party Risk Check: Cyber, Legal, Certifications"}]},{"@type":"WebSite","@id":"https:\/\/www.stroople.com\/#website","url":"https:\/\/www.stroople.com\/","name":"Stroople","description":"Expertise en cybers\u00e9curit\u00e9","publisher":{"@id":"https:\/\/www.stroople.com\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.stroople.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"fr-FR"},{"@type":"Organization","@id":"https:\/\/www.stroople.com\/#organization","name":"Stroople Cybers\u00e9curit\u00e9","alternateName":"Stroople","url":"https:\/\/www.stroople.com\/","logo":{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/www.stroople.com\/#\/schema\/logo\/image\/","url":"https:\/\/www.stroople.com\/wp-content\/uploads\/2026\/05\/Logo-Stroople-responsive.png","contentUrl":"https:\/\/www.stroople.com\/wp-content\/uploads\/2026\/05\/Logo-Stroople-responsive.png","width":1000,"height":1000,"caption":"Stroople Cybersecurity"},"image":{"@id":"https:\/\/www.stroople.com\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/x.com\/Stroople1","https:\/\/www.linkedin.com\/company\/stroople\/","https:\/\/www.youtube.com\/channel\/UC_kTnaswN04kjIrHU0Pi_qg"]}]}},"_links":{"self":[{"href":"https:\/\/www.stroople.com\/fr\/wp-json\/wp\/v2\/pages\/30625","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.stroople.com\/fr\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.stroople.com\/fr\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.stroople.com\/fr\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.stroople.com\/fr\/wp-json\/wp\/v2\/comments?post=30625"}],"version-history":[{"count":37,"href":"https:\/\/www.stroople.com\/fr\/wp-json\/wp\/v2\/pages\/30625\/revisions"}],"predecessor-version":[{"id":30785,"href":"https:\/\/www.stroople.com\/fr\/wp-json\/wp\/v2\/pages\/30625\/revisions\/30785"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.stroople.com\/fr\/wp-json\/wp\/v2\/media\/28148"}],"wp:attachment":[{"href":"https:\/\/www.stroople.com\/fr\/wp-json\/wp\/v2\/media?parent=30625"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}