;

Povolit, či nepovolit nepracovní aktivity na webu?

16. 9. 2010
Doba čtení: 4 minuty

Sdílet

Zatímco ještě před pár lety byly největším nebezpečím viry a škodlivé kódy doručované do počítačů přes e-mail – vzpomeňme si například na slavný mail „I love you“ – dnes je jednoznačně největším zdrojem všeho špatného web.

Pro podnikové experty na IT bezpečnost to znamená soustředit své hlavní úsilí na minimalizaci škod způsobených často bezhlavým surfováním zaměstnanců po webu. Silným nástrojem podporujícím toto úsilí je webový monitoring, tedy sledování přístupu uživatelů na web.

Problematika webového monitoringu je dnes řešena nejčastěji instalací softwaru na centrální gateway pro přístup do inter­netu, což je mnohem efektivnější varianta než instalace softwaru na jednotlivých klientech – jak z hlediska účinnosti, tak správy systému. Jednou z klíčových rolí webového monitoringu je zabránit importu škodlivých věcí do podniku.

Nicméně existuje i druhá, neméně důležitá role monitoringu, a tou je produktivita práce. Všichni víme, že nelze očekávat, že zaměstnanci tráví osm hodin v práci jen a pouze pracovními aktivitami. Otázkou spíše je, jakou dobu a po jakých webech v rámci svých nepracovních aktivit brouzdají. Těchto webů je stále více a například erotické stránky, které bývaly největším obsahovým tahákem na internetu, mají dnes velkou konkurencí.

Politika webového monitoringu

Úkolem pracovníků bezpečnosti je pak vymezit weby, na které je povolen přístup a na které ne. Jednou z možností je, že administrátor rozhodne a manuálně zakáže nežádané weby. To je ale vzhledem k obrovskému množství stránek velmi pracné, proto se doporučuje spolehnout se na software s databází tzv. kategorií – erotických stránek, sázení, on-line her, nakupování atd.

Jakou politiku zvolit při sledování webového přístupu? Obecně lze tyto přístupy rozdělit do dvou oblastí. První z nich – restriktivní – je příjemný pro bezpečnostní manažery, tj. zakázat všechny kategorie a pak postupně „povolovat šrouby“. Jedná se zřejmě o nejbezpečnější metodu, avšak klade velké nároky na IT pracovníky (zejména z velkých společností), kteří musí spoustě zaměstnanců vysvětlovat, proč nemají přístup na požadované stránky. A samozřejmě velké nároky na toho, kdo rozhoduje o přístupu na web. Často může tento přístup navíc po určitou dobu paralyzovat běžný provoz firmy.

Druhá metoda spočívá ve sběru informací o aktuálním přístupu zaměstnanců na web a po určité době sledování dojde k vyhodnocení a případně následným akcím. Výhodou tohoto řešení je fakt, že získáme reálný obrázek a relevantní data o dané problematice, a pak máme možnost uvážlivě rozhodnout o dalším postupu. Doporučuje se spíše než reagovat plošně raději zvolit adresnější přístup směrem k lidem, jejichž nepracovní brouzdání po webu překračuje akceptovatelnou míru.

Nepracovní brouzdání ano, či ne?

Podle naší zkušeností se v každé společnosti najde na každých 25 zaměstnanců minimálně jeden pracovník, který tráví šest a více hodin denně neproduktivní činností na webu. Ale pozor, nelze hodnotit člověka jen podle čísel dokumen­tujících jeho nepracovní činnost – stává se i to, že právě někdo z největších „brouzdalů“ mívá ve firmě nejlepší pracovní a výkonnostní výsledky!

Takže povolit nepracovní přístup k webu, či ne? Předně je nutno říci, že pracovník rozhodující o webovém přístupu by měl mít alespoň obecný technologický přehled o této problematice, protože zde nejsou důležitá až tak čísla jako spíše jejich interpretace. I když podle čísel daný pracovník strávil nepracovní aktivitou (například stahováním obsahu) značný čas na webu, neznamená, že se nemohl paralelně věnovat svým pracovním úkolům. Dalším faktem je, že pravidelné krátké nepracovní aktivity vedou k lepším výsledkům než osm hodin monotónní práce v kuse.

Proto se doporučuje na základě dat získaných z webového monitoringu citlivě posoudit každý jednotlivý případ a soustředit se spíše na eliminaci excesů – např. v případě, když někdo tráví více než polovinu pracovní doby na webu či věnuje svůj čas stránkám pro dospělé a obtěžuje tím své okolí apod.

 

Autor působí jako technický ředitel GFI Software.

'; document.getElementById('preroll-iframe').onload = function () { setupIframe(); } prerollContainer = document.getElementsByClassName('preroll-container-iframe')[0]; } function setupIframe() { prerollDocument = document.getElementById('preroll-iframe').contentWindow.document; let el = prerollDocument.createElement('style'); prerollDocument.head.appendChild(el); el.innerText = "#adContainer>div:nth-of-type(1),#adContainer>div:nth-of-type(1) > iframe { width: 99% !important;height: 99% !important;max-width: 100%;}#videoContent,body{ width:100vw;height:100vh}body{ font-family:'Helvetica Neue',Arial,sans-serif}#videoContent{ overflow:hidden;background:#000}#adMuteBtn{ width:35px;height:35px;border:0;background:0 0;display:none;position:absolute;fill:rgba(230,230,230,1);bottom:20px;right:25px}"; videoContent = prerollDocument.getElementById('contentElement'); videoContent.style.display = 'none'; videoContent.volume = 1; videoContent.muted = false; const playPromise = videoContent.play(); if (playPromise !== undefined) { playPromise.then(function () { console.log('PREROLL sound allowed'); // setUpIMA(true); videoContent.volume = 1; videoContent.muted = false; setUpIMA(); }).catch(function () { console.log('PREROLL sound forbidden'); videoContent.volume = 0; videoContent.muted = true; setUpIMA(); }); } } function setupDimensions() { prerollWidth = Math.min(iinfoPrerollPosition.offsetWidth, 480); prerollHeight = Math.min(iinfoPrerollPosition.offsetHeight, 320); } function setUpIMA() { google.ima.settings.setDisableCustomPlaybackForIOS10Plus(true); google.ima.settings.setLocale('cs'); google.ima.settings.setNumRedirects(10); // Create the ad display container. createAdDisplayContainer(); // Create ads loader. adsLoader = new google.ima.AdsLoader(adDisplayContainer); // Listen and respond to ads loaded and error events. adsLoader.addEventListener( google.ima.AdsManagerLoadedEvent.Type.ADS_MANAGER_LOADED, onAdsManagerLoaded, false); adsLoader.addEventListener( google.ima.AdErrorEvent.Type.AD_ERROR, onAdError, false); // An event listener to tell the SDK that our content video // is completed so the SDK can play any post-roll ads. const contentEndedListener = function () { adsLoader.contentComplete(); }; videoContent.onended = contentEndedListener; // Request video ads. const adsRequest = new google.ima.AdsRequest(); adsRequest.adTagUrl = iinfoVastUrls[iinfoVastUrlIndex]; console.log('Preroll advert: ' + iinfoVastUrls[iinfoVastUrlIndex]); videoContent.muted = false; videoContent.volume = 1; // Specify the linear and nonlinear slot sizes. This helps the SDK to // select the correct creative if multiple are returned. // adsRequest.linearAdSlotWidth = prerollWidth; // adsRequest.linearAdSlotHeight = prerollHeight; adsRequest.nonLinearAdSlotWidth = 0; adsRequest.nonLinearAdSlotHeight = 0; adsLoader.requestAds(adsRequest); } function createAdDisplayContainer() { // We assume the adContainer is the DOM id of the element that will house // the ads. prerollDocument.getElementById('videoContent').style.display = 'none'; adDisplayContainer = new google.ima.AdDisplayContainer( prerollDocument.getElementById('adContainer'), videoContent); } function unmutePrerollAdvert() { adVolume = !adVolume; if (adVolume) { adsManager.setVolume(0.3); prerollDocument.getElementById('adMuteBtn').innerHTML = ''; } else { adsManager.setVolume(0); prerollDocument.getElementById('adMuteBtn').innerHTML = ''; } } function onAdsManagerLoaded(adsManagerLoadedEvent) { // Get the ads manager. const adsRenderingSettings = new google.ima.AdsRenderingSettings(); adsRenderingSettings.restoreCustomPlaybackStateOnAdBreakComplete = true; adsRenderingSettings.loadVideoTimeout = 12000; // videoContent should be set to the content video element. adsManager = adsManagerLoadedEvent.getAdsManager(videoContent, adsRenderingSettings); // Add listeners to the required events. adsManager.addEventListener(google.ima.AdErrorEvent.Type.AD_ERROR, onAdError); adsManager.addEventListener( google.ima.AdEvent.Type.CONTENT_PAUSE_REQUESTED, onContentPauseRequested); adsManager.addEventListener( google.ima.AdEvent.Type.CONTENT_RESUME_REQUESTED, onContentResumeRequested); adsManager.addEventListener( google.ima.AdEvent.Type.ALL_ADS_COMPLETED, onAdEvent); // Listen to any additional events, if necessary. adsManager.addEventListener(google.ima.AdEvent.Type.LOADED, onAdEvent); adsManager.addEventListener(google.ima.AdEvent.Type.STARTED, onAdEvent); adsManager.addEventListener(google.ima.AdEvent.Type.COMPLETE, onAdEvent); playAds(); } function playAds() { // Initialize the container. Must be done through a user action on mobile // devices. videoContent.load(); adDisplayContainer.initialize(); // setupDimensions(); try { // Initialize the ads manager. Ad rules playlist will start at this time. adsManager.init(1920, 1080, google.ima.ViewMode.NORMAL); // Call play to start showing the ad. Single video and overlay ads will // start at this time; the call will be ignored for ad rules. adsManager.start(); // window.addEventListener('resize', function (event) { // if (adsManager) { // setupDimensions(); // adsManager.resize(prerollWidth, prerollHeight, google.ima.ViewMode.NORMAL); // } // }); } catch (adError) { // An error may be thrown if there was a problem with the VAST response. // videoContent.play(); } } function onAdEvent(adEvent) { const ad = adEvent.getAd(); console.log('Preroll event: ' + adEvent.type); switch (adEvent.type) { case google.ima.AdEvent.Type.LOADED: if (!ad.isLinear()) { videoContent.play(); } prerollDocument.getElementById('adContainer').style.width = '100%'; prerollDocument.getElementById('adContainer').style.maxWidth = '640px'; prerollDocument.getElementById('adContainer').style.height = '360px'; break; case google.ima.AdEvent.Type.STARTED: window.addEventListener('scroll', onActiveView); if (ad.isLinear()) { intervalTimer = setInterval( function () { // Example: const remainingTime = adsManager.getRemainingTime(); // adsManager.pause(); }, 300); // every 300ms } prerollDocument.getElementById('adMuteBtn').style.display = 'block'; break; case google.ima.AdEvent.Type.ALL_ADS_COMPLETED: if (ad.isLinear()) { clearInterval(intervalTimer); } if (prerollLastError === 303) { playYtVideo(); } break; case google.ima.AdEvent.Type.COMPLETE: if (ad.isLinear()) { clearInterval(intervalTimer); } playYtVideo(); break; } } function onAdError(adErrorEvent) { console.log(adErrorEvent.getError()); prerollLastError = adErrorEvent.getError().getErrorCode(); if (!loadNext()) { playYtVideo(); } } function loadNext() { iinfoVastUrlIndex++; if (iinfoVastUrlIndex < iinfoVastUrls.length) { iinfoPrerollPosition.remove(); playPrerollAd(); } else { return false; } adVolume = 1; return true; } function onContentPauseRequested() { videoContent.pause(); } function onContentResumeRequested() { videoContent.play(); } function onActiveView() { if (prerollContainer) { const containerOffset = prerollContainer.getBoundingClientRect(); const windowHeight = window.innerHeight; if (containerOffset.top < windowHeight/1 && containerOffset.bottom > 0.0) { if (prerollPaused) { adsManager.resume(); prerollPaused = false; } return true; } else { if (!prerollPaused) { adsManager.pause(); prerollPaused = true; } } } return false; } function playYtVideo() { iinfoPrerollPosition.remove(); youtubeIframe.style.display = 'block'; youtubeIframe.src += '&autoplay=1&mute=1'; } }
OSZAR »