def secure_web_page(qwebpage_or_qwebsettings): from PyQt5.QtWebKit import QWebSettings settings = qwebpage_or_qwebsettings if isinstance(qwebpage_or_qwebsettings, QWebSettings) else qwebpage_or_qwebsettings.settings() settings.setAttribute(QWebSettings.JavaEnabled, False) settings.setAttribute(QWebSettings.PluginsEnabled, False) settings.setAttribute(QWebSettings.JavascriptCanOpenWindows, False) settings.setAttribute(QWebSettings.JavascriptCanAccessClipboard, False) settings.setAttribute(QWebSettings.LocalContentCanAccessFileUrls, False) # ensure javascript cannot read from local files settings.setAttribute(QWebSettings.NotificationsEnabled, False) settings.setThirdPartyCookiePolicy(QWebSettings.AlwaysBlockThirdPartyCookies) settings.setAttribute(QWebSettings.OfflineStorageDatabaseEnabled, False) settings.setAttribute(QWebSettings.LocalStorageEnabled, False) QWebSettings.setOfflineStorageDefaultQuota(0) QWebSettings.setOfflineStoragePath(None) return settings
}, 'storage': { 'offline-storage-database': (MapType.attribute, QWebSettings.OfflineStorageDatabaseEnabled), 'offline-web-application-storage': (MapType.attribute, QWebSettings.OfflineWebApplicationCacheEnabled), 'local-storage': (MapType.attribute, QWebSettings.LocalStorageEnabled), 'maximum-pages-in-cache': (MapType.static_setter, lambda v: QWebSettings.setMaximumPagesInCache(v)), 'object-cache-capacities': (MapType.static_setter, lambda v: QWebSettings.setObjectCacheCapacities(*v)), 'offline-storage-default-quota': (MapType.static_setter, lambda v: QWebSettings.setOfflineStorageDefaultQuota(v)), 'offline-web-application-cache-quota': (MapType.static_setter, lambda v: QWebSettings.setOfflineWebApplicationCacheQuota(v)), }, 'general': { 'private-browsing': (MapType.attribute, QWebSettings.PrivateBrowsingEnabled), 'developer-extras': (MapType.attribute, QWebSettings.DeveloperExtrasEnabled), 'print-element-backgrounds': (MapType.attribute, QWebSettings.PrintElementBackgrounds), 'xss-auditing': (MapType.attribute, QWebSettings.XSSAuditingEnabled), 'site-specific-quirks': (MapType.attribute, QWebSettings.SiteSpecificQuirksEnabled), 'default-encoding': (MapType.setter,
'offline-storage-database': (MapType.attribute, QWebSettings.OfflineStorageDatabaseEnabled), 'offline-web-application-storage': (MapType.attribute, QWebSettings.OfflineWebApplicationCacheEnabled), 'local-storage': (MapType.attribute, QWebSettings.LocalStorageEnabled), 'maximum-pages-in-cache': (MapType.static_setter, lambda v: QWebSettings.setMaximumPagesInCache(v)), 'object-cache-capacities': (MapType.static_setter, lambda v: QWebSettings.setObjectCacheCapacities(*v)), 'offline-storage-default-quota': (MapType.static_setter, lambda v: QWebSettings.setOfflineStorageDefaultQuota(v)), 'offline-web-application-cache-quota': (MapType.static_setter, lambda v: QWebSettings.setOfflineWebApplicationCacheQuota(v)), }, 'general': { 'private-browsing': (MapType.attribute, QWebSettings.PrivateBrowsingEnabled), 'developer-extras': (MapType.attribute, QWebSettings.DeveloperExtrasEnabled), 'print-element-backgrounds': (MapType.attribute, QWebSettings.PrintElementBackgrounds), 'xss-auditing': (MapType.attribute, QWebSettings.XSSAuditingEnabled), 'site-specific-quirks': (MapType.attribute, QWebSettings.SiteSpecificQuirksEnabled),