{"id":76707,"date":"2025-11-10T14:32:00","date_gmt":"2025-11-10T14:32:00","guid":{"rendered":"https:\/\/morningtrain.dk\/?p=76707"},"modified":"2026-11-10T14:32:09","modified_gmt":"2026-11-10T14:32:09","slug":"ddos-attack","status":"publish","type":"post","link":"https:\/\/morningtrain.dk\/en\/ddos-attack\/","title":{"rendered":"DDoS attack: what is it, and how do you know if your website is protected enough? Work out your downtime cost and ask your host the right questions"},"content":{"rendered":"<section class=\"mt-blog-post-cover wp-block-mt-blog-post-cover\">\n    <div class=\"mt-blog-post-cover__inner page-container\">\n        <div class=\"mt-blog-post-cover__text-container\">\n                                                <p class=\"mt-blog-post-cover__tagline tagline\">Digitalization<\/p>\n                                                    <p class=\"mt-blog-post-cover__date\">\n                        10. November 2025 <span aria-hidden=\"true\">&middot;<\/span> 7 min                    <\/p>\n                                                        <h1 class=\"mt-blog-post-cover__title\">DDoS attack: what is it, and how do you know if your website is protected enough? Work out your downtime cost and ask your host the right questions<\/h1>\n                    <\/div>\n        <div class=\"wp-block-post-excerpt\"><p class=\"wp-block-post-excerpt__excerpt\">A DDoS attack makes a website slow or unavailable by overloading it with traffic from a botnet. No data is stolen, but the downtime costs you. See how the attack works, get a rough estimate of what downtime costs you, and get the questions to ask your hosting provider. <\/p><\/div><figure class=\"wp-block-post-featured-image\"><img decoding=\"async\" width=\"1248\" height=\"720\" src=\"https:\/\/morningtrain.dk\/wp-content\/uploads\/2026\/11\/ddos-attack-what-is-it-and-how-do-you-know-if-your-website-is-protected-enough.png\" class=\"attachment-post-thumbnail size-post-thumbnail wp-post-image\" alt=\"DDoS attack: what is it, and how do you know if your website is protected enough?\" style=\"object-fit:cover;\" srcset=\"https:\/\/morningtrain.dk\/wp-content\/uploads\/2026\/11\/ddos-attack-what-is-it-and-how-do-you-know-if-your-website-is-protected-enough.png 1248w, https:\/\/morningtrain.dk\/wp-content\/uploads\/2026\/11\/ddos-attack-what-is-it-and-how-do-you-know-if-your-website-is-protected-enough-1024x591.png 1024w, https:\/\/morningtrain.dk\/wp-content\/uploads\/2026\/11\/ddos-attack-what-is-it-and-how-do-you-know-if-your-website-is-protected-enough-768x443.png 768w, https:\/\/morningtrain.dk\/wp-content\/uploads\/2026\/11\/ddos-attack-what-is-it-and-how-do-you-know-if-your-website-is-protected-enough-300x173.png 300w, https:\/\/morningtrain.dk\/wp-content\/uploads\/2026\/11\/ddos-attack-what-is-it-and-how-do-you-know-if-your-website-is-protected-enough-600x346.png 600w\" sizes=\"(max-width: 1248px) 100vw, 1248px\" \/><\/figure>\n    <\/div>\n<\/section>\n<section\n    class=\"mt-blog-post-content mt-blog-post-content--has-table-of-contents mtSpacing-top-none mtSpacing-bottom-medium\"\n>\n    <div class=\"mt-blog-post-content__inner page-container\">\n        <div class=\"mt-blog-post-content__table-of-contents\">\n                                                <p class=\"mt-blog-post-content__table-of-contents-title\">\n                        Indhold\n                    <\/p>\n                                                    <a\n                        href=\"#relevance\"\n                        class=\"mt-blog-post-content__table-of-contents-item\"\n                    >\n                        Why should you worry about DDoS when no data is stolen?\n                    <\/a>\n                                    <a\n                        href=\"#explainer\"\n                        class=\"mt-blog-post-content__table-of-contents-item\"\n                    >\n                        How does a DDoS attack take a website down?\n                    <\/a>\n                                    <a\n                        href=\"#how-to\"\n                        class=\"mt-blog-post-content__table-of-contents-item\"\n                    >\n                        How do you find out if your protection is big enough?\n                    <\/a>\n                                    <a\n                        href=\"#faq\"\n                        class=\"mt-blog-post-content__table-of-contents-item\"\n                    >\n                        What else do people ask about DDoS attacks?\n                    <\/a>\n                                  <\/div>\n        <div class=\"mt-blog-post-content__items\">\n                            \n\n<div class=\"wp-block-mt-blog-post-text-box mt-blog-post-text-box\"><div class=\"mt-blog-post-text-box__inner page-container\"><div class=\"mt-blog-post-text-box__box\">\n<h3 class=\"wp-block-heading\">DDoS attack<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">A DDoS attack is an attempt to make a website, a server or a network service slow or completely unavailable by overloading it with traffic from many infected devices at once.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Also called:<\/strong> Distributed denial of service<\/p>\n<\/div><\/div><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">The target is availability, not data. The attacker does not break in. The attacker makes sure your real visitors cannot get in.<\/p>\n\n\n\n<h2 id=\"relevance\" class=\"wp-block-heading\">Why should you worry about DDoS when no data is stolen?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">A DDoS attack hurts you through downtime: while it lasts, customers cannot buy, log in or find your information. No data is lost, but lost sales, wasted ad spend and annoyed customers are real costs.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Take a Danish online shop that is hit on Black Friday. The site does not respond, and customers cannot pay. No customer data has leaked, and there is nothing to report to the Danish Data Protection Agency. Even so, the most important sales hours of the day are gone.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">DDoS is often confused with other incidents. The difference decides what you need to protect yourself against:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Incident<\/th><th>What happens<\/th><th>Is data at risk?<\/th><\/tr><\/thead><tbody><tr><td data-label=\"Incident\">DDoS attack<\/td><td data-label=\"What happens\">Many devices in a botnet send traffic at the same time, so the site slows down or goes down.<\/td><td data-label=\"Is data at risk?\">No. It is about availability.<\/td><\/tr><tr><td data-label=\"Incident\">Intrusion and data breach<\/td><td data-label=\"What happens\">Someone gains access to systems or data they are not allowed to see.<\/td><td data-label=\"Is data at risk?\">Yes. That is the whole point.<\/td><\/tr><tr><td data-label=\"Incident\">DoS<\/td><td data-label=\"What happens\">Same idea as DDoS, but the traffic comes from a single source. It is easier to block.<\/td><td data-label=\"Is data at risk?\">No.<\/td><\/tr><tr><td data-label=\"Incident\">Traffic spike from a campaign<\/td><td data-label=\"What happens\">Real customers arrive all at once, for example after a newsletter or a TV mention.<\/td><td data-label=\"Is data at risk?\">No. It is a capacity problem, not an attack.<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Typical targets are ecommerce and other revenue-generating websites, gaming, telecoms, public institutions and forums. The motive can be extortion, activism, competition or simply someone wanting to see if it can be done.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">It matters less if your website does not make money directly and has no users who depend on it. An information site can often live with a few hours of downtime. In that case, your hosting provider&#8217;s standard protection is usually enough.<\/p>\n\n\n\n<h2 id=\"explainer\" class=\"wp-block-heading\">How does a DDoS attack take a website down?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">A DDoS attack takes a website down by using up all its capacity: a botnet sends so many simultaneous requests that the bandwidth, connections or server resources run out, and real users are turned away. The attack hits either the network layer or the application layer.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">A botnet is a network of computers, routers, cameras and other devices infected with malicious software. The owners usually do not know. The attacker controls them as a group and can make them send traffic at the same target at the same time.<\/p>\n\n\n\n<div class=\"mt-ai-embed mt-ai-embed--diagram\" data-mt-ai=\"diagram\"><div class=\"ddos-flow\"><style>.ddos-flow svg{width:100%;height:auto;display:block}.ddos-flow .box{fill:#f3f4f6;stroke:#1f2937;stroke-width:1.5}.ddos-flow .hot{fill:#fde2e2;stroke:#991b1b;stroke-width:1.5}.ddos-flow .layer{fill:#eef2ff;stroke:#3730a3;stroke-width:1.5}.ddos-flow text{font-family:inherit;font-size:14px;fill:#111827}.ddos-flow .t{font-weight:700;font-size:15px}.ddos-flow .arrow{stroke:#1f2937;stroke-width:2;fill:none}<\/style><svg viewBox=\"0 0 870 300\" role=\"img\" aria-hidden=\"true\"><defs><marker id=\"ddos-ah\" viewBox=\"0 0 10 10\" refX=\"9\" refY=\"5\" markerWidth=\"7\" markerHeight=\"7\" orient=\"auto\"><path d=\"M0,0 L10,5 L0,10 z\" fill=\"#1f2937\"\/><\/marker><\/defs><rect class=\"box\" x=\"10\" y=\"10\" width=\"195\" height=\"110\" rx=\"8\"\/><text class=\"t\" x=\"24\" y=\"40\">1. Botnet<\/text><text x=\"24\" y=\"68\">Many infected<\/text><text x=\"24\" y=\"88\">devices send traffic<\/text><text x=\"24\" y=\"108\">at once<\/text><line class=\"arrow\" x1=\"207\" y1=\"65\" x2=\"228\" y2=\"65\" marker-end=\"url(#ddos-ah)\"\/><rect class=\"box\" x=\"230\" y=\"10\" width=\"195\" height=\"110\" rx=\"8\"\/><text class=\"t\" x=\"244\" y=\"40\">2. Flood of traffic<\/text><text x=\"244\" y=\"68\">The requests hit<\/text><text x=\"244\" y=\"88\">your website at once<\/text><line class=\"arrow\" x1=\"427\" y1=\"65\" x2=\"448\" y2=\"65\" marker-end=\"url(#ddos-ah)\"\/><rect class=\"box\" x=\"450\" y=\"10\" width=\"195\" height=\"110\" rx=\"8\"\/><text class=\"t\" x=\"464\" y=\"40\">3. Capacity runs out<\/text><text x=\"464\" y=\"68\">Bandwidth, connections<\/text><text x=\"464\" y=\"88\">or server resources<\/text><text x=\"464\" y=\"108\">are used up<\/text><line class=\"arrow\" x1=\"647\" y1=\"65\" x2=\"668\" y2=\"65\" marker-end=\"url(#ddos-ah)\"\/><rect class=\"hot\" x=\"670\" y=\"10\" width=\"190\" height=\"110\" rx=\"8\"\/><text class=\"t\" x=\"684\" y=\"40\">4. Customers turned away<\/text><text x=\"684\" y=\"68\">The site is slow<\/text><text x=\"684\" y=\"88\">or does not respond<\/text><text class=\"t\" x=\"10\" y=\"160\">The attack hits one of two places:<\/text><rect class=\"layer\" x=\"10\" y=\"175\" width=\"415\" height=\"110\" rx=\"8\"\/><text class=\"t\" x=\"24\" y=\"205\">Network layer<\/text><text x=\"24\" y=\"232\">Fills the connection or the server&#8217;s<\/text><text x=\"24\" y=\"252\">list of open connections<\/text><text x=\"24\" y=\"272\">Example: SYN flood<\/text><rect class=\"layer\" x=\"445\" y=\"175\" width=\"415\" height=\"110\" rx=\"8\"\/><text class=\"t\" x=\"459\" y=\"205\">Application layer<\/text><text x=\"459\" y=\"232\">Requests heavy pages, searches and basket<\/text><text x=\"459\" y=\"252\">just like a real customer would<\/text><text x=\"459\" y=\"272\">Example: HTTP flood<\/text><\/svg><\/div><\/div>\n\n\n\n<h3 id=\"netvaerkslaget-og-applikationslaget\" class=\"wp-block-heading\">What is the difference between network layer and application layer attacks?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Attacks on the <strong>network layer<\/strong> are about volume. A SYN flood, for example, opens lots of connections that are never completed, so the server has no room for new ones. The traffic looks abnormal and can usually be filtered before it reaches your server, if your hosting provider has DDoS protection on the network.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Attacks on the <strong>application layer<\/strong> look like real visits. In the Black Friday example, the botnet requests product pages, searches and the basket, exactly as customers do. Each request makes the server work, so even a moderate amount can take an online shop down.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">That is why the application layer is the hardest to protect. The filter has to tell a bot from a customer in a hurry without blocking the customer. That takes rules set up for your specific website.<\/p>\n\n\n\n<h2 id=\"how-to\" class=\"wp-block-heading\">How do you find out if your protection is big enough?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">You find out if your DDoS protection is big enough by first making a rough estimate of what downtime costs you, then asking your hosting provider what is actually set up on the network layer and the application layer. The more an hour offline costs, the more the answers need to cover.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Start with the cost of downtime. Take your revenue per hour on a busy day, multiply by the hours you expect to be down, and judge how much of the sales will not come back later. Some customers wait and buy tomorrow. Others buy somewhere else.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The result is an estimate, not a measurement of an actual loss. It tells you whether you are talking about a few hundred kroner or a significant share of the month&#8217;s sales.<\/p>\n\n\n<section class=\"mt-calculator wp-block-mt-calculator-2026\" data-mt-calculator=\"{&quot;style&quot;:{&quot;decimalPoint&quot;:&quot;.&quot;,&quot;thousandsSeparator&quot;:&quot;,&quot;,&quot;amountBefore&quot;:&quot;&quot;,&quot;amountAfter&quot;:&quot; kr.&quot;,&quot;percentBefore&quot;:&quot;&quot;,&quot;percentAfter&quot;:&quot; %&quot;},&quot;inputs&quot;:[{&quot;id&quot;:&quot;revenuePerHour&quot;,&quot;label&quot;:&quot;How much revenue do you make per hour on a busy day?&quot;,&quot;help&quot;:&quot;Take your revenue on a busy day and divide by the number of open hours, for example 24 for an online shop.&quot;,&quot;kind&quot;:&quot;amount&quot;,&quot;unit&quot;:null,&quot;value&quot;:5000,&quot;min&quot;:0,&quot;max&quot;:500000,&quot;step&quot;:500},{&quot;id&quot;:&quot;hoursDown&quot;,&quot;label&quot;:&quot;How many hours do you expect the site to be down?&quot;,&quot;help&quot;:&quot;An attack can last from minutes to days. Try both a short and a long duration.&quot;,&quot;kind&quot;:&quot;count&quot;,&quot;unit&quot;:&quot;hours&quot;,&quot;value&quot;:4,&quot;min&quot;:1,&quot;max&quot;:72,&quot;step&quot;:1},{&quot;id&quot;:&quot;lostShare&quot;,&quot;label&quot;:&quot;What share of customers will not buy later instead?&quot;,&quot;help&quot;:&quot;Customers who buy elsewhere or give up. If you are unsure, try 30%.&quot;,&quot;kind&quot;:&quot;percent&quot;,&quot;unit&quot;:null,&quot;value&quot;:30,&quot;min&quot;:0,&quot;max&quot;:100,&quot;step&quot;:5}],&quot;result&quot;:{&quot;label&quot;:&quot;Rough estimate of lost revenue&quot;,&quot;formula&quot;:&quot;revenuePerHour * hoursDown * lostShare&quot;,&quot;kind&quot;:&quot;amount&quot;,&quot;unit&quot;:null,&quot;decimals&quot;:0,&quot;caption&quot;:&quot;that does not come back. An estimate, not a measurement&quot;},&quot;verdict&quot;:null,&quot;facts&quot;:[{&quot;label&quot;:&quot;Revenue not earned while the site was down&quot;,&quot;formula&quot;:&quot;revenuePerHour * hoursDown&quot;,&quot;kind&quot;:&quot;amount&quot;,&quot;unit&quot;:null,&quot;decimals&quot;:0},{&quot;label&quot;:&quot;Of which revenue that comes back later&quot;,&quot;formula&quot;:&quot;revenuePerHour * hoursDown * (1 - lostShare)&quot;,&quot;kind&quot;:&quot;amount&quot;,&quot;unit&quot;:null,&quot;decimals&quot;:0}]}\"  aria-labelledby=\"mt-calculator-1-title\" >\n        <div class=\"mt-calculator__in\">\n                            <h3 class=\"mt-calculator__title\" id=\"mt-calculator-1-title\">What does downtime cost you if your site is taken down?<\/h3>\n            \n                            <p class=\"mt-calculator__intro\">Enter your revenue per hour, how long the site is down, and how many customers will not come back. You get a rough estimate of the loss.<\/p>\n            \n                            <div class=\"mt-calculator__field\">\n                    <div class=\"mt-calculator__row\">\n                        <label class=\"mt-calculator__label\" for=\"mt-calculator-1-revenuePerHour\">How much revenue do you make per hour on a busy day?<\/label>\n                        <div class=\"mt-calculator__box\">\n                            <input id=\"mt-calculator-1-revenuePerHour\"\n                                   class=\"mt-calculator__number\"\n                                   data-input=\"revenuePerHour\"\n                                   type=\"number\"\n                                   inputmode=\"decimal\"\n                                   min=\"0\"\n                                   max=\"500000\"\n                                   step=\"500\"\n                                   value=\"5000\">\n                                                            <span>kr.<\/span>\n                                                    <\/div>\n                    <\/div>\n\n                                            <p class=\"mt-calculator__help\">Take your revenue on a busy day and divide by the number of open hours, for example 24 for an online shop.<\/p>\n                    \n                    <input class=\"mt-calculator__range\"\n                           data-range=\"revenuePerHour\"\n                           type=\"range\"\n                           min=\"0\"\n                           max=\"500000\"\n                           step=\"500\"\n                           value=\"5000\"\n                           style=\"--p: 1%\"\n                           aria-label=\"How much revenue do you make per hour on a busy day?\"\n                           tabindex=\"-1\">\n                <\/div>\n                            <div class=\"mt-calculator__field\">\n                    <div class=\"mt-calculator__row\">\n                        <label class=\"mt-calculator__label\" for=\"mt-calculator-1-hoursDown\">How many hours do you expect the site to be down?<\/label>\n                        <div class=\"mt-calculator__box\">\n                            <input id=\"mt-calculator-1-hoursDown\"\n                                   class=\"mt-calculator__number\"\n                                   data-input=\"hoursDown\"\n                                   type=\"number\"\n                                   inputmode=\"decimal\"\n                                   min=\"1\"\n                                   max=\"72\"\n                                   step=\"1\"\n                                   value=\"4\">\n                                                            <span>hours<\/span>\n                                                    <\/div>\n                    <\/div>\n\n                                            <p class=\"mt-calculator__help\">An attack can last from minutes to days. Try both a short and a long duration.<\/p>\n                    \n                    <input class=\"mt-calculator__range\"\n                           data-range=\"hoursDown\"\n                           type=\"range\"\n                           min=\"1\"\n                           max=\"72\"\n                           step=\"1\"\n                           value=\"4\"\n                           style=\"--p: 4.23%\"\n                           aria-label=\"How many hours do you expect the site to be down?\"\n                           tabindex=\"-1\">\n                <\/div>\n                            <div class=\"mt-calculator__field\">\n                    <div class=\"mt-calculator__row\">\n                        <label class=\"mt-calculator__label\" for=\"mt-calculator-1-lostShare\">What share of customers will not buy later instead?<\/label>\n                        <div class=\"mt-calculator__box\">\n                            <input id=\"mt-calculator-1-lostShare\"\n                                   class=\"mt-calculator__number\"\n                                   data-input=\"lostShare\"\n                                   type=\"number\"\n                                   inputmode=\"decimal\"\n                                   min=\"0\"\n                                   max=\"100\"\n                                   step=\"5\"\n                                   value=\"30\">\n                                                            <span>%<\/span>\n                                                    <\/div>\n                    <\/div>\n\n                                            <p class=\"mt-calculator__help\">Customers who buy elsewhere or give up. If you are unsure, try 30%.<\/p>\n                    \n                    <input class=\"mt-calculator__range\"\n                           data-range=\"lostShare\"\n                           type=\"range\"\n                           min=\"0\"\n                           max=\"100\"\n                           step=\"5\"\n                           value=\"30\"\n                           style=\"--p: 30%\"\n                           aria-label=\"What share of customers will not buy later instead?\"\n                           tabindex=\"-1\">\n                <\/div>\n                    <\/div>\n\n        <div class=\"mt-calculator__out\" aria-live=\"polite\">\n                            <p class=\"mt-calculator__kicker\">Rough estimate of lost revenue<\/p>\n                        <p class=\"mt-calculator__big\" data-output=\"result\">6,000 kr.<\/p>\n                            <p class=\"mt-calculator__sub\">that does not come back. An estimate, not a measurement<\/p>\n            \n            \n                            <ul class=\"mt-calculator__facts\">\n                                            <li class=\"mt-calculator__fact\"><span>Revenue not earned while the site was down<\/span><span data-output=\"fact-0\">20,000 kr.<\/span><\/li>\n                                            <li class=\"mt-calculator__fact\"><span>Of which revenue that comes back later<\/span><span data-output=\"fact-1\">14,000 kr.<\/span><\/li>\n                                    <\/ul>\n            \n                    <\/div>\n    <\/section>\n\n\n\n<p class=\"wp-block-paragraph\">Then ask your hosting provider these questions. Get the answers in writing:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Is there DDoS protection on the network layer?<\/strong> Is traffic filtered before it reaches your server, and is that included in your agreement or an add-on?<\/li>\n\n\n\n<li><strong>Is the application layer filtered?<\/strong> Is there a web application firewall in front of the site, and can the rules be adapted to your website?<\/li>\n\n\n\n<li><strong>Is there rate limiting?<\/strong> Is there a limit on how many requests one source can send to heavy pages such as search, login and basket?<\/li>\n\n\n\n<li><strong>Who responds, and when?<\/strong> Is the site monitored outside business hours, and who switches on extra protection?<\/li>\n\n\n\n<li><strong>How will you be told?<\/strong> Will you be contacted while an attack is under way, and who on your side should they call?<\/li>\n\n\n\n<li><strong>What happens to your site during an attack?<\/strong> Will it be disconnected to protect other customers on the same server?<\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\">If the estimate is low and the provider answers yes to the first two questions, you usually do not need to do more. If the estimate is high or the answers are unclear, it is time to look more closely at protecting the application layer.<\/p>\n\n\n\n<h2 id=\"faq\" class=\"wp-block-heading\">What else do people ask about DDoS attacks?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">The most common questions about DDoS attacks are whether small websites are targets, how an attack differs from a successful campaign, what to do during an attack, and whether it has to be reported.<\/p>\n\n\n\n<div class=\"wp-block-mt-accordion mt-accordion mtSpacing-top- mtSpacing-bottom-\"><div class=\"mt-accordion__inner\">\n<div class=\"wp-block-mt-accordion-item mt-accordion-item\"><div class=\"mt-accordion-item__title-wrapper\"><h3 class=\"mt-accordion-item__title\">Are small Danish websites hit by DDoS attacks?<\/h3><\/div><div class=\"mt-accordion-item__content-wrapper\" style=\"display:none\"><div class=\"mt-accordion-item__content\">\n<p class=\"wp-block-paragraph\">Yes, it happens. A small site can be a target for extortion or vandalism, and it can be hit indirectly if it shares a server with a site that is attacked. The risk is lower than for large online shops and public services, though, so your need depends on what downtime costs you.<\/p>\n<\/div><\/div><\/div>\n\n\n\n<div class=\"wp-block-mt-accordion-item mt-accordion-item\"><div class=\"mt-accordion-item__title-wrapper\"><h3 class=\"mt-accordion-item__title\">How can you tell a DDoS attack from a campaign that works?<\/h3><\/div><div class=\"mt-accordion-item__content-wrapper\" style=\"display:none\"><div class=\"mt-accordion-item__content\">\n<p class=\"wp-block-paragraph\">Campaign traffic comes from the channels you used, and it leads to orders, sign-ups or clicks further into the site. Attack traffic typically leads to no actions, arrives in an unnatural pattern and often hits the same few pages over and over. Your hosting provider can see this in the server logs.<\/p>\n<\/div><\/div><\/div>\n\n\n\n<div class=\"wp-block-mt-accordion-item mt-accordion-item\"><div class=\"mt-accordion-item__title-wrapper\"><h3 class=\"mt-accordion-item__title\">How long does a DDoS attack last?<\/h3><\/div><div class=\"mt-accordion-item__content-wrapper\" style=\"display:none\"><div class=\"mt-accordion-item__content\">\n<p class=\"wp-block-paragraph\">It varies from a few minutes to several days, and some attacks return in waves. That is why it is more useful to work through several downtime scenarios than to assume one fixed duration.<\/p>\n<\/div><\/div><\/div>\n\n\n\n<div class=\"wp-block-mt-accordion-item mt-accordion-item\"><div class=\"mt-accordion-item__title-wrapper\"><h3 class=\"mt-accordion-item__title\">What do you do while a DDoS attack is under way?<\/h3><\/div><div class=\"mt-accordion-item__content-wrapper\" style=\"display:none\"><div class=\"mt-accordion-item__content\">\n<p class=\"wp-block-paragraph\">Contact your hosting provider straight away so they can switch on extra filtering. Pause your ads so you do not pay for clicks to a site that does not respond. Inform customers via social media or email. Do not pay a ransom if the attack comes with a demand.<\/p>\n<\/div><\/div><\/div>\n\n\n\n<div class=\"wp-block-mt-accordion-item mt-accordion-item\"><div class=\"mt-accordion-item__title-wrapper\"><h3 class=\"mt-accordion-item__title\">Are DDoS attacks illegal, and should they be reported?<\/h3><\/div><div class=\"mt-accordion-item__content-wrapper\" style=\"display:none\"><div class=\"mt-accordion-item__content\">\n<p class=\"wp-block-paragraph\">Yes, disrupting the operation of other people&#8217;s systems is a criminal offence, and you can report an attack to the police. Keep logs and any threatening messages as evidence. If your business is covered by specific IT security rules, such as NIS2, you may be required to notify the authorities.<\/p>\n<\/div><\/div><\/div>\n\n\n\n<div class=\"wp-block-mt-accordion-item mt-accordion-item\"><div class=\"mt-accordion-item__title-wrapper\"><h3 class=\"mt-accordion-item__title\">Can any solution fully protect against DDoS attacks?<\/h3><\/div><div class=\"mt-accordion-item__content-wrapper\" style=\"display:none\"><div class=\"mt-accordion-item__content\">\n<p class=\"wp-block-paragraph\">No. DDoS protection reduces the risk and shortens downtime, but a large or targeted attack can still affect the site. The question is whether the protection matches what downtime costs you.<\/p>\n<\/div><\/div><\/div>\n<\/div><\/div>\n\n\n\n<div class=\"wp-block-mt-blog-post-text-box mt-blog-post-text-box\"><div class=\"mt-blog-post-text-box__inner page-container\"><div class=\"mt-blog-post-text-box__box\">\n<h3 class=\"wp-block-heading\">What to remember about DDoS attacks<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">A DDoS attack does not steal data. It makes your website slow or unavailable, and the damage is the downtime it causes.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Application layer attacks are the hardest to stop, because the traffic looks like real customers and needs filtering set up for your website.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">How much DDoS protection you need depends on what an hour of downtime costs you. A rough estimate is enough to decide whether you are talking about small change or a real risk.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The concrete next step is to ask your hosting provider in writing whether the network layer and the application layer are protected, and who responds when an attack is under way.<\/p>\n<\/div><\/div><\/div>\n\n\n<section class=\"mt-scan-box mt-scan-box--dark wp-block-mt-scan-box-2026\"  aria-labelledby=\"mt-scan-box-title-2\" >\n\n                    <p class=\"mt-scan-box__tagline\">Review of your DDoS protection<\/p>\n        \n                    <h2 class=\"mt-scan-box__title\" id=\"mt-scan-box-title-2\">See if your protection matches what downtime costs you<\/h2>\n        \n                    <p class=\"mt-scan-box__lead\">Enter your domain and your email. We will look at how your website and your hosting handle overload, and send you what we find.<\/p>\n        \n                    <ul class=\"mt-scan-box__list\">\n                                    <li class=\"mt-scan-box__list-item\">\n                        <span class=\"mt-scan-box__check\" aria-hidden=\"true\"><\/span>\n                        <span>Whether your hosting filters attacks on both the network layer and the application layer<\/span>\n                    <\/li>\n                                    <li class=\"mt-scan-box__list-item\">\n                        <span class=\"mt-scan-box__check\" aria-hidden=\"true\"><\/span>\n                        <span>Which pages on your website are easiest to overload<\/span>\n                    <\/li>\n                                    <li class=\"mt-scan-box__list-item\">\n                        <span class=\"mt-scan-box__check\" aria-hidden=\"true\"><\/span>\n                        <span>Which questions your hosting provider still has not answered<\/span>\n                    <\/li>\n                            <\/ul>\n        \n        <div class=\"mt-scan-box__form\">\n            <script>\nvar gform;gform||(document.addEventListener(\"gform_main_scripts_loaded\",function(){gform.scriptsLoaded=!0}),document.addEventListener(\"gform\/theme\/scripts_loaded\",function(){gform.themeScriptsLoaded=!0}),window.addEventListener(\"DOMContentLoaded\",function(){gform.domLoaded=!0}),gform={domLoaded:!1,scriptsLoaded:!1,themeScriptsLoaded:!1,isFormEditor:()=>\"function\"==typeof InitializeEditor,callIfLoaded:function(o){return!(!gform.domLoaded||!gform.scriptsLoaded||!gform.themeScriptsLoaded&&!gform.isFormEditor()||(gform.isFormEditor()&&console.warn(\"The use of gform.initializeOnLoaded() is deprecated in the form editor context and will be removed in Gravity Forms 3.1.\"),o(),0))},initializeOnLoaded:function(o){gform.callIfLoaded(o)||(document.addEventListener(\"gform_main_scripts_loaded\",()=>{gform.scriptsLoaded=!0,gform.callIfLoaded(o)}),document.addEventListener(\"gform\/theme\/scripts_loaded\",()=>{gform.themeScriptsLoaded=!0,gform.callIfLoaded(o)}),window.addEventListener(\"DOMContentLoaded\",()=>{gform.domLoaded=!0,gform.callIfLoaded(o)}))},hooks:{action:{},filter:{}},addAction:function(o,r,e,t){gform.addHook(\"action\",o,r,e,t)},addFilter:function(o,r,e,t){gform.addHook(\"filter\",o,r,e,t)},doAction:function(o){gform.doHook(\"action\",o,arguments)},applyFilters:function(o){return gform.doHook(\"filter\",o,arguments)},removeAction:function(o,r){gform.removeHook(\"action\",o,r)},removeFilter:function(o,r,e){gform.removeHook(\"filter\",o,r,e)},addHook:function(o,r,e,t,n){null==gform.hooks[o][r]&&(gform.hooks[o][r]=[]);var d=gform.hooks[o][r];null==n&&(n=r+\"_\"+d.length),gform.hooks[o][r].push({tag:n,callable:e,priority:t=null==t?10:t})},doHook:function(r,o,e){var t;if(e=Array.prototype.slice.call(e,1),null!=gform.hooks[r][o]&&((o=gform.hooks[r][o]).sort(function(o,r){return o.priority-r.priority}),o.forEach(function(o){\"function\"!=typeof(t=o.callable)&&(t=window[t]),\"action\"==r?t.apply(null,e):e[0]=t.apply(null,e)})),\"filter\"==r)return e[0]},removeHook:function(o,r,t,n){var e;null!=gform.hooks[o][r]&&(e=(e=gform.hooks[o][r]).filter(function(o,r,e){return!!(null!=n&&n!=o.tag||null!=t&&t!=o.priority)}),gform.hooks[o][r]=e)}});\n<\/script>\n\n                <div class='gf_browser_gecko gform_wrapper gravity-theme gform-theme--no-framework' data-form-theme='gravity-theme' data-form-index='0' id='gform_wrapper_5' ><form method='post' enctype='multipart\/form-data' target='gform_ajax_frame_5' id='gform_5'  action='\/en\/wp-json\/wp\/v2\/posts\/76707' data-formid='5' novalidate>\n                        <div class='gform-body gform_body'><div id='gform_fields_5' class='gform_fields top_label form_sublabel_above description_above validation_above'><div id=\"field_5_1\" class=\"gfield gfield--type-text gfield--input-type-text gfield--width-full gfield_contains_required field_sublabel_above gfield--no-description field_description_above hidden_label field_validation_above gfield_visibility_visible\"  ><label class='gfield_label gform-field-label' for='input_5_1'><span class='gform-field-label__text'>Navn<\/span><span class=\"gfield_required\"><span class=\"gfield_required gfield_required_text\">(Required)<\/span><\/span><\/label><div class='ginput_container ginput_container_text'><input name='input_1' id='input_5_1' type='text' value='' class='large'    placeholder='Navn' aria-required=\"true\" aria-invalid=\"false\"   \/><\/div><\/div><div id=\"field_5_3\" class=\"gfield gfield--type-text gfield--input-type-text gfield--width-half gfield_contains_required field_sublabel_above gfield--no-description field_description_above hidden_label field_validation_above gfield_visibility_visible\"  ><label class='gfield_label gform-field-label' for='input_5_3'><span class='gform-field-label__text'>Dom\u00e6ne<\/span><span class=\"gfield_required\"><span class=\"gfield_required gfield_required_text\">(Required)<\/span><\/span><\/label><div class='ginput_container ginput_container_text'><input name='input_3' id='input_5_3' type='text' value='' class='large'    placeholder='Dom\u00e6ne' aria-required=\"true\" aria-invalid=\"false\"   \/><\/div><\/div><div id=\"field_5_4\" class=\"gfield gfield--type-text gfield--input-type-text gfield--width-half gfield_contains_required field_sublabel_above gfield--no-description field_description_above hidden_label field_validation_above gfield_visibility_visible\"  ><label class='gfield_label gform-field-label' for='input_5_4'><span class='gform-field-label__text'>E-mail<\/span><span class=\"gfield_required\"><span class=\"gfield_required gfield_required_text\">(Required)<\/span><\/span><\/label><div class='ginput_container ginput_container_text'><input name='input_4' id='input_5_4' type='text' value='' class='large'    placeholder='E-mail' aria-required=\"true\" aria-invalid=\"false\"   \/><\/div><\/div><div id=\"field_5_5\" class=\"gfield gfield--type-turnstile gfield--width-full field_sublabel_above gfield--no-description field_description_above field_validation_above gfield_visibility_visible\"  ><div class='ginput_container ginput_container_turnstile'><div class=\"cf-turnstile\" id=\"cf-turnstile_5\" data-js-turnstile data-response-field-name=\"cf-turnstile-response_5\" data-theme=\"auto\" data-size=\"normal\" data-sitekey=\"0x4AAAAAACnWrS6I7T8ueSLn\"><\/div><\/div><\/div><\/div><\/div>\n        <div class='gform-footer gform_footer top_label'> <button type='submit' id='gform_submit_button_5' class='gform_button button' onclick='gform.submission.handleButtonClick(this);' data-submission-type='submit' >Submit<\/button> <input type='hidden' name='gform_ajax' value='form_id=5&amp;title=&amp;description=&amp;tabindex=0&amp;theme=gravity-theme&amp;styles=[]&amp;hash=add6473d912c4a12ce97ce0f1d49f330' \/>\n            <input type='hidden' class='gform_hidden' name='gform_submission_method' data-js='gform_submission_method_5' value='iframe' \/>\n            <input type='hidden' class='gform_hidden' name='gform_theme' data-js='gform_theme_5' id='gform_theme_5' value='gravity-theme' \/>\n            <input type='hidden' class='gform_hidden' name='gform_style_settings' data-js='gform_style_settings_5' id='gform_style_settings_5' value='[]' \/>\n            <input type='hidden' class='gform_hidden' name='is_submit_5' value='1' \/>\n            <input type='hidden' class='gform_hidden' name='gform_submit' value='5' \/>\n            \n            <input type='hidden' class='gform_hidden' name='gform_currency' data-currency='DKK' value='8+7vvnIlTxhYZLHszPiau0LVofKNUGB\/TTgq+7BoYpHDw5iCO4V0sUpNY\/\/aANaEYrIsb8hdJwqvuen5o\/OQDvVs0kA3wl2NxEFAWR51h7xFJmI=' \/>\n            <input type='hidden' class='gform_hidden' name='gform_unique_id' value='' \/>\n            <input type='hidden' class='gform_hidden' name='state_5' value='WyJ7XCJnZm9ybV9zdWJtaXNzaW9uX21ldGhvZFwiOltcIjVhOTkxMGJiYTlhN2M1NTYxYjQyODcyZjJhNDcwYWNmXCIsXCI4MDRhMTkyZjJlNDBhYzc1YTk1OTNmODg2ODVlOWU0YVwiLFwiMGIxNzc0MGFjYTljNDQ1MTk2YWYwMzAzMTIzMmZmYzdcIl0sXCJnZm9ybV90aGVtZVwiOlwiMGJiM2M3M2YzOTk4MWNkNDVjNzJkNDc4OTdhMzViYTVcIixcImdmb3JtX3N0eWxlX3NldHRpbmdzXCI6XCIwMmRmMGIzMTJlYmUwNTRiYTk1MmNkOWEyNmUzY2E5YlwiLFwiZm9ybV9pZFwiOlwiMWY0Y2E2ODZiYTQ2NzY1MTYyZGYwNTY4MDdkMGE2YjBcIixcInVybFwiOlwiYmQ0ZjVjZGE5MTkxODlmMzZhYTQ2OTc4OTRjZTRmY2JcIixcInN0YXRlX3RpbWVzdGFtcFwiOlwiOWY2ZTkyZGY0ODA2MjJmZTNkMzZkOGU4MmU5MTBkMzFcIn0iLCI1YzcwNWYwYzY5ZWIyYzM4ODk4NmU2MzU0MzBhNzFmOCIsMTc5NDU4ODcwNl0=' \/>\n            <input type='hidden' autocomplete='off' class='gform_hidden' name='gform_target_page_number_5' id='gform_target_page_number_5' value='0' \/>\n            <input type='hidden' autocomplete='off' class='gform_hidden' name='gform_source_page_number_5' id='gform_source_page_number_5' value='1' \/>\n            <input type='hidden' name='gform_field_values' value='' \/>\n            \n        <\/div>\n                        <\/form>\n                        <\/div>\n\t\t                <iframe style='display:none;width:0px;height:0px;' src='about:blank' name='gform_ajax_frame_5' id='gform_ajax_frame_5' title='This iframe contains the logic required to handle Ajax powered Gravity Forms.'><\/iframe>\n\t\t                <script>\ngform.initializeOnLoaded( function() {jQuery('#gform_ajax_frame_5').on('load',function(){var contents = jQuery(this).contents().find('*').html();var is_postback = contents.indexOf('GF_AJAX_POSTBACK') >= 0;if(!is_postback){return;}var form_content = jQuery(this).contents().find('#gform_wrapper_5');var is_confirmation = jQuery(this).contents().find('#gform_confirmation_wrapper_5').length > 0;var is_redirect = contents.indexOf('gformRedirect(){') >= 0;var is_form = form_content.length > 0 && ! is_redirect && ! is_confirmation;var mt = parseInt(jQuery('html').css('margin-top'), 10) + parseInt(jQuery('body').css('margin-top'), 10) + 100;if(is_form){jQuery('#gform_wrapper_5').html(form_content.html());if(form_content.hasClass('gform_validation_error')){jQuery('#gform_wrapper_5').addClass('gform_validation_error');} else {jQuery('#gform_wrapper_5').removeClass('gform_validation_error');}setTimeout( function() { \/* delay the scroll by 50 milliseconds to fix a bug in chrome *\/  }, 50 );var current_page = jQuery('#gform_source_page_number_5').val();jQuery(document).trigger('gform_page_loaded', [5, current_page]);window['gf_submitting_5'] = false;}else if(!is_redirect){var confirmation_content = jQuery(this).contents().find('.GF_AJAX_POSTBACK').html();if(!confirmation_content){confirmation_content = contents;}jQuery('#gform_wrapper_5').replaceWith(confirmation_content);jQuery(document).trigger('gform_confirmation_loaded', [5]);window['gf_submitting_5'] = false;wp.a11y.speak(jQuery('#gform_confirmation_message_5').text());}else{jQuery('#gform_5').append(contents);if(window['gformRedirect']) {gformRedirect();}}jQuery(document).trigger(\"gform_pre_post_render\", [{ formId: \"5\", currentPage: \"current_page\", abort: function() { this.preventDefault(); } }]);        if (event && event.defaultPrevented) {                return;        }        const gformWrapperDiv = document.getElementById( \"gform_wrapper_5\" );        if ( gformWrapperDiv ) {            const visibilitySpan = document.createElement( \"span\" );            visibilitySpan.id = \"gform_visibility_test_5\";            gformWrapperDiv.insertAdjacentElement( \"afterend\", visibilitySpan );        }        const visibilityTestDiv = document.getElementById( \"gform_visibility_test_5\" );        let postRenderFired = false;        function triggerPostRender() {            if ( postRenderFired ) {                return;            }            postRenderFired = true;            gform.core.triggerPostRenderEvents( 5, current_page );            if ( visibilityTestDiv ) {                visibilityTestDiv.parentNode.removeChild( visibilityTestDiv );            }        }        function debounce( func, wait, immediate ) {            var timeout;            return function() {                var context = this, args = arguments;                var later = function() {                    timeout = null;                    if ( !immediate ) func.apply( context, args );                };                var callNow = immediate && !timeout;                clearTimeout( timeout );                timeout = setTimeout( later, wait );                if ( callNow ) func.apply( context, args );            };        }        const debouncedTriggerPostRender = debounce( function() {            triggerPostRender();        }, 200 );        if ( visibilityTestDiv && visibilityTestDiv.offsetParent === null ) {            const observer = new MutationObserver( ( mutations ) => {                mutations.forEach( ( mutation ) => {                    if ( mutation.type === 'attributes' && visibilityTestDiv.offsetParent !== null ) {                        debouncedTriggerPostRender();                        observer.disconnect();                    }                });            });            observer.observe( document.body, {                attributes: true,                childList: false,                subtree: true,                attributeFilter: [ 'style', 'class' ],            });        } else {            triggerPostRender();        }    } );} );\n<\/script>\n\n        <\/div>\n\n                    <p class=\"mt-scan-box__micro\">You will hear from us within five working days. No strings attached, and what you do with it is up to you.<\/p>\n        \n                    <p class=\"mt-scan-box__alt\">\n                Would you rather talk it over a cup of coffee?\n                <button type=\"button\" class=\"mt-scan-box__alt-link open-slide-in-contact\" data-contact-slide-in-view=\"1\">Book a meeting<\/button>\n            <\/p>\n        \n    <\/section>\n\n\n                                            <\/div>\n        <div class=\"mt-blog-post-content__small-related-posts\">\n                                <\/div>\n    <\/div>\n    <\/section>\n\n","protected":false},"excerpt":{"rendered":"<p>A DDoS attack makes a website slow or unavailable by overloading it with traffic from a botnet. No data is stolen, but the downtime costs you. See how the attack works, get a rough estimate of what downtime costs you, and get the questions to ask your hosting provider.<\/p>\n","protected":false},"author":0,"featured_media":76708,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"featuredImageHeading":"DDoS attack: what is it, and how do you know if your website is protected enough?","featuredImageSubheading":"Work out your downtime cost and ask your host the right questions","footnotes":""},"categories":[285],"tags":[550,558,411],"class_list":["post-76707","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-digitalization","tag-definitions","tag-security","tag-website"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.7 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>DDoS attack: what is it, and how do you know if your website is protected enough? - Morningtrain<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/morningtrain.dk\/en\/ddos-attack\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"DDoS attack: what is it, and how do you know if your website is protected enough? - Morningtrain\" \/>\n<meta property=\"og:description\" content=\"A DDoS attack makes a website slow or unavailable by overloading it with traffic from a botnet. No data is stolen, but the downtime costs you. See how the attack works, get a rough estimate of what downtime costs you, and get the questions to ask your hosting provider.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/morningtrain.dk\/en\/ddos-attack\/\" \/>\n<meta property=\"og:site_name\" content=\"Morningtrain\" \/>\n<meta property=\"article:published_time\" content=\"2025-11-10T14:32:00+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-11-10T14:32:09+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/morningtrain.dk\/wp-content\/uploads\/2026\/11\/ddos-attack-what-is-it-and-how-do-you-know-if-your-website-is-protected-enough.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1248\" \/>\n\t<meta property=\"og:image:height\" content=\"720\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"7 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/morningtrain.dk\\\/en\\\/ddos-attack\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/morningtrain.dk\\\/en\\\/ddos-attack\\\/\"},\"author\":{\"name\":\"Martin Schadegg Br\u00f8nniche\",\"@id\":\"https:\\\/\\\/morningtrain.dk\\\/en\\\/#\\\/schema\\\/person\\\/employee-67165\"},\"headline\":\"DDoS attack: what is it, and how do you know if your website is protected enough? Work out your downtime cost and ask your host the right questions\",\"datePublished\":\"2025-11-10T14:32:00+00:00\",\"dateModified\":\"2026-11-10T14:32:09+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/morningtrain.dk\\\/en\\\/ddos-attack\\\/\"},\"wordCount\":1521,\"image\":{\"@id\":\"https:\\\/\\\/morningtrain.dk\\\/en\\\/ddos-attack\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/morningtrain.dk\\\/wp-content\\\/uploads\\\/2026\\\/11\\\/ddos-attack-what-is-it-and-how-do-you-know-if-your-website-is-protected-enough.png\",\"keywords\":[\"Definitions\",\"Security\",\"Website\"],\"articleSection\":[\"Digitalization\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/morningtrain.dk\\\/en\\\/ddos-attack\\\/\",\"url\":\"https:\\\/\\\/morningtrain.dk\\\/en\\\/ddos-attack\\\/\",\"name\":\"DDoS attack: what is it, and how do you know if your website is protected enough? - Morningtrain\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/morningtrain.dk\\\/en\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/morningtrain.dk\\\/en\\\/ddos-attack\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/morningtrain.dk\\\/en\\\/ddos-attack\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/morningtrain.dk\\\/wp-content\\\/uploads\\\/2026\\\/11\\\/ddos-attack-what-is-it-and-how-do-you-know-if-your-website-is-protected-enough.png\",\"datePublished\":\"2025-11-10T14:32:00+00:00\",\"dateModified\":\"2026-11-10T14:32:09+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/morningtrain.dk\\\/en\\\/#\\\/schema\\\/person\\\/employee-67165\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/morningtrain.dk\\\/en\\\/ddos-attack\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/morningtrain.dk\\\/en\\\/ddos-attack\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/morningtrain.dk\\\/en\\\/ddos-attack\\\/#primaryimage\",\"url\":\"https:\\\/\\\/morningtrain.dk\\\/wp-content\\\/uploads\\\/2026\\\/11\\\/ddos-attack-what-is-it-and-how-do-you-know-if-your-website-is-protected-enough.png\",\"contentUrl\":\"https:\\\/\\\/morningtrain.dk\\\/wp-content\\\/uploads\\\/2026\\\/11\\\/ddos-attack-what-is-it-and-how-do-you-know-if-your-website-is-protected-enough.png\",\"width\":1248,\"height\":720,\"caption\":\"DDoS attack: what is it, and how do you know if your website is protected enough?\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/morningtrain.dk\\\/en\\\/ddos-attack\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/morningtrain.dk\\\/en\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"DDoS attack: what is it, and how do you know if your website is protected enough? Work out your downtime cost and ask your host the right questions\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/morningtrain.dk\\\/en\\\/#website\",\"url\":\"https:\\\/\\\/morningtrain.dk\\\/en\\\/\",\"name\":\"Morningtrain\",\"description\":\"Digitalt bureau p\u00e5 1&#039; klasse\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/morningtrain.dk\\\/en\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/morningtrain.dk\\\/en\\\/#\\\/schema\\\/person\\\/employee-67165\",\"name\":\"Martin Schadegg Br\u00f8nniche\",\"jobTitle\":\"Lead Customer Success & Partner\",\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https:\\\/\\\/morningtrain.dk\\\/en\\\/#\\\/schema\\\/person\\\/employee-67165\\\/image\",\"url\":\"https:\\\/\\\/morningtrain.dk\\\/wp-content\\\/uploads\\\/2023\\\/12\\\/Martin-Schadegg-Broenniche-2-819x1024.png\",\"contentUrl\":\"https:\\\/\\\/morningtrain.dk\\\/wp-content\\\/uploads\\\/2023\\\/12\\\/Martin-Schadegg-Broenniche-2-819x1024.png\",\"caption\":\"Martin Schadegg Br\u00f8nniche\"},\"url\":\"https:\\\/\\\/morningtrain.dk\\\/en\\\/employees\\\/martin-schadegg-bronniche\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"DDoS attack: what is it, and how do you know if your website is protected enough? - Morningtrain","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:\/\/morningtrain.dk\/en\/ddos-attack\/","og_locale":"en_US","og_type":"article","og_title":"DDoS attack: what is it, and how do you know if your website is protected enough? - Morningtrain","og_description":"A DDoS attack makes a website slow or unavailable by overloading it with traffic from a botnet. No data is stolen, but the downtime costs you. See how the attack works, get a rough estimate of what downtime costs you, and get the questions to ask your hosting provider.","og_url":"https:\/\/morningtrain.dk\/en\/ddos-attack\/","og_site_name":"Morningtrain","article_published_time":"2025-11-10T14:32:00+00:00","article_modified_time":"2026-11-10T14:32:09+00:00","og_image":[{"width":1248,"height":720,"url":"https:\/\/morningtrain.dk\/wp-content\/uploads\/2026\/11\/ddos-attack-what-is-it-and-how-do-you-know-if-your-website-is-protected-enough.png","type":"image\/png"}],"twitter_card":"summary_large_image","twitter_misc":{"Est. reading time":"7 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/morningtrain.dk\/en\/ddos-attack\/#article","isPartOf":{"@id":"https:\/\/morningtrain.dk\/en\/ddos-attack\/"},"author":{"name":"Martin Schadegg Br\u00f8nniche","@id":"https:\/\/morningtrain.dk\/en\/#\/schema\/person\/employee-67165"},"headline":"DDoS attack: what is it, and how do you know if your website is protected enough? Work out your downtime cost and ask your host the right questions","datePublished":"2025-11-10T14:32:00+00:00","dateModified":"2026-11-10T14:32:09+00:00","mainEntityOfPage":{"@id":"https:\/\/morningtrain.dk\/en\/ddos-attack\/"},"wordCount":1521,"image":{"@id":"https:\/\/morningtrain.dk\/en\/ddos-attack\/#primaryimage"},"thumbnailUrl":"https:\/\/morningtrain.dk\/wp-content\/uploads\/2026\/11\/ddos-attack-what-is-it-and-how-do-you-know-if-your-website-is-protected-enough.png","keywords":["Definitions","Security","Website"],"articleSection":["Digitalization"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/morningtrain.dk\/en\/ddos-attack\/","url":"https:\/\/morningtrain.dk\/en\/ddos-attack\/","name":"DDoS attack: what is it, and how do you know if your website is protected enough? - Morningtrain","isPartOf":{"@id":"https:\/\/morningtrain.dk\/en\/#website"},"primaryImageOfPage":{"@id":"https:\/\/morningtrain.dk\/en\/ddos-attack\/#primaryimage"},"image":{"@id":"https:\/\/morningtrain.dk\/en\/ddos-attack\/#primaryimage"},"thumbnailUrl":"https:\/\/morningtrain.dk\/wp-content\/uploads\/2026\/11\/ddos-attack-what-is-it-and-how-do-you-know-if-your-website-is-protected-enough.png","datePublished":"2025-11-10T14:32:00+00:00","dateModified":"2026-11-10T14:32:09+00:00","author":{"@id":"https:\/\/morningtrain.dk\/en\/#\/schema\/person\/employee-67165"},"breadcrumb":{"@id":"https:\/\/morningtrain.dk\/en\/ddos-attack\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/morningtrain.dk\/en\/ddos-attack\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/morningtrain.dk\/en\/ddos-attack\/#primaryimage","url":"https:\/\/morningtrain.dk\/wp-content\/uploads\/2026\/11\/ddos-attack-what-is-it-and-how-do-you-know-if-your-website-is-protected-enough.png","contentUrl":"https:\/\/morningtrain.dk\/wp-content\/uploads\/2026\/11\/ddos-attack-what-is-it-and-how-do-you-know-if-your-website-is-protected-enough.png","width":1248,"height":720,"caption":"DDoS attack: what is it, and how do you know if your website is protected enough?"},{"@type":"BreadcrumbList","@id":"https:\/\/morningtrain.dk\/en\/ddos-attack\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/morningtrain.dk\/en\/"},{"@type":"ListItem","position":2,"name":"DDoS attack: what is it, and how do you know if your website is protected enough? Work out your downtime cost and ask your host the right questions"}]},{"@type":"WebSite","@id":"https:\/\/morningtrain.dk\/en\/#website","url":"https:\/\/morningtrain.dk\/en\/","name":"Morningtrain","description":"Digitalt bureau p\u00e5 1&#039; klasse","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/morningtrain.dk\/en\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/morningtrain.dk\/en\/#\/schema\/person\/employee-67165","name":"Martin Schadegg Br\u00f8nniche","jobTitle":"Lead Customer Success & Partner","image":{"@type":"ImageObject","@id":"https:\/\/morningtrain.dk\/en\/#\/schema\/person\/employee-67165\/image","url":"https:\/\/morningtrain.dk\/wp-content\/uploads\/2023\/12\/Martin-Schadegg-Broenniche-2-819x1024.png","contentUrl":"https:\/\/morningtrain.dk\/wp-content\/uploads\/2023\/12\/Martin-Schadegg-Broenniche-2-819x1024.png","caption":"Martin Schadegg Br\u00f8nniche"},"url":"https:\/\/morningtrain.dk\/en\/employees\/martin-schadegg-bronniche\/"}]}},"_links":{"self":[{"href":"https:\/\/morningtrain.dk\/en\/wp-json\/wp\/v2\/posts\/76707","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/morningtrain.dk\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/morningtrain.dk\/en\/wp-json\/wp\/v2\/types\/post"}],"replies":[{"embeddable":true,"href":"https:\/\/morningtrain.dk\/en\/wp-json\/wp\/v2\/comments?post=76707"}],"version-history":[{"count":1,"href":"https:\/\/morningtrain.dk\/en\/wp-json\/wp\/v2\/posts\/76707\/revisions"}],"predecessor-version":[{"id":76713,"href":"https:\/\/morningtrain.dk\/en\/wp-json\/wp\/v2\/posts\/76707\/revisions\/76713"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/morningtrain.dk\/en\/wp-json\/wp\/v2\/media\/76708"}],"wp:attachment":[{"href":"https:\/\/morningtrain.dk\/en\/wp-json\/wp\/v2\/media?parent=76707"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/morningtrain.dk\/en\/wp-json\/wp\/v2\/categories?post=76707"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/morningtrain.dk\/en\/wp-json\/wp\/v2\/tags?post=76707"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}