<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>škodlivá reklama Archivy - Dvojklik</title>
	<atom:link href="https://www.dvojklik.cz/tag/skodliva-reklama/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.dvojklik.cz/tag/skodliva-reklama/</link>
	<description>Magazín o informační bezpečnosti</description>
	<lastBuildDate>Wed, 25 Sep 2024 10:14:11 +0000</lastBuildDate>
	<language>cs</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.0.4</generator>

<image>
	<url>https://www.dvojklik.cz/wp-content/uploads/2020/09/dvojklik-favicon.png</url>
	<title>škodlivá reklama Archivy - Dvojklik</title>
	<link>https://www.dvojklik.cz/tag/skodliva-reklama/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Malvertising se nám skrývá přímo na očích</title>
		<link>https://www.dvojklik.cz/malvertising-se-nam-skryva-se-na-ocich/</link>
		
		<dc:creator><![CDATA[Tereza Malkusová]]></dc:creator>
		<pubDate>Thu, 26 Sep 2024 07:39:40 +0000</pubDate>
				<category><![CDATA[Technologie]]></category>
		<category><![CDATA[malvertising]]></category>
		<category><![CDATA[podvod]]></category>
		<category><![CDATA[škodlivá reklama]]></category>
		<guid isPermaLink="false">https://www.dvojklik.cz/?p=8874</guid>

					<description><![CDATA[Škodlivé reklamy ve vyhledávání mohou šířit malware. Pro podvodníky je to lákavý způsob, jak nalákat co nejvíce obětí. Přečtěte si, jak tzv. malvertising odhalit.]]></description>
										<content:encoded><![CDATA[<p>Někdy se za reklamou skrývá víc než jen lákavá nabídka produktu. Vývojáři malwaru se intenzivně věnují zdokonalování škodlivého kódu a zkoumání různých způsobů, jak okrást uživatele o peníze nebo data. Někdy se můžete jedna o <strong>malvertising</strong> &#8211; tedy propagaci škodlivého kódu.</p>
<p>Šíření malwaru prostřednictvím reklamy není nic nového; kyberzločinci se již dlouho zaměřují na online reklamní sítě jako na způsob, jak své podvody rozšířit. Poskytovatelé reklamního prostoru, jako Google nebo Meta, se je <strong>samozřejmě snaží blokovat</strong>. Ale jakmile vypnout jednu reklamu na podvodnou stránku objeví se jich 100 nových – zkrátka je to sisyfovská práce.</p>
<div class="pk-content-block pk-block-border-all pk-block-bg pk-block-bg-light" style="text-align: center;"><strong>Mohlo by vás zajímat</strong>: <a href="https://dvojklik.cz/kupon-na-20-tisic-za-sdileni-jak-funguje-malvertising-na-socialnich-sitich/">Jak funguje malvertising na sociálních sítích</a></div>
<p>Šíření malware prostřednictvím reklam velký problém – zejména pokud <strong>se vydávají za reklamy na legitimní weby.</strong> Pak stačí skutečně málo a můžete naletět nebo si můžete nevědomky do zařízení instalovat infikovaný program.</p>
<div class="pk-content-block pk-block-border-left pk-block-shadows"><strong>Malvertising</strong><br />
je označení reklamy, která odkazuje na malware nebo škodlivou stránku. Útoční pomocí takové reklamy rozšíří svůj škodlivý kód nebo podvod mezi více lidí. Jejich cílem jsou naše data, která mohou prodat na darkwebu, nebo přímo peníze.</div>
<p><iframe title="YouTube video player" src="https://www.youtube.com/embed/LnswtDV4-f0?si=BuxTNh0cVslckOc0" width="560" height="315" frameborder="0" allowfullscreen="allowfullscreen"></iframe></p>
<h2 id="jak-funguje-malvertising-ve-vyhledavacich">Jak funguje malvertising ve vyhledávačích?</h2>
<p>Mezi reklamami ve vyhledávačích lze najít i ty škodlivé. Útočníci obvykle nakupují <a href="https://www.cpomagazine.com/cyber-security/fbi-hackers-are-using-search-engine-ads-for-phishing-and-malware-distribution/">nejlepší reklamní prostor ve vyhledávačích</a>, aby<strong> nalákali potenciální oběti ke kliknutí</strong> na jejich škodlivé reklamy. Často v podvodných inzerátech napodobují známý software či značky.</p>
<p>Příkladem může být třeba reklama ve vyhledávači reklamy Bing vydávající se za službu VPN. Pro kontext Nord VPN je velmi renomovaný poskytovatel služby VPN. To, že podvodníci zneužili právě tuto značku, má svůj důvod.</p>
<figure id="attachment_8876" aria-describedby="caption-attachment-8876" style="width: 479px" class="wp-caption aligncenter"><img fetchpriority="high" decoding="async" class="wp-image-8876 size-full" src="https://dvojklik.cz/wp-content/uploads/2024/09/malvertising-Bing.png" alt="malvertising ve výsledcích vyhledávání v prohlížeči Bing" width="479" height="260" srcset="https://www.dvojklik.cz/wp-content/uploads/2024/09/malvertising-Bing.png 479w, https://www.dvojklik.cz/wp-content/uploads/2024/09/malvertising-Bing-300x163.png 300w, https://www.dvojklik.cz/wp-content/uploads/2024/09/malvertising-Bing-390x212.png 390w" sizes="(max-width: 479px) 100vw, 479px" /><figcaption id="caption-attachment-8876" class="wp-caption-text">Na obrázku vidíte, že adresa URL reklamy vypadala docela podobně jako ta legitimní (jediný rozdíl byl v koncovce, oficiální končí na .com). | Zdroj: <a href="https://www.threatdown.com/blog/bing-ad-for-nordvpn-leads-to-sectoprat/" target="_blank" rel="noopener">Threatdown.com</a></figcaption></figure>
<p>Na obrázku vidíte, že adresa URL reklamy vypadala docela podobně jako ta legitimní (jediný rozdíl byl v koncovce, oficiální končí na .com). | Zdroj: <a href="https://www.threatdown.com/blog/bing-ad-for-nordvpn-leads-to-sectoprat/">Threatdown.com</a></p>
<figure id="attachment_8877" aria-describedby="caption-attachment-8877" style="width: 605px" class="wp-caption aligncenter"><img decoding="async" class="size-full wp-image-8877" src="https://dvojklik.cz/wp-content/uploads/2024/09/malvertising-Bing-2.png" alt="malvertising" width="605" height="587" srcset="https://www.dvojklik.cz/wp-content/uploads/2024/09/malvertising-Bing-2.png 605w, https://www.dvojklik.cz/wp-content/uploads/2024/09/malvertising-Bing-2-300x291.png 300w, https://www.dvojklik.cz/wp-content/uploads/2024/09/malvertising-Bing-2-390x378.png 390w" sizes="(max-width: 605px) 100vw, 605px" /><figcaption id="caption-attachment-8877" class="wp-caption-text">Reklama vedla na stránku, která byla věrnou kopií té skutečné.  Zdroj: <a href="https://www.threatdown.com/blog/bing-ad-for-nordvpn-leads-to-sectoprat/" target="_blank" rel="noopener">Threatdown.com</a></figcaption></figure>
<p>Pokud uživatel kliknul na tlačítko, stáhnul se mu do zařízení <strong>trojský kůň pro vzdálený přístup,</strong> který útočníkům umožňuje převzít kontrolu nad prohlížečem a získávat z něj data.</p>
<p>Podobný příběh se objevil v roce 2024, kdy útočníci využili falešné domény, maskoval i svůj malware  jako <a href="https://www.zscaler.com/blogs/security-research/malvertising-campaign-targeting-it-teams-madmxshell">software pro skenování IP</a> adres a zneužili reklamy ve vyhledávání ke zvýšení viditelnosti svých škodlivých stránek.</p>
<p>Uživatelé vyhledávající konkrétní produkty se mohli setkat s dalšími takovými případy. Je nutná opravdu velká dávka pozornosti, aby uživatel rozpoznal podvod od legitimní nabídky.</p>
<h2 id="blokovani-podvodne-reklamy-je-jako-hra-na-kocku-a-mys">Blokování podvodné reklamy je jako hra na kočku a myš</h2>
<p>V roce 2023 společnost Google zablokovala nebo <a href="https://blog.google/products/ads-commerce/google-ads-safety-report-2023/" target="_blank" rel="noopener">odstranila více než 1 miliardu reklam</a>, které zneužívaly její reklamní síť, včetně reklam propagujících škodlivý software.</p>
<p>Oběťmi se stali i další zadavatelé online reklamy. Vzhledem k povaze reklamního byznysu mohou útočníci <strong>manipulovat s celým reklamním řetězcem</strong> a ohrozit ho několika možnými způsoby &#8211; od nákupu reklam a vydávání se za poskytovatele vyhledávače až po hackování webových stránek a reklamních serverů.</p>
<p>Zatímco poskytovatelé vyhledávačů <strong>neustále odstraňují škodlivé reklamy</strong> nebo webové stránky z výsledků vyhledávání, hackeři jsou vytrvalí a stále nacházejí nové způsoby, jak všechna bezpečnostní opatření na filtrování obsahu obcházet. Bohužel v tomto ohledu mnohdy bezpečnostní opatření a moderování obsahu je o krok pozadu.</p>
<h3 id="dalsi-formy-malvertisingu">Další formy malvertisingu</h3>
<p>Škodlivé reklamy ve vyhledávání představují jen jednu z forem zneužívání reklam. Mezi další typy patří šíření škodlivých reklamních bannerů na legitimních webových stránkách, z nichž některé dokonce skrývají škodlivý kód pomocí <a href="https://www.welivesecurity.com/2016/12/06/readers-popular-websites-targeted-stealthy-stegano-exploit-kit-hiding-pixels-malicious-ads/">steganografie</a> (metoda, která umožní skrývat škodlivý  kód přím v obrázku).</p>
<p>Se škodlivými reklamami se lze setkat také prostřednictvím hypertextových odkazů v textu, vyskakovacích oken a dalších. Jak funguje malvaretising na sociálních sítích si <a href="https://dvojklik.cz/kupon-na-20-tisic-za-sdileni-jak-funguje-malvertising-na-socialnich-sitich/" target="_blank" rel="noopener">můžete přečíst zde.</a></p>
					
<form
	  name="cz_b2c_mql_ebook_podvody"
		target="_blank"
		method="post"
		id="se-webform-232"		
 target="_self" class="se-webform-232 se-webform" action="https://app.smartemailing.cz/public/web-forms-v2/display-form/15587-tvjzsu040h9uuyqxqsnauutulknl9q6g1rzany0xsli9xos6vzl1gn0jpcgqhf2vxbphv4z5y9cezfe9d0ijoldxks30pzpgzn0a">

<img decoding="async" class="form-box__ebook-cover" src="https://dvojklik.cz/wp-content/uploads/2024/04/ebook-jak-se-chranit-pred-hrozbami.png" />
	<div class="se-webform-inner">
		<div class="se-header">
			<h3 id="e-book-podvody-na-internetu">
				E-book: Podvody na internetu
			</h3>
		</div>

		<div class="se-body">
			<div>
	<div>
		<label hidden for="frm-webFormHtmlRenderer-webFormForm-fields-df_emailaddress" class="se-label se-required">E-mailová adresa</label>
		<input type="text" placeholder="E-mailová adresa" name="fields[df_emailaddress]" data-emailaddress="1" id="frm-webFormHtmlRenderer-webFormForm-fields-df_emailaddress" required data-nette-rules='[{"op":":filled","msg":"E-mailová adresa je povinné pole."},{"op":":email","msg":"E-mailová adresa je povinné pole."},{"op":"SE20\\Validators\\TypesFormValidator::validateEmailAddress","msg":"E-mailová adresa je povinné pole."}]'>
	</div>
	<div class="se-license-agreement">
		<label class="se-checkbox" for="frm-webFormHtmlRenderer-webFormForm-fields-cf_398">
			<span>
				<input type="checkbox" name="fields[cf_398]" id="frm-webFormHtmlRenderer-webFormForm-fields-cf_398">
			</span>
			<span>
			Chci dostávat aktuální informace o hrozbách, produktech a službách ESETu.
				&nbsp;			</span>
		</label>
	</div>
	<div hidden>
		<label for="frm-webFormHtmlRenderer-webFormForm-fields-cf_407" class="se-label ">Parametry</label>
		<input type="text" name="fields[cf_407]" id="frm-webFormHtmlRenderer-webFormForm-fields-cf_407" value="utm_source=dvojklik&utm_medium=form&utm_campaign=podvody-na-internetu&utm_content=prirucka">
	</div>

			</div>
		</div>

		<div class="se-submit">
			<button type="submit" name="_submit" value="Chci příručku">Chci e-book</button>
		</div>

	</div>

<input type="hidden" name="referrer" id="se-ref-field-id" value=""><input type="hidden" name="sessionid" id="se-sessionid-field" value=""><input type="hidden" name="sessionUid" id="se-sessionUid-field" value=""><input type="hidden" name="_do" value="webFormHtmlRenderer-webFormForm-submit"></form>

<style type="text/css">
#main .entry-content [id^="se-webform-232"] {
    max-width: 500px;	
    margin: 2rem auto !important;
    border-radius: 15px; 
	position: relative;	
	padding: 30px;
	padding-right: 80px;
	background: #eee;
}
	.entry-content [id^="se-webform-232"]  h3 {
		color: #0096a1 !important;
	}
	
	.entry-content [id^="se-webform-232"] .se-submit button {
			background-color: #0096a1 !important;
	}
	
  .entry-content [id^="se-webform-232"] .form-box__btn:hover {background-color: #006567 !important;}
  .entry-content [id^="se-webform-232"] .form-box__ebook-cover {
		position: absolute; width: 180px; right: -100px; transform: rotateZ(5deg); top: 50px; max-width: 180px;
	}
  @media screen and (max-width: 600px) {	  
	  #main .entry-content [id^="se-webform-232"]  {
		  padding-right: 30px;
	  }
    .entry-content [id^="se-webform-232"] .form-box__ebook-cover {
		display: block;
    position: relative;
    transform: translateX(-50%);
    top: auto;
    left: 50%;
    margin-top: 1rem;}  
  }  	
	
	.entry-content [id^="se-webform-232"] .se-license-agreement {
		margin-top: 1rem;
	}
	
</style>
<script>
	var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
    function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
    return new (P || (P = Promise))(function (resolve, reject) {
        function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
        function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
        function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
        step((generator = generator.apply(thisArg, _arguments || [])).next());
    });
};
var __generator = (this && this.__generator) || function (thisArg, body) {
    var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
    return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
    function verb(n) { return function (v) { return step([n, v]); }; }
    function step(op) {
        if (f) throw new TypeError("Generator is already executing.");
        while (_) try {
            if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
            if (y = 0, t) op = [op[0] & 2, t.value];
            switch (op[0]) {
                case 0: case 1: t = op; break;
                case 4: _.label++; return { value: op[1], done: false };
                case 5: _.label++; y = op[1]; op = [0]; continue;
                case 7: op = _.ops.pop(); _.trys.pop(); continue;
                default:
                    if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
                    if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
                    if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
                    if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
                    if (t[2]) _.ops.pop();
                    _.trys.pop(); continue;
            }
            op = body.call(thisArg, _);
        } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
        if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
    }
};
var CompositionBehaviorLoader = (function () {
    function CompositionBehaviorLoader() {
        this.popupBehaviorLoader = new PopupBehaviorLoader();
        this.slideupBehaviorLoader = new SlideupBehaviorLoader();
    }
    CompositionBehaviorLoader.prototype.init = function (config, form) {
        var _this = this;
        window.setTimeout(function () {
            if (document.readyState !== 'loading') {
                return _this.load(config, form);
            }
            else {
                document.addEventListener('DOMContentLoaded', function () { return __awaiter(_this, void 0, void 0, function () {
                    return __generator(this, function (_a) {
                        switch (_a.label) {
                            case 0: return [4, this.load(config, form)];
                            case 1:
                                _a.sent();
                                return [2];
                        }
                    });
                }); });
            }
        }, 1);
    };
    CompositionBehaviorLoader.prototype.load = function (config, form) {
        return __awaiter(this, void 0, void 0, function () {
            var composition;
            return __generator(this, function (_a) {
                composition = config.composition;
                if (composition === 'default') {
                    return [2, new Promise(function (resolve) {
                            resolve();
                        })];
                }
                if (composition === 'popup') {
                    return [2, this.popupBehaviorLoader.load(config, form)];
                }
                if (composition === 'slide-up') {
                    return [2, this.slideupBehaviorLoader.load(config)];
                }
                return [2, new Promise(function (resolve) {
                        console.log('unknown composition: ' + composition);
                        resolve();
                    })];
            });
        });
    };
    return CompositionBehaviorLoader;
}());
var CompositionCssLoader = (function () {
    function CompositionCssLoader() {
    }
    CompositionCssLoader.loadCompositionCss = function (config) {
        return __awaiter(this, void 0, void 0, function () {
            var cssId, link, result;
            return __generator(this, function (_a) {
                cssId = 'se-composition-' + config.composition + '-css';
                if (document.getElementById(cssId)) {
                    return [2, new Promise(function (resolve) {
                            resolve();
                        })];
                }
                link = document.createElement('link');
                link.id = cssId;
                link.rel = 'stylesheet';
                link.type = 'text/css';
                link.href = config.rootUrl + '/web-forms-v2/composition-' + config.composition + '.css';
                link.media = 'all';
                result = new Promise(function (resolve) {
                    link.onload = function () {
                        resolve();
                    };
                });
                document.getElementsByTagName('head')[0].appendChild(link);
                return [2, result];
            });
        });
    };
    return CompositionCssLoader;
}());
var PopupBehaviorLoader = (function () {
    function PopupBehaviorLoader() {
    }
    PopupBehaviorLoader.prototype.load = function (config, form) {
        return __awaiter(this, void 0, void 0, function () {
            return __generator(this, function (_a) {
                switch (_a.label) {
                    case 0:
                        if (PopupBehaviorLoader.isBlocked(config)) {
                            return [2, new Promise(function (resolve) {
                                    resolve();
                                })];
                        }
                        return [4, CompositionCssLoader.loadCompositionCss(config)];
                    case 1:
                        _a.sent();
                        this.setupToggler(config);
                        if (config.expiration.method === 'submitCookie') {
                            form.addEventListener('submit', function () {
                                PopupBehaviorLoader.setBlockingCookie(config, -1);
                                PopupBehaviorLoader.setBlockingCookie(config, 365);
                                return false;
                            });
                        }
                        return [2, new Promise(function (resolve) {
                                resolve();
                            })];
                }
            });
        });
    };
    PopupBehaviorLoader.prototype.setupToggler = function (config) {
        var containerDivId = '#se-webform-popup-'
            + config.formGuid;
        var modal = document.querySelector(containerDivId + " .se-webform-v2-modal");
        var closeButton = document.querySelector(containerDivId + " .se-webform-v2-close-button");
        var toggler = function () {
            modal.style.display = 'block';
            var displayed = modal.classList.toggle("se-webform-v2-show-modal");
            if (!displayed) {
                return;
            }
            if (config.expiration.method === 'cookie') {
                PopupBehaviorLoader.setBlockingCookie(config, config.expiration.value);
            }
            else {
                PopupBehaviorLoader.setBlockingCookie(config, null);
            }
        };
        var windowModalClose = function (event) {
            if (event.target === modal) {
                toggler();
            }
        };
        if (config.trigger.name === 'none') {
            toggler();
        }
        else if (config.trigger.name === 'delay') {
            window.setTimeout(toggler, Number(config.trigger.value).valueOf() * 1000);
        }
        else if (config.trigger.name === 'scroll') {
            document.addEventListener('scroll', function () {
                if (modal.hasAttribute('data-toggled')) {
                    return;
                }
                if (ScrollDisplayDecider.shouldBeDisplayed(config)) {
                    modal.setAttribute('data-toggled', '1');
                    toggler();
                }
            });
        }
        closeButton.addEventListener("click", toggler);
        window.addEventListener("click", windowModalClose);
    };
    PopupBehaviorLoader.isMobile = function () {
        if (navigator.userAgent.match(/Android/i)
            || navigator.userAgent.match(/webOS/i)
            || navigator.userAgent.match(/iPhone/i)
            || navigator.userAgent.match(/iPad/i)
            || navigator.userAgent.match(/iPod/i)
            || navigator.userAgent.match(/BlackBerry/i)
            || navigator.userAgent.match(/Windows Phone/i)) {
            return true;
        }
        return false;
    };
    PopupBehaviorLoader.hidePopupOnMobile = function (config) {
        return (PopupBehaviorLoader.isMobile() && config.hidePopupOnMobile);
    };
    PopupBehaviorLoader.isBlocked = function (config) {
        if (PopupBehaviorLoader.isPreview(config)) {
            return false;
        }
        if (PopupBehaviorLoader.hidePopupOnMobile(config)) {
            return true;
        }
        var webFormBlockerCookieName = PopupBehaviorLoader.getBlockingCookieName(config);
        var result = new RegExp('(?:^|; )'
            + encodeURIComponent(webFormBlockerCookieName)
            + '=([^;]*)').exec(document.cookie);
        var cookieValue = result ? result[1] : null;
        return cookieValue === 'set';
    };
    PopupBehaviorLoader.isPreview = function (config) {
        return window.location.href.startsWith(config.rootUrl);
    };
    PopupBehaviorLoader.getBlockingCookieName = function (config) {
        return 'se-webform-session-' + config.formGuid;
    };
    PopupBehaviorLoader.setBlockingCookie = function (config, days) {
        if (PopupBehaviorLoader.isPreview(config)) {
            return;
        }
        var expires = '';
        if (days !== null) {
            var date = new Date();
            date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));
            expires = "; expires=" + date.toUTCString();
        }
        document.cookie
            = PopupBehaviorLoader.getBlockingCookieName(config)
                + "="
                + 'set'
                + expires
                + '; path=/';
    };
    return PopupBehaviorLoader;
}());
var ScrollDisplayDecider = (function () {
    function ScrollDisplayDecider() {
    }
    ScrollDisplayDecider.shouldBeDisplayed = function (config) {
        var isAbsolute = config.trigger.value.indexOf('%') === -1;
        if (isAbsolute) {
            var scrolledTop = document.documentElement.scrollTop || document.body.scrollTop;
            return scrolledTop >= Number(config.trigger.value).valueOf();
        }
        else {
            var h = document.documentElement;
            var b = document.body;
            var percent = (h.scrollTop || b.scrollTop)
                / ((h.scrollHeight || b.scrollHeight) - h.clientHeight)
                * 100;
            return percent >= Number(config.trigger.value).valueOf();
        }
    };
    return ScrollDisplayDecider;
}());
var SlideupBehaviorLoader = (function () {
    function SlideupBehaviorLoader() {
    }
    SlideupBehaviorLoader.prototype.load = function (config) {
        return __awaiter(this, void 0, void 0, function () {
            return __generator(this, function (_a) {
                switch (_a.label) {
                    case 0: return [4, CompositionCssLoader.loadCompositionCss(config)];
                    case 1:
                        _a.sent();
                        this.setupToggler(config);
                        return [2, new Promise(function (resolve) {
                                resolve();
                            })];
                }
            });
        });
    };
    SlideupBehaviorLoader.prototype.setupToggler = function (config) {
        var containerDivId = 'se-webform-slideup-'
            + config.formGuid;
        var trigger = document.querySelector('#se-webform-slideup-trigger-' + config.formGuid);
        var container = document.getElementById(containerDivId);
        var availableHeight = screen.availHeight * 0.8;
        if (container.clientHeight >= availableHeight) {
            container.style.height = availableHeight + 'px';
            container.style.overflowY = 'scroll';
        }
        var formCursor = container.clientHeight;
        container.style.bottom = '-' + formCursor + 'px';
        var openId = null;
        function formFrameShow() {
            trigger.classList.toggle('hidden', true);
            formCursor = Math.max(0, formCursor - 20);
            container.style.bottom = '-' + formCursor + 'px';
            if (formCursor <= 0) {
                window.clearInterval(openId);
            }
        }
        trigger.addEventListener('click', function () {
            openId = window.setInterval(formFrameShow, 1);
        });
        if (config.trigger.name === 'delay') {
            var toggler = function () {
                trigger.classList.toggle('hidden', false);
            };
            trigger.classList.toggle('hidden', true);
            window.setTimeout(toggler, Number(config.trigger.value).valueOf() * 1000);
        }
        var closeButton = container.querySelector('.se-webform-v2-slideup-close-button');
        var closeId = null;
        function formFrameHide() {
            formCursor = Math.min(container.clientHeight, formCursor + 20);
            container.style.bottom = '-' + formCursor + 'px';
            if (formCursor >= container.clientHeight) {
                window.clearInterval(closeId);
                trigger.classList.toggle('hidden', false);
            }
        }
        closeButton.addEventListener('click', function () {
            closeId = window.setInterval(formFrameHide, 1);
        });
    };
    return SlideupBehaviorLoader;
}());
var ValidationLoader = (function () {
    function ValidationLoader() {
    }
    ValidationLoader.prototype.init = function (config, form) {
        var _this = this;
        window.setTimeout(function () {
            if (document.readyState !== 'loading') {
                return _this.load(config, form);
            }
            else {
                document.addEventListener('DOMContentLoaded', function () { return __awaiter(_this, void 0, void 0, function () {
                    return __generator(this, function (_a) {
                        switch (_a.label) {
                            case 0: return [4, this.load(config, form)];
                            case 1:
                                _a.sent();
                                return [2];
                        }
                    });
                }); });
            }
        }, 1);
    };
    ValidationLoader.prototype.load = function (config, form) {
        return __awaiter(this, void 0, void 0, function () {
            var ready;
            return __generator(this, function (_a) {
                switch (_a.label) {
                    case 0:
                        ready = [
                            this.loadFormValidator(config),
                            this.loadEmailCorrectionSuggesterJs(config),
                            this.loadEmailCorrectionSuggesterCss(config)
                        ];
                        return [4, Promise.all(ready)];
                    case 1:
                        _a.sent();
                        Nette.initForm(form);
                        this.initAutoComplete(config, form);
                        return [2];
                }
            });
        });
    };
    ValidationLoader.prototype.initAutoComplete = function (config, form) {
        new autoComplete({
            selector: form.querySelector('input[data-emailaddress="1"]'),
            minChars: 5,
            delay: 500,
            source: function (term, response) {
                return __awaiter(this, void 0, void 0, function () {
                    var xhr;
                    return __generator(this, function (_a) {
                        xhr = new XMLHttpRequest();
                        xhr.open('GET', config.rootUrl
                            + '/api/v3/email-correction-suggester?emailaddress='
                            + term);
                        xhr.onload = function () {
                            if (xhr.status === 200) {
                                var suggestion = JSON.parse(xhr.responseText).data.suggestion;
                                if (suggestion !== '') {
                                    response([suggestion]);
                                }
                            }
                        };
                        xhr.send();
                        return [2];
                    });
                });
            }
        });
    };
    ValidationLoader.prototype.loadEmailCorrectionSuggesterCss = function (config) {
        return __awaiter(this, void 0, void 0, function () {
            var cssId, link, result;
            return __generator(this, function (_a) {
                cssId = 'se-autocomplete-css';
                if (document.getElementById(cssId)) {
                    return [2, new Promise(function (resolve) {
                            resolve();
                        })];
                }
                link = document.createElement('link');
                link.id = cssId;
                link.rel = 'stylesheet';
                link.type = 'text/css';
                link.href = config.rootUrl + '/web-forms-v2/auto-complete.css';
                link.media = 'all';
                result = new Promise(function (resolve) {
                    link.onload = function () {
                        resolve();
                    };
                });
                document.getElementsByTagName('head')[0].appendChild(link);
                return [2, result];
            });
        });
    };
    ValidationLoader.prototype.loadEmailCorrectionSuggesterJs = function (config) {
        return __awaiter(this, void 0, void 0, function () {
            var script, result;
            return __generator(this, function (_a) {
                if (typeof autoComplete !== 'undefined') {
                    return [2, new Promise(function (resolve) {
                            resolve();
                        })];
                }
                script = document.createElement('script');
                script.src = config.rootUrl + '/web-forms-v2/auto-complete.min.js';
                script.async = true;
                script.defer = true;
                result = new Promise(function (resolve) {
                    script.onload = function () {
                        resolve();
                    };
                });
                document.head.appendChild(script);
                return [2, result];
            });
        });
    };
    ValidationLoader.prototype.loadFormValidator = function (config) {
        return __awaiter(this, void 0, void 0, function () {
            var script, result;
            return __generator(this, function (_a) {
                if (typeof Nette !== 'undefined') {
                    return [2, new Promise(function (resolve) {
                            resolve();
                        })];
                }
                Nette = {
                    noInit: true,
                    initForm: function () {
                    }
                };
                script = document.createElement('script');
                script.src = config.rootUrl + '/web-forms-v2/netteForms.min.js';
                script.async = true;
                script.defer = true;
                result = new Promise(function (resolve) {
                    script.onload = function () {
                        resolve();
                    };
                });
                document.head.appendChild(script);
                return [2, result];
            });
        });
    };
    return ValidationLoader;
}());
var WebFormLoader = (function () {
    function WebFormLoader() {
        this.validationLoader = new ValidationLoader();
        this.compositionBehaviorLoader = new CompositionBehaviorLoader();
    }
    WebFormLoader.prototype.run = function (config) {
        var _this = this;
        window.setTimeout(function () {
            var script = document.createElement('script');
            script.onload = function () {
                if (document.readyState !== 'loading') {
                    return _this.render(config);
                }
                else {
                    document.addEventListener('DOMContentLoaded', function () { return __awaiter(_this, void 0, void 0, function () {
                        return __generator(this, function (_a) {
                            switch (_a.label) {
                                case 0: return [4, this.render(config)];
                                case 1:
                                    _a.sent();
                                    return [2];
                            }
                        });
                    }); });
                }
            };
            script.src = 'https://cdn.polyfill.io/v2/polyfill.min.js?features=es6';
            document.head.appendChild(script);
        }, 1);
    };
    WebFormLoader.prototype.loadDefaultValuesFromUrl = function (form) {
        var _a;
        var urlParams = (new URL(document.location.toString())).searchParams;
        var dfInputs = Array.from(form.querySelectorAll('input[name^="fields[df_"]'));
        for (var i in dfInputs) {
            var input = dfInputs[i];
            var inputName = input.name;
            var exec = /fields\[(\w+)\]/i.exec(inputName);
            var fieldName = (_a = exec[1]) !== null && _a !== void 0 ? _a : null;
            if (fieldName === null) {
                continue;
            }
            var urlParam = urlParams.get('_se_' + fieldName);
            if (urlParam === null) {
                continue;
            }
            try {
                input.setAttribute('value', window.atob(urlParam));
            }
            catch (e) {
                console.log(e);
            }
        }
    };
    WebFormLoader.prototype.render = function (config) {
        return __awaiter(this, void 0, void 0, function () {
            var formHtml, form;
            return __generator(this, function (_a) {
                switch (_a.label) {
                    case 0: return [4, this.loadForm(config)];
                    case 1:
                        formHtml = _a.sent();
                        form = WebFormLoader.insertFormToDom(config, formHtml);
                        this.setupTrackingInputsSession();
                        return [4, Promise.all([
                                this.compositionBehaviorLoader.init(config, form),
                                this.validationLoader.init(config, form)
                            ])];
                    case 2:
                        _a.sent();
                        this.loadDefaultValuesFromUrl(form);
                        return [2];
                }
            });
        });
    };
    WebFormLoader.prototype.setupTrackingInputsSession = function () {
        var w = window;
        w._ssaq = w._ssaq || [];
        w._ssaq.push(['getSessionId', function (sessionId) {
                document.getElementById('se-sessionid-field').value = sessionId;
                document.getElementById('se-sessionUid-field').value = sessionId;
            }]);
    };
    WebFormLoader.insertFormToDom = function (config, formHtml) {
        var node = document.createElement("div");
        node.innerHTML = formHtml;
        if (config.composition === 'slide-up' || config.composition === 'popup') {
            document.body.appendChild(node);
        }
        else {
            var scriptTag = document.getElementById('se-webformScriptLoader-'
                + config.accountId
                + '-'
                + config.formGuid);
            if (scriptTag === null) {
                scriptTag = document.getElementById('se-webformScriptLoader-'
                    + config.formGuid);
            }
            scriptTag.parentNode.insertBefore(node, scriptTag.nextSibling);
        }
        return node.getElementsByTagName('form')[0];
    };
    WebFormLoader.prototype.loadForm = function (config) {
        return __awaiter(this, void 0, void 0, function () {
            var xhr, result;
            return __generator(this, function (_a) {
                xhr = new XMLHttpRequest();
                xhr.open('GET', config.rootUrl
                    + '/public/web-forms-v2/load-form-html-wrapper/'
                    + config.accountId
                    + '-'
                    + config.formGuid);
                result = new Promise(function (resolve) {
                    xhr.onload = function () {
                        if (xhr.status === 200) {
                            resolve(xhr.responseText);
                        }
                        else {
                            resolve('');
                        }
                    };
                });
                xhr.send();
                return [2, result];
            });
        });
    };
    return WebFormLoader;
}());

	var loader = new WebFormLoader();
	var config = {
		rootUrl: "https://app.smartemailing.cz/",
		accountId: 15587,
		hidePopupOnMobile: true,
		formGuid: "tvjzsu040h9uuyqxqsnauutulknl9q6g1rzany0xsli9xos6vzl1gn0jpcgqhf2vxbphv4z5y9cezfe9d0ijoldxks30pzpgzn0a",
		composition: "default",
		trigger: {
			name: "none",
			value: null
		},
		expiration: {
			method: "submitCookie",
			value: 30
		}
	};
	var form = document.getElementById('se-webform-' + 232);
	loader.validationLoader.init(
		config,
		form
	);
	loader.compositionBehaviorLoader.init(
		config,
		form
	)
	loader.loadDefaultValuesFromUrl(
		form
	);
</script>

<h2 id="jak-se-chranit-pred-skodlivou-reklamou">Jak se chránit před škodlivou reklamou</h2>
<p>I před malvertisingem se můžete chránit.</p>
<ol>
<li>Prvním krokem ke zvýšení bezpečnosti je vždy to, že<strong> víte o daném riziku</strong>. Už jen to, že jste si přečetli tento článek, je jedním z preventivních opatření, abyste se nestali obětí.</li>
<li>Používejte <strong>renomovaný blokátor reklam</strong>. Pokud se vám žádné reklamy nezobrazí, nemohou vás ani ty infikované ohrozit. Blokátor samozřejmě není všemocný. Neumí zablokovat například sponzorované příspěvky na sítích nebo ve srovnávačích cen.</li>
<li>Dávejte si <strong>pozor na různá vyskakovací okna</strong>, žádosti o povolení a další nežádoucí chování prohlížeče.</li>
<li><strong>Aktualizujte svá zařízení a programy</strong> v něm. Některé zranitelnosti lze snadno zneužít a usnadnit tak práci hackerům.</li>
<li>Používejte <a href="https://www.eset.com/cz/domacnosti/">silné bezpečnostní řešení</a> s ochranou v reálném čase.</li>
<li><strong>Buďte</strong> <strong>skeptičtí</strong>. Zejména pokud reklama nabízí drahý produkt za nezvykle nízkou cenu, pohádkové zbohatnutí nebo jiný zázrak na počkání.</li>
<li>Než zadáte na webové stránce svoje osobní údaje nebo údaje z karty, zkontrolujte, zda se jedná skutečně oficiální stránku.</li>
</ol>
<p>Malvertising ve vyhledávačích je pro kyberzločince jen další cestou k šíření hrozeb. Útočníci umí být velmi kreativní. Buďte ostražití a dávejte pozor, protože i ta nejlákavější nabídka může někdy skrývat nečekané nebezpečí.</p>
]]></content:encoded>
					
		
		
		<media:content xmlns:media="http://search.yahoo.com/mrss/" medium="image" type="image/jpeg" url="https://www.dvojklik.cz/wp-content/uploads/2024/09/malvertising-240x180.jpg" width="240" height="180" ></media:content>	</item>
	</channel>
</rss>
