<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>Excel-fil sikkerhed on File Format Blog</title>
    <link>https://blog.fileformat.com/da/tag/excel-fil-sikkerhed/</link>
    <description>Recent content in Excel-fil sikkerhed on File Format Blog</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>da</language>
    <lastBuildDate>Mon, 28 Sep 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://blog.fileformat.com/da/tag/excel-fil-sikkerhed/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Excel-fil sikkerhed forklaret: XLSX, XLSM og makro-risici</title>
      <link>https://blog.fileformat.com/da/spreadsheet/excel-file-security-explained-xlsx-xlsm-and-macro-risks/</link>
      <pubDate>Mon, 28 Sep 2026 00:00:00 +0000</pubDate>
      
      <guid>https://blog.fileformat.com/da/spreadsheet/excel-file-security-explained-xlsx-xlsm-and-macro-risks/</guid>
      <description>Forstå de reelle sikkerhedsforskelle mellem XLSX- og XLSM-filer, hvordan makro-baserede angreb udføres, og hvordan du beskytter din organisation mod ondsindede regneark.</description>
      <content:encoded><![CDATA[<p><strong>Sidst opdateret</strong>: 28 Sept, 2026</p>
<figure class="align-center ">
    <img loading="lazy" src="images/excel-file-security-explained-xlsx-xlsm-and-macro-risks.png#center"
         alt="XLSX vs. XLSM Security: How Spreadsheet Macros Expose Your Network"/> 
</figure>

<h2 id="excel-fil-sikkerhed-forklaret-xlsx-xlsm-og-makro-risici">Excel-fil sikkerhed forklaret: XLSX, XLSM og makro-risici</h2>
<p>I årtier har Microsoft Excel stået som den universelle motor for forretningsdrift. Den balancerer virksomheders budgetter, visualiserer komplekse datasæt, sporer lagerbeholdning og driver analytiske pipelines på tværs af næsten alle brancher.</p>
<p>Alligevel gør netop denne beregningsmæssige fleksibilitet regneark til en vedvarende favorit blandt cybermodstandere. Angribere har udnyttet regneark siden de tidlige dage med makroviruser i slutningen af 1990&rsquo;erne. Mens Microsoft og systemadministratorer har indført flere lag af forsvar — såsom filformatsegregering og standardblokerering af makroer — fortsætter social engineering og subtile arkitektoniske risici med at holde Excel‑fokuserede angreb relevante.</p>
<p>For at opbygge en robust sikkerhedsposition skal udviklere, administratorer og power‑brugere kigge under workbook‑grænsefladen. At forstå, hvordan det underliggende OpenXML‑format fungerer, hvordan <code>.xlsx</code> og <code>.xlsm</code> adskiller sig på et arkitektonisk niveau, og hvordan makro‑eksekveringsmekanikken virker, er afgørende for at forsvare moderne slutpunkter.</p>
<h2 id="1-anatomi-af-moderne-excel-filer-openxml-dekonstrueret">1. Anatomi af moderne Excel-filer: OpenXML dekonstrueret</h2>
<p>Før udgivelsen af Microsoft Office 2007 gemte Excel primært filer i proprietære binære formater, mest bemærkelsesværdigt <code>.xls</code>‑formatet (styret af Binary Interchange File Format, eller BIFF8). I <code>.xls</code>‑filer blev dataregistre, formateringsdefinitioner, formler og Visual Basic for Applications (VBA)‑makrostrømme pakket ind i en enkelt struktureret lagringscontainer. Dette gjorde programmatisk inspektion vanskelig og tillod angribere at skjule ondsindede payload‑scripts inde i uigennemsigtige binære sektorer.</p>
<p>Fra og med Excel 2007 introducerede Microsoft <strong>Office Open XML (OOXML)</strong>‑standarden (standardiseret som ECMA-376 og ISO/IEC 29500). Under OOXML er Excel‑arbejdsbøger ikke længere monolitiske binære klumper. I stedet er de zip‑arkiver, der indeholder en hierarkisk struktur af XML‑dokumenter, relations‑tabeller og indlejrede medie‑ressourcer.</p>
<h3 id="inde-i-zip-beholderen">Inde i ZIP-beholderen</h3>
<p>Hvis du tager en hvilken som helst standard moderne Excel-arbejdsbog og omdøber dens filtype til <code>.zip</code>, kan du udtrække dens indhold med ethvert standard dekomprimeringsværktøj:</p>
<pre tabindex="0"><code>my_workbook.xlsx (extracted)
│
├── [Content_Types].xml        &lt;-- Registry of MIME types and structural parts
├── _rels/                     &lt;-- Package-level relationship mappings
│   └── .rels
├── docProps/                  &lt;-- Metadata (author, creation date, revision)
│   ├── app.xml
│   └── core.xml
└── xl/                        &lt;-- Core spreadsheet contents
    ├── workbook.xml           &lt;-- Workbook-level parameters and sheet list
    ├── styles.xml             &lt;-- Cell styles, fonts, and borders
    ├── sharedStrings.xml      &lt;-- Unique string index for performance optimization
    ├── _rels/
    │   └── workbook.xml.rels  &lt;-- Sheet and component dependencies
    └── worksheets/
        ├── sheet1.xml         &lt;-- Raw cell values, formulas, and grid geometry
        └── sheet2.xml
</code></pre><p>Denne strukturelle ændring gav umiddelbare sikkerhedsfordele:</p>
<ol>
<li><strong>DPI (Deep Packet Inspection) &amp; Gateway-synlighed:</strong> Sikkerhedsapparater, proxyer og slutpunktagenter kan pakke arkivet ud i realtid og parse klartekst-XML-træer for at identificere mistænkelige strenge, eksterne URL&rsquo;er eller indlejrede objekter.</li>
<li><strong>Deterministisk filvalidering:</strong> Hvis en fil hævder at være et OpenXML-dokument, men overtræder schemas begrænsninger, nægter Excel at åbne den eller kører den i en sandkasse-baseret gendannelsestilstand.</li>
<li><strong>Formatadskillelse:</strong> Microsoft adskilte almindelige beregningsregneark fra filer, der kan udføre indlejrede proceduremæssige scripts.</li>
</ol>
<h2 id="2-xlsx1-vs-xlsm7-den-arkitektoniske-grænse">2. <a href="https://docs.fileformat.com/spreadsheet/xlsx/">XLSX</a> vs. <a href="https://docs.fileformat.com/spreadsheet/xlsm/">XLSM</a>: Den arkitektoniske grænse</h2>
<p>Den primære forskel mellem <code>.xlsx</code> og <code>.xlsm</code> ligger i, om filstrukturen tillader inkludering af eksekverbare makroprojekter.</p>
<table>
<thead>
<tr>
<th style="text-align:left">Funktion / Dimension</th>
<th style="text-align:left"><code>.xlsx</code> (Excel OpenXML-regneark)</th>
<th style="text-align:left"><code>.xlsm</code> (Excel Makro-aktiveret regneark)</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align:left"><strong>MIME-indholdstype</strong></td>
<td style="text-align:left"><code>application/vnd.openxmlformats-officedocument.spreadsheetml.sheet</code></td>
<td style="text-align:left"><code>application/vnd.ms-excel.sheet.macroEnabled.12</code></td>
</tr>
<tr>
<td style="text-align:left"><strong>VBA-lagringscontainer</strong></td>
<td style="text-align:left"><strong>Strengt forbudt.</strong> Kan ikke gemme <code>vbaProject.bin</code></td>
<td style="text-align:left"><strong>Tilladt.</strong> Indeholder <code>xl/vbaProject.bin</code></td>
</tr>
<tr>
<td style="text-align:left"><strong>Risiko for indfødt udførelse</strong></td>
<td style="text-align:left">Ubetydelig for makroeksekvering; begrænset til formelindsprøjtning/DDE</td>
<td style="text-align:left">Høj; kan køre automatiseret VBA-kode ved arbejdsbogsinteraktion</td>
</tr>
<tr>
<td style="text-align:left"><strong>OpenXML Strengt Skema</strong></td>
<td style="text-align:left">Overholder strenge, makrofri XML-definitioner</td>
<td style="text-align:left">Omfatter definitioner for ældre og moderne automatiseringsudvidelser</td>
</tr>
<tr>
<td style="text-align:left"><strong>Bruger Visuel Indikator</strong></td>
<td style="text-align:left">Standard grøn regnearksikon</td>
<td style="text-align:left">Regnearksikon med et udråbstegn</td>
</tr>
</tbody>
</table>
<h3 id="gennemførelsesmekanismen-hvorfor-xlsx-ikke-kan-køre-makroer">Gennemførelsesmekanismen: Hvorfor XLSX ikke kan køre makroer</h3>
<p>Et almindeligt spørgsmål blandt junioradministratorer og udviklere er: <em>Hvad sker der, hvis en angriber tager en ondsindet <code>.xlsm</code>-fil, injicerer eksekverbar kode og omdøber filens udvidelse til <code>.xlsx</code>?</em></p>
<p>Det korte svar: <strong>Filen vil ikke udføre makroen.</strong></p>
<p>Excel er ikke udelukkende afhængig af filudvidelsen for at bestemme eksekveringsregler. Når du åbner en fil med navnet <code>.xlsx</code>:</p>
<ol>
<li>Excel inspicerer zip-indholdet og refererer til <code>[Content_Types].xml</code>.</li>
<li>I en ægte <code>.xlsx</code>-fil repræsenterer alle definerede indholdstyper standarddataelementer (såsom <code>worksheet</code>, <code>sharedStrings</code> eller <code>styles</code>).</li>
<li>Hvis en angriber manuelt injicerer en kompileret VBA-strøm (<code>xl/vbaProject.bin</code>) i en <code>.xlsx</code>-pakke og opdaterer relationerne, støder Excel på en eksplicit schema-modstrid:
<ul>
<li>Den ser en <code>.xlsx</code>-udvidelse bundet til indholdstyper, der indikerer makro‑funktionalitet.</li>
<li>Excel kaster en fatal integritetsfejl: <em>&quot;Excel kan ikke åbne filen &lsquo;filename.xlsx&rsquo;, fordi filformatet eller filudvidelsen ikke er gyldig. Bekræft at filen ikke er beskadiget&hellip;&quot;</em></li>
</ul>
</li>
<li>Hvis angriberen lader de interne typer være intakte uden at registrere den binære fil, behandler Excel <code>vbaProject.bin</code> som en urefereret, forældreløs vedhæftning i zip-arkivet og kasserer den fuldstændigt under indlæsningscyklussen.</li>
</ol>
<p>Følgelig kan <strong>en fil, der udelukkende fungerer som en ægte <code>.xlsx</code>-container, ikke køre indbygget VBA-kode.</strong> Det betyder dog ikke, at <code>.xlsx</code>-filer er fri for alle angrebsvektorer, som udforskes senere i denne vejledning.</p>
<h2 id="3-makro-risici--angrebslivscyklussen">3. Makro-risici &amp; Angrebslivscyklussen</h2>
<p>Makroer blev designet til at automatisere gentagne regnskabs-, finansmodel- og datamanipulationsopgaver via Visual Basic for Applications (VBA). Da VBA blev bygget til automatisering på arbejdspladsen, fik den omfattende adgang til det underliggende Windows-operativsystem gennem Component Object Model (COM), Windows Script Host (WSH) og direkte Win32 API‑kald.</p>
<p>Når en ikke‑betroet makro udføres, kører den med de <strong>præcis samme rettigheder som den loggede bruger</strong>. Den er ikke fanget i en virtualiseret JavaScript‑lignende browsersandkasse.</p>
<pre tabindex="0"><code>+--------------------------------------------------------------------------------+
|                             ATTACK LIFECYCLE                                   |
+--------------------------------------------------------------------------------+
                                       │
                                       ▼
  [ Delivery &amp; Evasion ]  ──────► Spear-phishing email with .xlsm, .xlam, or .zip.
                                       │
                                       ▼
  [ Social Engineering ]  ──────► Lures victim to bypass Protected View (&#34;Enable Content&#34;).
                                       │
                                       ▼
  [ Auto-Execution ]      ──────► Auto_Open() or Workbook_Open() triggers automatically.
                                       │
                                       ▼
  [ System Invocation ]   ──────► VBA creates COM objects (WScript.Shell, WinHttp.WinHttpRequest).
                                       │
                                       ▼
  [ Payload Retrieval ]   ──────► Spawns hidden PowerShell/cURL to fetch staging binary.
                                       │
                                       ▼
  [ Post-Exploitation ]   ──────► In-memory execution, credential theft, lateral movement.
</code></pre><h3 id="almindelige-makro-indtrængningsteknikker">Almindelige makro-indtrængningsteknikker</h3>
<ol>
<li>
<p><strong>Auto‑eksekverings‑hooks:</strong>
Angribere placerer deres indgangspunkt i indbyggede hændelsesbehandlere såsom <code>Sub Auto_Open()</code> eller <code>Private Sub Workbook_Open()</code>. Så snart brugeren giver eksekveringsrettigheder, udløses disse rutiner uden at kræve nogen klik i regnearket.</p>
</li>
<li>
<p><strong>Obfuskering og Stomping:</strong></p>
<ul>
<li><strong>Strengobfuskering:</strong> Payloads skjuler URL&rsquo;er og systemkald ved hjælp af tegnarrays, XOR-kodning, Base64-dekodning eller sammenkædning af miljøvariabler (f.eks. <code>Chr(112) &amp; Chr(111) &amp; Chr(119)...</code>).</li>
<li><strong>VBA Stomping:</strong> VBA findes i to former i <code>vbaProject.bin</code>: fortolket kildekode og kompileret p-code (pseudo-kode målrettet den specifikke Office-version, der kompilerede den). Angribere kan slette den klare kildekode fuldstændigt og kun efterlade den kompilerede p-code. Mange grundlæggende antivirusløsninger og statiske analyser værktøjer inspicerer kun kilde‑strømmen, så p-code forbliver uopdaget indtil den eksekveres af en matchende Office-version.</li>
</ul>
</li>
<li>
<p><strong>Living off the Land (LotL):</strong>
Moderne ondsindede makroer dropper sjældent en <code>.exe</code>-fil direkte til disken, hvilket straks ville advare Endpoint Detection and Response (EDR)-agenter. I stedet interagerer de med indbyggede systemværktøjer:</p>
<ul>
<li>Instantiere <code>WScript.Shell</code> for at udføre kommandolinjeargumenter.</li>
<li>Kald af <code>PowerShell.exe</code> med eksekveringspolitikken omgået (<code>-ExecutionPolicy Bypass -WindowStyle Hidden</code>).</li>
<li>Kalder native Win32 API&rsquo;er gennem <code>Declare PtrSafe Function CreateProcess</code> eller <code>VirtualAlloc</code> for at injicere shellcode direkte i systemhukommelsen.</li>
</ul>
</li>
</ol>
<h2 id="4-andre-trusselsvektorer-for-regneark-udover-standard-vba">4. Andre trusselsvektorer for regneark (Udover standard VBA)</h2>
<p>At sikre et miljø mod <code>.xlsm</code>-filer er kun halvdelen af kampen. Modstandere bruger også mekanismer, der fungerer uafhængigt af traditionel VBA.</p>
<h3 id="dynamisk-dataudveksling-dde-og-csv11-injektion">Dynamisk dataudveksling (DDE) og <a href="https://docs.fileformat.com/spreadsheet/csv/">CSV</a> injektion</h3>
<p>Excel har en ældre protokol kaldet Dynamic Data Exchange (DDE), designet til at muliggøre datadeling mellem kørende programmer (for eksempel at streame live aktiekurser fra et separat program ind i en Excel-celle).</p>
<ul>
<li><strong>Hvordan formelinjektion fungerer:</strong>
Når en regnearkscelle begynder med tegn som <code>=</code>, <code>@</code>, <code>+</code> eller <code>-</code>, fortolker Excel indholdet som en formel. Hvis en angriber kontrollerer input, der eksporteres til et regneark (såsom et usanitiseret &ldquo;Comments&rdquo;-felt i en webapplikation, der eksporteres til CSV eller XLSX), kan de injicere:
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-text" data-lang="text"><span style="display:flex;"><span>=cmd|&#39;/C powershell.exe -w hidden -enc &lt;base64_payload&gt;&#39;!A0
</span></span></code></pre></div></li>
<li>Når den åbnes, evaluerer Excel formlen, advarer brugeren med en prompt om at starte et eksternt program, og hvis den godkendes, kører den systemskallen.</li>
</ul>
<h3 id="excel-40-xlm-ældre-makroer">Excel 4.0 (XLM) ældre makroer</h3>
<p>Før VBA blev introduceret i 1993, brugte Excel et formelbaseret makrosystem kendt som <strong>Excel 4.0 (XLM) makroer</strong>. Disse makroer findes i dedikerede makroark i stedet for et separat VBA-projekt.</p>
<p>Fordi XLM-makroer er skrevet som celleformler (såsom <code>=EXEC(&quot;calc.exe&quot;)</code>), omgår de mange standard VBA‑statiskinspektionsmotorer. Angribere foretrak XLM-makroer i slutningen af 2010’erne og begyndelsen af 2020’erne for at undgå automatiseret detektion, før Microsoft deaktiverede dem som standard i moderne virksomheds‑builds.</p>
<h3 id="ondsindede-eksterne-forbindelser-og-ole-objekter">Ondsindede eksterne forbindelser og OLE-objekter</h3>
<p>En almindelig <code>.xlsx</code>-projektmappe kan stadig udgøre en risiko gennem eksterne ressourcer:</p>
<ul>
<li><strong>Indlejrede OLE-pakker:</strong> En angriber kan indsætte en eksekverbar fil maskeret som et indlejret PDF-ikon direkte i regnearket.</li>
<li><strong>Eksterne projektmappe‑links &amp; web‑forespørgsler:</strong> En XLSX kan indeholde eksterne referencer, der automatisk initierer HTTP GET‑anmodninger til angriber‑styrede command-and-control (C2)-servere ved filåbning, primært brugt til rekognoscering eller netNTLM‑hash‑indsamling angreb.</li>
</ul>
<h2 id="5-virksomhedshærdning-og-dybdegående-forsvarsstrategier">5. Virksomhedshærdning og dybdegående forsvarsstrategier</h2>
<p>Forsvar mod Excel‑bårne trusler kræver en lagdelt tilgang, der dækker netværksinspektion, systemkonfiguration, adgangskontroller og operationelle processer.</p>
<pre tabindex="0"><code>+─────────────────────────────────────────────────────────+
|                  ENTERPRISE DEFENSE LAYERS               |
+─────────────────────────────────────────────────────────+
|  PERIMETER: Drop inbound .xlsm, .xla, and .xltm at mail |
|  gateway unless cryptographically signed or exempted.   |
+---------------------------------------------------------+
|  IDENTITY &amp; POLICY: Enforce ASR rules and apply         |
|  Mark of the Web (MotW) macro execution blocks.         |
+---------------------------------------------------------+
|  RUNTIME: Hook AMSI into Office to evaluate dynamic     |
|  VBA buffers directly before execution.                 |
+---------------------------------------------------------+
|  STORAGE: Restrict macro execution exclusively to       |
|  managed, centralized Trusted Locations.                |
+─────────────────────────────────────────────────────────+
</code></pre><h3 id="1-gennemtving-mark-of-the-web-motw-makroblokkering">1. Gennemtving Mark of the Web (MotW) makroblokkering</h3>
<p>I 2022 opdaterede Microsoft standardadfærden for Office-programmer: makroer i filer, der stammer fra internettet, er <strong>blokeret som standard</strong>.</p>
<p>Når en bruger downloader en fil via en browser eller ekstern klient, mærker Windows filen med en alternativ datastrøm (ADS) kaldet <code>Zone.Identifier</code> (Zone 3 angiver internettet). For filer med dette mærke deaktiverer Excel makroer fuldstændigt og viser et rødt sikkerhedsbanner: &gt; <em>&ldquo;SIKKERHEDS RISIKO: Microsoft har blokeret makroer fra at køre, fordi kilden til denne fil er upålidelig.&rdquo;</em></p>
<p><strong>Administrativ handling:</strong> Sørg for, at denne adfærd håndhæves via gruppepolitik og ikke kan tilsidesættes af slutbrugere:</p>
<ul>
<li><strong>GPO-sti:</strong> <code>User Configuration &gt; Administrative Templates &gt; Microsoft Excel 2016 &gt; Excel Options &gt; Security &gt; Trust Center</code></li>
<li><strong>Indstilling:</strong> Aktiver <em>&ldquo;Blokér makroer fra at køre i Office-filer fra internettet&rdquo;</em>.</li>
</ul>
<h3 id="2-konfigurer-regler-for-reduktion-af-angrebsflade-asr">2. Konfigurer regler for reduktion af angrebsflade (ASR)</h3>
<p>Organisationer, der bruger Microsoft Defender for Endpoint, bør aktivere kerne-regler for reduktion af angrebsflade, som er designet specifikt til Office-programmer:</p>
<ul>
<li><code>Blokér Office-programmer fra at oprette underprocesser</code> (GUID: <code>D4F940AB-401B-4EFC-AADC-AD5F3C50688A</code>)
<ul>
<li><em>Forhindrer Excel i at starte PowerShell, CMD eller script-motorer.</em></li>
</ul>
</li>
<li><code>Blokér Office‑programmer fra at injicere kode i andre processer</code> (GUID: <code>75668C1F-73B5-4CF0-BB93-3ECF5CB7CC84</code>)</li>
<li><code>Blokér Win32 API‑kald fra Office‑makroer</code> (GUID: <code>92E6390C-CF9E-43CE-BD8C-0E6F0FE66680</code>)</li>
</ul>
<h3 id="3-udnyt-antimalware-scan-interface-amsi">3. Udnyt Antimalware Scan Interface (AMSI)</h3>
<p>Moderne versioner af Microsoft 365 integrerer VBA‑eksekvering direkte med AMSI. Selv hvis en angriber anvender kompleks strengobfuskering eller VBA‑stomping, sender VBA‑runtime‑motoren de rekonstruerede, ukrypterede kommandoer til din installerede antivirus/EDR‑motor på nøjagtigt det millisekund før udførelse. Sørg for, at din endpoint‑beskyttelse aktivt overvåger AMSI‑runtime‑begivenheder.</p>
<h3 id="4-overgå-til-betroede-placeringer-og-digitale-certifikater">4. Overgå til betroede placeringer og digitale certifikater</h3>
<p>For organisationer, der er afhængige af automatiserede regneark til den daglige drift:</p>
<ul>
<li><strong>Eliminer løse XLSM‑filer i brugernes Download‑ eller skrivebordsmapper.</strong></li>
<li><strong>Brug betroede placeringer:</strong> Begræns makroeksekvering udelukkende til skrivebeskyttede netværksdelinger, der administreres af IT‑administratorer.</li>
<li><strong>Kodeunderskrift:</strong> Påkræv, at alle internt udviklede makroer kryptografisk signeres med et certifikat udstedt af virksomhedens Public Key Infrastructure (PKI). Konfigurer Excel til <strong>kun</strong> at køre digitalt signerede makroer og stiltiende blokere usignerede.</li>
</ul>
<h2 id="6-udviklerens-perspektiv-byg-sikker-automatisering">6. Udviklerens perspektiv: Byg sikker automatisering</h2>
<p>Hvis du bygger software, der parser, genererer eller bruger Excel-filer (f.eks. Python-pipelines ved brug af <code>pandas</code>/<code>openpyxl</code>, Node.js-mikrotjenester eller C#/.NET-applikationer), skal du anvende disse udviklingssikringer:</p>
<ol>
<li>
<p><strong>Afvis uventede filformater ved upload-grænsen:</strong>
Hvis din applikation forventer finansrapporter, skal du strengt validere, at indkommende filer overholder <code>.xlsx</code>. Undersøg de interne magiske bytes (standard zip‑header <code>50 4B 03 04</code>) og bekræft, at der ikke findes <code>vbaProject.bin</code>-poster i arkivindekset, før du gemmer dem i cloud‑spande eller databaser.</p>
</li>
<li>
<p><strong>Rens data mod formel‑injektion:</strong>
Når du eksporterer bruger‑genereret input til CSV‑ eller XLSX‑filer, skal du foranstille et apostrof (<code>'</code>) eller et mellemrum til enhver celle, der begynder med farlige tegn (<code>=</code>, <code>+</code>, <code>-</code>, <code>@</code>, <code>\t</code>, <code>\r</code>):</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-python" data-lang="python"><span style="display:flex;"><span><span style="color:#66d9ef">def</span> <span style="color:#a6e22e">sanitize_for_spreadsheet</span>(value: str) <span style="color:#f92672">-&gt;</span> str:
</span></span><span style="display:flex;"><span>    <span style="color:#66d9ef">if</span> value <span style="color:#f92672">and</span> value[<span style="color:#ae81ff">0</span>] <span style="color:#f92672">in</span> (<span style="color:#e6db74">&#39;=&#39;</span>, <span style="color:#e6db74">&#39;+&#39;</span>, <span style="color:#e6db74">&#39;-&#39;</span>, <span style="color:#e6db74">&#39;@&#39;</span>, <span style="color:#e6db74">&#39;</span><span style="color:#ae81ff">\t</span><span style="color:#e6db74">&#39;</span>, <span style="color:#e6db74">&#39;</span><span style="color:#ae81ff">\r</span><span style="color:#e6db74">&#39;</span>):
</span></span><span style="display:flex;"><span>        <span style="color:#66d9ef">return</span> <span style="color:#e6db74">f</span><span style="color:#e6db74">&#34;&#39;</span><span style="color:#e6db74">{</span>value<span style="color:#e6db74">}</span><span style="color:#e6db74">&#34;</span>
</span></span><span style="display:flex;"><span>    <span style="color:#66d9ef">return</span> value
</span></span></code></pre></div></li>
<li>
<p><strong>Migrer fra VBA til Office Scripts eller web‑add‑ins:</strong>
For moderne virksomhedsautomatisering skal du fjerne den ældre VBA fuldstændigt:</p>
<ul>
<li><strong>Office Scripts:</strong> Skrrevet i TypeScript kører Office Scripts i et sandbox‑cloud‑miljø og fungerer problemfrit på både web‑ og desktop‑udgaver uden at eksponere native OS‑systemkald.</li>
<li><strong>Office Web Add-ins:</strong> Bygget ved hjælp af standard HTML, CSS og moderne JavaScript, kommunikerer web‑add‑ins via styrede JavaScript‑API’er og er isoleret fra det lokale operativsystem.</li>
</ul>
</li>
</ol>
<h2 id="7-opsummerings-tjekliste-for-regnearks-sikkerhed">7. Opsummerings-tjekliste for regnearks-sikkerhed</h2>
<ul>
<li><input disabled="" type="checkbox"> <strong>Gennemtving <code>.xlsx</code> som standard:</strong> Kræv, at alle standard brugerarbejdsgange gemmes som makrofri <code>.xlsx</code>.</li>
<li><input disabled="" type="checkbox"> <strong>Blokér makroer fra internettet:</strong> Bekræft, at MotW‑politikken er implementeret i hele organisationen via GPO eller Intune.</li>
<li><input disabled="" type="checkbox"> <strong>Aktivér ASR‑regler:</strong> Forbyd Office‑produkter at starte kommandofortolkere eller underprocesser.</li>
<li><input disabled="" type="checkbox"> <strong>Fas ned Excel 4.0 (XLM):</strong> Sørg for, at ældre XLM‑makro‑motorer er permanent deaktiveret på alle arbejdsstationer.</li>
<li><input disabled="" type="checkbox"> <strong>Sanitér applikations‑eksport:</strong> Beskyt CSV‑ og Excel‑genereringsrutiner mod CSV/formel‑injektion.</li>
<li><input disabled="" type="checkbox"> <strong>Skift mod Office Scripts:</strong> Overfør ældre administrative makroer til TypeScript‑baserede Office Scripts og styrede API’er.</li>
</ul>
<p>Ved at betragte regneark ikke blot som dokumentfiler, men som strukturerede software‑containere med eksekveringsmuligheder, kan sikkerhedsteams og udviklere effektivt neutralisere en af de ældste angrebsvektorer i virksomhedens IT.</p>
<h1 id="ofte-stillede-spørgsmål-faq">Ofte stillede spørgsmål (FAQ)</h1>
<h3 id="q1-kan-en-fil-der-ender-på-xlsx-køre-en-ondsindet-makro">Q1: Kan en fil, der ender på <code>.xlsx</code>, køre en ondsindet makro?</h3>
<p>Nej, OpenXML-standarden forbyder strikt makrokode i <code>.xlsx</code>-filer, og Excel vil afvise eller fjerne ethvert VBA-projekt, der er indsprøjtet i en ægte <code>.xlsx</code>-container.</p>
<h3 id="q2-hvad-skal-jeg-gøre-hvis-en-excel-fil-beder-mig-om-aktiver-redigering-eller-aktiver-indhold">Q2: Hvad skal jeg gøre, hvis en Excel-fil beder mig om &ldquo;Aktiver redigering&rdquo; eller &ldquo;Aktiver indhold&rdquo;?</h3>
<p>Giv kun tilladelser, hvis du kender afsenderen og forventede filen; denne prompt er det primære kontrolpunkt, der tillader utroværdige makroer at udføre kode.</p>
<h3 id="q3-hvordan-bestemmer-microsoft-excel-om-en-fil-kommer-fra-internettet">Q3: Hvordan bestemmer Microsoft Excel, om en fil kommer fra internettet?</h3>
<p>Windows vedhæfter en skjult &ldquo;Mark of the Web&rdquo; (Zone.Identifier)-strøm til downloadede filer, hvilket signalerer til Excel at åbne dem i Beskyttet visning og som standard blokere makroer.</p>
<h3 id="q4--er-csv-filer-sikrere-end-xlsx1-og-xlsm7-filer">Q4:  Er CSV-filer sikrere end <a href="https://docs.fileformat.com/spreadsheet/xlsx/">XLSX</a> og <a href="https://docs.fileformat.com/spreadsheet/xlsm/">XLSM</a> filer?</h3>
<p>CSV-filer kan ikke indeholde indfødte VBA-makroer, men de er stadig sårbare over for formel‑injektionsangreb, hvis de indeholder ondsindede kommandoer, der udføres af Excel ved åbning.</p>
<h3 id="q5-hvordan-adskiller-moderne-office-scripts-sig-fra-traditionelle-vba-makroer">Q5: Hvordan adskiller moderne Office Scripts sig fra traditionelle VBA-makroer?</h3>
<p>Office Scripts kører på TypeScript inden for et sandkasse‑runtime‑miljø, hvilket forhindrer dem i at få adgang til dit lokale filsystem, kommandolinje eller operativsystem‑API&rsquo;er.</p>
<h2 id="se-også">Se også</h2>
<ul>
<li><a href="https://blog.fileformat.com/en/spreadsheet/csv-vs-xlsx-vs-ods-in-2026-best-spreadsheet-format-for-developers/">CSV vs XLSX vs ODS i 2026: Bedste regnearksformat for udviklere</a></li>
<li><a href="https://blog.fileformat.com/en/spreadsheet/xls-vs-xlsx-vs-xlsm-vs-xlsb-choosing-the-right-spreadsheet-format/">XLS vs XLSX vs XLSM vs XLSB - Vælg det rigtige regnearksformat</a></li>
<li><a href="https://blog.fileformat.com/spreadsheet/what-is-excel/">Hvad er Excel? Nøgleinformation, du skal vide</a></li>
<li><a href="https://blog.fileformat.com/spreadsheet/excel-file-extensions-xlsx-xlsm-xls-xltx-xltm/">Excel-filformater: XLSX, XLSM, XLS, XLTX, XLTM</a></li>
<li><a href="https://blog.fileformat.com/spreadsheet/xls-vs-xlsx/">Forskellen mellem XLS og XLSX</a></li>
</ul>
<!-- raw HTML omitted -->
]]></content:encoded>
    </item>
    
  </channel>
</rss>
