0 && arguments[0] !== undefined ? arguments[0] : '[data-cmp]';\n var attr = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'data-cmp';\n document.querySelectorAll(selector).forEach(function (source) {\n var tag = document.createElement('script');\n var src = source.dataset.src || '';\n source.getAttributeNames().filter(function (prop) {\n return attr !== prop && 'data-src' !== prop && 'data-async' !== prop;\n }).forEach(function (prop) {\n tag.setAttribute(prop, source.getAttribute(prop));\n });\n if (src) {\n tag.src = src;\n tag.async = source.dataset.async !== 'false';\n }\n tag.innerHTML = source.innerHTML;\n source.parentNode.insertBefore(tag, source);\n source.remove();\n });\n}\n\n//# sourceURL=webpack:///./lazy-script-loader.js?\n}")},"./loader-after-init.js"(__unused_webpack_module,__webpack_exports__,__webpack_require__){eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _lazy_script_loader__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./lazy-script-loader */ \"./lazy-script-loader.js\");\n/* harmony import */ var _lazy_image_loader__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./lazy-image-loader */ \"./lazy-image-loader.js\");\n\n\ndocument.addEventListener('DOMContentLoaded', function () {\n var api = window.__tcfapi || null;\n if (!api) {\n return;\n }\n api('addEventListener', 2, function (tcData, success) {\n if (success && tcData && ('tcloaded' === tcData.eventStatus || 'useractioncomplete' === tcData.eventStatus)) {\n (0,_lazy_script_loader__WEBPACK_IMPORTED_MODULE_0__.loadAsyncScripts)('[data-cmp=after-init]');\n (0,_lazy_image_loader__WEBPACK_IMPORTED_MODULE_1__.loadLazyImages)('[data-cmp-lazy-image=after-init]');\n if (tcData.listenerId) {\n api('removeEventListener', 2, function () {}, tcData.listenerId);\n }\n }\n });\n});\n\n//# sourceURL=webpack:///./loader-after-init.js?\n}")}},__webpack_module_cache__={};function __webpack_require__(e){var a=__webpack_module_cache__[e];if(void 0!==a)return a.exports;var r=__webpack_module_cache__[e]={exports:{}};if(!(e in __webpack_modules__)){delete __webpack_module_cache__[e];var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return __webpack_modules__[e](r,r.exports,__webpack_require__),r.exports}__webpack_require__.d=(e,a)=>{for(var r in a)__webpack_require__.o(a,r)&&!__webpack_require__.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:a[r]})},__webpack_require__.o=(e,a)=>Object.prototype.hasOwnProperty.call(e,a),__webpack_require__.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var __webpack_exports__=__webpack_require__("./loader-after-init.js")})();
0 && arguments[0] !== undefined ? arguments[0] : '[data-cmp]';\n var attr = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'data-cmp';\n document.querySelectorAll(selector).forEach(function (source) {\n var tag = document.createElement('script');\n var src = source.dataset.src || '';\n source.getAttributeNames().filter(function (prop) {\n return attr !== prop && 'data-src' !== prop && 'data-async' !== prop;\n }).forEach(function (prop) {\n tag.setAttribute(prop, source.getAttribute(prop));\n });\n if (src) {\n tag.src = src;\n tag.async = source.dataset.async !== 'false';\n }\n tag.innerHTML = source.innerHTML;\n source.parentNode.insertBefore(tag, source);\n source.remove();\n });\n}\n\n//# sourceURL=webpack:///./lazy-script-loader.js?\n}")},"./loader-not-pur.js"(__unused_webpack_module,__webpack_exports__,__webpack_require__){eval('{__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _lazy_script_loader__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./lazy-script-loader */ "./lazy-script-loader.js");\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./utils */ "./utils.js");\nfunction _createForOfIteratorHelper(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; }\nfunction _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }\nfunction _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }\n/**\n * @see https://gist.github.com/0x7f/62211125638af90d84fe8d9b0d660761\n * @see https://docs.contentpass.net/docs/3rdparty\n * @see https://docs.contentpass.net/docs/web-sdk#cpauthenticate-options-callback\n */\n\n\n(function () {\n var selector = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : \'[data-cmp=not-pur]\';\n if ((0,_utils__WEBPACK_IMPORTED_MODULE_1__.isPur)()) {\n return;\n }\n\n // Execute now\n (0,_lazy_script_loader__WEBPACK_IMPORTED_MODULE_0__.loadAsyncScripts)(selector);\n\n // Execute until dom content is loaded\n var observer = new MutationObserver(function (mutationsList) {\n var _iterator = _createForOfIteratorHelper(mutationsList),\n _step;\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var mutation = _step.value;\n if (\'childList\' === mutation.type) {\n (0,_lazy_script_loader__WEBPACK_IMPORTED_MODULE_0__.loadAsyncScripts)(selector);\n return;\n }\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n });\n observer.observe(document, {\n childList: true,\n subtree: true\n });\n document.addEventListener(\'DOMContentLoaded\', function () {\n observer.disconnect();\n });\n})();\n\n//# sourceURL=webpack:///./loader-not-pur.js?\n}')},"./utils.js"(__unused_webpack_module,__webpack_exports__,__webpack_require__){eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ isPur: () => (/* binding */ isPur)\n/* harmony export */ });\nvar isPur = function isPur() {\n return document.cookie.includes('_cpauthhint=1') || !!localStorage.getItem('_cpuser');\n};\n\n//# sourceURL=webpack:///./utils.js?\n}")}},__webpack_module_cache__={};function __webpack_require__(e){var r=__webpack_module_cache__[e];if(void 0!==r)return r.exports;var t=__webpack_module_cache__[e]={exports:{}};if(!(e in __webpack_modules__)){delete __webpack_module_cache__[e];var n=new Error("Cannot find module '"+e+"'");throw n.code="MODULE_NOT_FOUND",n}return __webpack_modules__[e](t,t.exports,__webpack_require__),t.exports}__webpack_require__.d=(e,r)=>{for(var t in r)__webpack_require__.o(r,t)&&!__webpack_require__.o(e,t)&&Object.defineProperty(e,t,{enumerable:!0,get:r[t]})},__webpack_require__.o=(e,r)=>Object.prototype.hasOwnProperty.call(e,r),__webpack_require__.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var __webpack_exports__=__webpack_require__("./loader-not-pur.js")})();
Google rüstet Safe Browsing gegen Betrüger auf
Zum Inhalt springen
Mit einer neuen Warnung möchte Google Chrome-User besser schützen Foto: Getty Images
26. Oktober 2026, 8:03 Uhr |
Lesezeit: 2 Minuten
Phishing-Seiten wirken zunehmend täuschend echt und werden nicht immer rechtzeitig als Gefahr erkannt. Google reagiert mit einem stärkeren Schutz für Chrome: Zusätzliche KI -Funktionen sollen den erweiterten Safe-Browsing-Modus verbessern.
Chrome spürt Phishing-Seiten auf
Wie Google in seinem offiziellen Blog mitteilt, warnt Chrome künftig, wenn eine Website typische Merkmale eines Betrugs zeigt, aber noch nicht eindeutig als gefährlich gilt. Statt der bekannten roten Warnseite erscheint in solchen Fällen ein Pop-up. Für die Prüfung nutzt Google ein serverseitiges Gemini-Modell. Die Daten werden also nicht lokal auf dem PC verarbeitet, sondern auf den Google-Servern. Gemini analysiert unter anderem die dargestellten Marken und versucht, die mutmaßliche Absicht einer Website einzuschätzen.
Auch interessant: Google Chrome ist so angreifbar wie noch nie
Zusammen mit der Vertrauenswürdigkeit der aufgerufenen Web-Domain und weiteren Sicherheitssignalen soll Safe Browsing die Gefahrensituation bewerten und abwägen, wie wahrscheinlich ein Betrugsversuch ist. Laut Google werden dabei übertragene Seiteninhalte nicht gespeichert und nicht für das Training der Modelle genutzt.
Chrome erkennt auch ClickFix-Tricks
Der erweiterte Safe-Browsing-Schutz von Google soll zudem sogenannte ClickFix-Angriffe erkennen. Dabei versuchen Betrüger, User zum Kopieren und Ausführen von Befehlen zu bewegen – unter dem Vorwand, ein Computerproblem zu beheben.
Kopiert ein Nutzer einen verdächtigen Befehl, analysiert Chrome diesen. Zuvor entfernt der Safe-Browsing-Modus persönliche Informationen aus den übertragenen Daten. Erkennt Chrome eine Gefahr, erscheint eine Warnung. Google rollt die Neuerungen aktuell für den Browser aus.
Das Magazin für digitalen Lifestyle und Entertainment