🛡️ QAstell Security Audit Report

URL: https://the-internet.herokuapp.com/
Generated: 2026-03-04T20:38:00.751Z
Duration: 2203ms

Total Violations

9
Click to show all

Rules Passed

264
Click to filter

Rules Failed

8
Click to filter

Critical/High

2
Click to filter

Rules Checked (272)

Status Rule ID Name Category Severity Violations Details Actions
missing-noopener Missing rel="noopener" on external links links medium 1 View →
javascript-url JavaScript URL in link href links high 0 View →
missing-csrf-token Form missing CSRF token forms high 0 View →
sensitive-autocomplete Sensitive field allows autocomplete forms low 0 View →
insecure-form-action Form submits to HTTP URL forms high 0 View →
inline-event-handlers Inline event handlers detected inline-handlers medium 0 View →
missing-iframe-sandbox Iframe missing sandbox attribute iframes medium 0 View →
dangerous-iframe-sandbox Iframe has dangerous sandbox combination iframes high 0 View →
mixed-content Mixed content detected mixed-content high 0 View →
missing-csp-meta No Content Security Policy meta tag headers info 1 View →
base-tag-detected Base tag modifies URL resolution headers info 0 View →
no-frame-protection-meta No clickjacking protection meta tag headers info 1 View →
missing-sri External resource missing SRI sri medium 0 View →
weak-sri-hash Weak SRI hash algorithm sri low 0 View →
exposed-email Email address exposed in page sensitive-data low 0 View →
exposed-api-key Potential API key/token exposed sensitive-data high 0 View →
comments-with-secrets HTML comment may contain sensitive info sensitive-data low 0 View →
shadow-dom-inline-handlers Shadow DOM contains inline event handlers shadow-dom high 0 View →
open-shadow-dom Open Shadow DOM detected shadow-dom info 0 View →
shadow-dom-form-no-csrf Shadow DOM form missing CSRF token shadow-dom high 0 View →
dom-clobbering-globals Element ID shadows global property dom-clobbering high 0 View →
dom-clobbering-collections Multiple elements with same name create collection dom-clobbering medium 0 View →
form-property-clobbering Form element clobbers form property dom-clobbering high 0 View →
ad-network-no-sri Ad network script without SRI third-party high 0 View →
ad-iframe-no-sandbox Ad network iframe without sandbox third-party medium 0 View →
third-party-document-write Third-party script uses document.write third-party medium 0 View →
excessive-third-party Excessive third-party scripts third-party info 0 View →
tracking-on-sensitive-page Tracking script on sensitive page third-party medium 0 View →
script-wrong-extension Script loaded with non-JS extension mime-type medium 0 View →
stylesheet-wrong-extension Stylesheet loaded with non-CSS extension mime-type low 0 View →
script-type-misuse Script with non-executing type attribute mime-type low 0 View →
data-uri-script Script loaded from data: URI mime-type high 0 View →
url-prototype-pollution URL contains prototype pollution patterns prototype-pollution high 0 View →
unsafe-object-merge Script contains potentially unsafe object merge prototype-pollution medium 0 View →
polluted-prototype Object.prototype appears polluted prototype-pollution critical 0 View →
modifies-prototype Script modifies Object.prototype prototype-pollution medium 0 View →
link-redirect-parameter Link contains redirect parameter open-redirect medium 0 View →
form-redirect-parameter Form contains redirect parameter open-redirect medium 0 View →
meta-refresh-redirect Meta refresh redirects to external URL open-redirect medium 0 View →
js-location-redirect JavaScript redirect using URL input open-redirect high 0 View →
opener-accessible window.opener is accessible open-redirect low 0 View →
postmessage-no-origin-check postMessage listener without origin validation postmessage high 0 View →
postmessage-wildcard-origin postMessage uses wildcard (*) target origin postmessage medium 0 View →
postmessage-dangerous-sink postMessage handler uses dangerous sinks postmessage high 0 View →
localstorage-sensitive-data Sensitive data detected in localStorage storage high 0 View →
sessionstorage-sensitive-data Sensitive data detected in sessionStorage storage medium 0 View →
storage-unencrypted-data Large unencrypted data in web storage storage info 0 View →
storage-no-error-handling Storage access without error handling storage low 0 View →
dangling-markup-attribute Potentially dangling markup detected dangling-markup high 0 View →
base-tag-hijacking Base tag points to external origin dangling-markup critical 0 View →
form-external-action Form submits to external domain dangling-markup medium 0 View →
meta-refresh-exfiltration Meta refresh with potential data exfiltration dangling-markup high 0 View →
noscript-dangling-markup Noscript tag with suspicious content dangling-markup low 0 View →
css-external-import CSS @import from external source css-injection medium 0 View →
css-external-url CSS url() references external domain css-injection low 0 View →
css-attribute-selector CSS attribute selector could leak sensitive data css-injection medium 0 View →
css-expression CSS expression or behavior detected css-injection high 0 View →
idn-homograph Potential IDN homograph attack in link unicode high 0 View →
rtl-override Right-to-left override character detected unicode high 0 View →
null-byte-url Null byte or dangerous character in URL unicode high 0 View →
invisible-characters Invisible/zero-width characters detected unicode low 0 View →
innerhtml-sink innerHTML used with external data html-injection high 0 View →
document-write-sink document.write usage detected html-injection medium 0 View →
eval-usage eval() or similar function detected html-injection high 0 View →
user-controlled-selector querySelector with external input html-injection medium 0 View →
template-literal-injection Template literal with external data in HTML context html-injection medium 0 View →
service-worker-cross-origin Service worker registration from different origin service-worker critical 0 View →
service-worker-broad-scope Service worker with root scope service-worker info 0 View →
service-worker-no-https Service worker on non-HTTPS page service-worker medium 0 View →
service-worker-suspicious-patterns Suspicious service worker patterns service-worker medium 0 View →
fullscreen-abuse Fullscreen API usage on sensitive elements clickjacking medium 0 View →
pointer-events-manipulation Pointer-events manipulation detected clickjacking low 0 View →
opacity-hiding Low opacity element covering content clickjacking medium 0 View →
user-select-manipulation Text selection disabled on important content clickjacking low 0 View →
cookie-no-httponly Sensitive cookie accessible to JavaScript cookies high 0 View →
cookie-no-secure Cookie without Secure flag on HTTPS site cookies medium 1 View →
cookie-no-samesite Cookie without SameSite attribute cookies medium 1 View →
cookie-broad-scope Cookie with overly broad scope cookies low 1 View →
cookie-sensitive-value Cookie may contain sensitive data cookies medium 0 View →
websocket-insecure Unencrypted WebSocket (ws://) on HTTPS page websocket high 0 View →
websocket-cross-origin WebSocket connection to different origin websocket medium 0 View →
websocket-no-auth WebSocket connection without visible authentication websocket medium 0 View →
websocket-message-sink WebSocket message used in dangerous sink websocket high 0 View →
svg-script-content SVG element contains script or event handlers mutation-xss high 0 View →
mathml-namespace-abuse MathML element with potential namespace confusion mutation-xss medium 0 View →
nested-parsing-abuse Deeply nested or unusual element structure mutation-xss medium 0 View →
style-tag-abuse Style tag in unusual context mutation-xss low 0 View →
unsafe-dom-parsing DOMParser used without sanitization mutation-xss high 0 View →
private-ip-access Private IP Access dns-rebinding high 0 View →
host-header-unvalidated Host Header Validation Missing dns-rebinding medium 0 View →
websocket-rebinding-risk WebSocket Rebinding Risk dns-rebinding medium 0 View →
cors-rebinding-risk CORS Configuration Rebinding Risk dns-rebinding high 0 View →
unsafe-string-comparison Unsafe String Comparison timing-attacks medium 0 View →
early-return-auth Early Return in Authentication timing-attacks low 0 View →
high-resolution-timing High Resolution Timing API timing-attacks info 0 View →
array-length-timing Array Length Timing Leak timing-attacks low 0 View →
missing-vary-header Missing Vary Header cache-poisoning medium 0 View →
unkeyed-header-reflection Unkeyed Header Reflection cache-poisoning high 0 View →
cache-control-misconfigured Cache-Control Misconfiguration cache-poisoning medium 0 View →
parameter-cache-reflection URL Parameter Reflection in Cacheable Response cache-poisoning high 0 View →
fat-get-request Fat GET Request Pattern cache-poisoning low 0 View →
cloud-resource-unclaimed Potentially Unclaimed Cloud Resource subdomain-takeover high 0 View →
dangling-cname-js Dangling CNAME Reference in JavaScript subdomain-takeover medium 0 View →
broken-external-resource Broken External Resource subdomain-takeover high 0 View →
mail-subdomain-reference Mail Service Subdomain Reference subdomain-takeover medium 0 View →
cors-wildcard-credentials CORS Wildcard with Credentials cors critical 0 View →
cors-null-origin CORS Null Origin cors high 0 View →
cors-origin-reflection CORS Origin Reflection Pattern cors high 0 View →
cors-preflight-permissive Overly Permissive CORS Preflight cors medium 0 View →
cors-internal-access CORS Internal Network Access cors high 0 View →
content-length-manipulation Content-Length Header Manipulation request-smuggling high 0 View →
transfer-encoding-usage Transfer-Encoding Header Usage request-smuggling medium 0 View →
ambiguous-request Ambiguous HTTP Request Pattern request-smuggling medium 0 View →
http2-downgrade HTTP/2 Downgrade Pattern request-smuggling low 0 View →
json-parse-reviver JSON.parse with Reviver Function deserialization medium 0 View →
function-constructor-deser Function Constructor Deserialization deserialization high 0 View →
eval-deserialization Eval-based Deserialization deserialization critical 0 View →
jquery-deser-methods jQuery Deserialization Methods deserialization medium 0 View →
postmessage-deser PostMessage Data Deserialization deserialization high 0 View →
toctou-pattern TOCTOU Pattern race-condition medium 0 View →
unsync-shared-state Unsynchronized Shared State race-condition medium 0 View →
double-submit-risk Double Submit Risk race-condition low 0 View →
parallel-fetch-race Parallel Fetch Race Condition race-condition low 0 View →
localstorage-race LocalStorage Race Condition race-condition low 0 View →
missing-permissions-policy Missing Permissions Policy permissions-policy medium 0 View →
iframe-allow-permissive Overly Permissive Iframe Allow permissions-policy medium 0 View →
autoplay-without-policy Autoplay Without Policy permissions-policy low 0 View →
sensor-access Motion Sensor Access permissions-policy low 0 View →
document-domain-usage document.domain Usage permissions-policy high 0 View →
math-random-security Math.random for Security crypto-weaknesses high 0 View →
hardcoded-crypto-secrets Hardcoded Cryptographic Secrets crypto-weaknesses critical 0 View →
deprecated-crypto-api Deprecated Crypto API crypto-weaknesses high 0 View →
weak-password-hashing Weak Password Hashing crypto-weaknesses high 0 View →
crypto-subtle-validation Crypto Subtle Usage Issues crypto-weaknesses medium 0 View →
catastrophic-backtracking Catastrophic Backtracking Pattern redos high 0 View →
unbounded-regex-input Unbounded Regex on User Input redos high 0 View →
email-regex-redos Potentially Vulnerable Email Regex redos medium 0 View →
url-regex-redos Potentially Vulnerable URL Regex redos medium 0 View →
regex-from-input Regex Created from User Input redos critical 0 View →
internal-package-reference Internal Package Name Reference dependency-confusion medium 0 View →
uncommon-cdn-package Uncommon CDN Package dependency-confusion low 0 View →
dynamic-import-risk Dynamic Import Risk dependency-confusion medium 0 View →
scoped-package-risk Scoped Package Without Registry Lock dependency-confusion high 0 View →
url-param-to-fetch URL Parameter to Fetch ssrf high 0 View →
user-input-url User Input in URL Construction ssrf high 0 View →
proxy-endpoint-usage Proxy Endpoint Usage ssrf medium 0 View →
webhook-config Webhook Configuration Interface ssrf medium 0 View →
media-url-from-input Media URL from User Input ssrf medium 0 View →
window-opener-access window.opener Access tabnabbing high 0 View →
window-open-no-noopener window.open Without noopener tabnabbing medium 0 View →
cross-origin-frame-access Cross-Origin Frame Access tabnabbing medium 0 View →
postmessage-to-opener postMessage to opener tabnabbing medium 0 View →
sensitive-data-new-tab Sensitive Data in New Tab Link tabnabbing low 0 View →
polyglot-file-pattern Polyglot File Pattern content-type medium 0 View →
jsonp-endpoint JSONP Endpoint content-type medium 0 View →
data-url-executable Executable Data URL content-type high 0 View →
blob-url-xss Blob URL XSS Risk content-type medium 0 View →
mime-sniffing-risk MIME Sniffing Risk content-type low 0 View →
exposed-admin-routes Admin or sensitive routes exposed in JavaScript js-analysis medium 0 View →
manipulable-hidden-fields Hidden form field may be manipulable js-analysis medium 0 View →
exposed-source-maps Source maps exposed in production js-analysis medium 0 View →
bypassable-client-validation Client-side validation can be bypassed js-analysis low 0 View →
hardcoded-secrets Hardcoded secrets in JavaScript js-analysis high 0 View →
debug-endpoints-exposed Debug or development endpoints exposed js-analysis medium 0 View →
vulnerable-libraries Known vulnerable library detected js-analysis high 2 View →
php-error-exposure PHP error message exposed technology-specific high 0 View →
phpinfo-exposed PHP info page detected technology-specific high 0 View →
php-session-in-url PHP session ID in URL technology-specific high 0 View →
aspnet-error-exposure ASP.NET error page exposed technology-specific high 0 View →
aspnet-viewstate-vulnerable ASP.NET ViewState potentially vulnerable technology-specific medium 0 View →
aspnet-version-disclosure ASP.NET version disclosed technology-specific low 0 View →
java-error-exposure Java exception/stack trace exposed technology-specific high 0 View →
java-session-in-url Java session ID in URL technology-specific high 0 View →
wordpress-version-disclosure WordPress version disclosed technology-specific medium 0 View →
wordpress-sensitive-paths WordPress sensitive path referenced technology-specific medium 0 View →
cms-detection CMS platform detected technology-specific info 0 View →
angular-debug-mode Angular debug mode enabled technology-specific medium 0 View →
react-development-build React development build detected technology-specific low 0 View →
vue-development-mode Vue.js development mode detected technology-specific low 0 View →
jquery-html-methods jQuery HTML method with external data html-injection high 0 View →
jquery-selector-injection jQuery selector with external input html-injection high 0 View →
dom-open-redirect DOM-based open redirect open-redirect medium 0 View →
history-api-abuse History API with untrusted data open-redirect low 0 View →
unsafe-response-injection Fetch/XHR response inserted into DOM unsafely html-injection high 0 View →
jsonp-callback-injection JSONP with user-controlled callback html-injection high 0 View →
dynamic-script-injection Dynamic script injection with external data html-injection critical 0 View →
unsafe-setattribute setAttribute with dangerous attribute and external data html-injection high 0 View →
tracking-pixels Tracking pixel detected third-party medium 0 View →
beacon-exfiltration Beacon API used for data transmission third-party medium 0 View →
invisible-iframes Invisible iframe detected clickjacking high 0 View →
invisible-clickables Hidden clickable element detected clickjacking medium 1 View →
dns-prefetch-external DNS prefetch to external domain third-party low 0 View →
webrtc-ip-leak WebRTC usage detected (potential IP leak) sensitive-data medium 0 View →
browser-fingerprinting Browser fingerprinting detected third-party medium 0 View →
canvas-fingerprinting Canvas fingerprinting pattern detected third-party medium 0 View →
clipboard-hijacking Clipboard manipulation detected sensitive-data high 0 View →
css-attribute-exfiltration CSS-based data exfiltration pattern css-injection high 0 View →
technology-disclosure Technology version disclosed in HTML headers low 0 View →
geolocation-access Geolocation API usage detected sensitive-data medium 0 View →
notification-abuse Notification API permission request permissions-policy low 0 View →
battery-api-abuse Battery API usage detected sensitive-data low 0 View →
vibration-api-abuse Vibration API usage detected permissions-policy low 0 View →
payment-api-usage Payment Request API detected sensitive-data medium 0 View →
web-share-usage Web Share API detected sensitive-data low 0 View →
bluetooth-api-usage Web Bluetooth API detected permissions-policy medium 0 View →
webusb-api-usage WebUSB API detected permissions-policy medium 0 View →
webserial-api-usage Web Serial API detected permissions-policy medium 0 View →
media-device-enumeration Media device enumeration detected sensitive-data medium 0 View →
audio-fingerprinting AudioContext fingerprinting pattern third-party medium 0 View →
font-enumeration Font enumeration fingerprinting third-party medium 0 View →
webgl-fingerprinting WebGL fingerprinting pattern third-party medium 0 View →
window-name-channel window.name data channel sensitive-data medium 0 View →
meta-refresh-redirect Meta refresh redirect detected open-redirect medium 0 View →
base-tag-hijacking Base tag with external href open-redirect high 0 View →
iframe-srcdoc-content Iframe with srcdoc attribute iframes medium 0 View →
performance-timing-leak Performance timing enumeration timing-attacks low 0 View →
credential-api-usage Credential Management API detected sensitive-data medium 0 View →
indexeddb-usage IndexedDB usage detected storage low 0 View →
js-bridge-exposure JavaScript bridge interface exposed mobile-webview high 0 View →
intent-scheme-links Intent or custom URL scheme links detected mobile-webview medium 0 View →
missing-viewport Missing or improper viewport meta tag mobile-webview low 0 View →
touch-event-hijacking Touch event capturing detected mobile-webview medium 0 View →
device-motion-abuse Device orientation/motion API usage mobile-webview medium 0 View →
app-store-link-validation App store links detected mobile-webview low 0 View →
file-protocol-access file:// protocol references detected mobile-webview high 0 View →
universal-link-misconfig Potential universal/app link misconfiguration mobile-webview medium 0 View →
sensitive-input-webview Sensitive input fields detected mobile-webview medium 0 View →
mobile-clipboard-access Clipboard access detected mobile-webview medium 0 View →
screen-capture-detection Screen capture API usage detected mobile-webview medium 0 View →
webgl-fingerprinting WebGL fingerprinting detected modern-web-apis medium 0 View →
webgl-context-usage WebGL context detected modern-web-apis info 0 View →
webgpu-usage WebGPU API usage detected modern-web-apis info 0 View →
media-capture-usage Media capture API usage detected modern-web-apis medium 0 View →
web3-wallet-interaction Web3/Crypto wallet interaction detected modern-web-apis medium 0 View →
webxr-usage WebXR (VR/AR) API usage detected modern-web-apis medium 0 View →
web-speech-usage Web Speech API usage detected modern-web-apis medium 0 View →
web-animation-abuse Potentially deceptive animations detected modern-web-apis low 0 View →
picture-in-picture-usage Picture-in-Picture API usage detected modern-web-apis low 0 View →
file-system-access File System Access API usage detected modern-web-apis high 0 View →
web-midi-usage Web MIDI API usage detected modern-web-apis low 0 View →
gamepad-fingerprinting Gamepad API usage detected modern-web-apis low 0 View →
web-codecs-usage WebCodecs API usage detected modern-web-apis info 0 View →
web-nfc-usage Web NFC API usage detected modern-web-apis medium 0 View →
compression-streams-usage Compression Streams API usage detected modern-web-apis low 0 View →
background-sync-usage Background Sync API usage detected modern-web-apis medium 0 View →
malformed-url-exploitation Potentially malformed URL patterns detected browser-security high 0 View →
prototype-chain-manipulation Prototype chain manipulation detected browser-security critical 0 View →
geolocation-abuse Suspicious geolocation API usage browser-security medium 0 View →
blob-url-exploitation Potentially dangerous Blob URL usage browser-security high 0 View →
web-worker-security Web Worker security concerns browser-security medium 0 View →
timing-attack-vectors Potential timing attack vectors browser-security medium 0 View →
memory-exhaustion-attempts Potential memory exhaustion patterns browser-security high 0 View →
iframe-sandbox-escape Potential iframe sandbox escape attempts browser-security high 0 View →
browser-api-abuse Suspicious browser API usage combination browser-security medium 0 View →
spectre-bypass-attempts Potential Spectre-style attack patterns browser-security critical 0 View →
permission-prompt-abuse Potential permission prompt abuse browser-security medium 0 View →
aria-deception Potentially deceptive ARIA attributes accessibility-security medium 0 View →
role-abuse Potentially abusive ARIA role usage accessibility-security medium 0 View →
live-region-abuse Potentially abusive ARIA live regions accessibility-security medium 0 View →
keyboard-trap Potential keyboard trap detected accessibility-security high 0 View →
hidden-interactive-content Visually hidden interactive content accessibility-security high 0 View →
sr-only-injection Screen reader only content with suspicious patterns accessibility-security medium 0 View →
focus-stealing Aggressive focus management detected accessibility-security medium 0 View →
accesskey-hijacking Potentially malicious accesskey usage accessibility-security medium 0 View →
alt-text-abuse Potentially misleading alt text accessibility-security medium 0 View →
skip-link-manipulation Skip link targets potentially malicious content accessibility-security medium 0 View →
locale-injection Locale parameter potentially injectable i18n-security medium 0 View →
text-direction-abuse Potential text direction manipulation i18n-security high 0 View →
i18n-homoglyph-attacks Potential homoglyph attack in localized content i18n-security high 0 View →
svg-xss SVG XSS Vulnerability svg-security high 0 View →
svg-foreign-object SVG foreignObject Injection Risk svg-security high 0 View →
svg-embedded-content SVG Embedded Content Risk svg-security medium 0 View →

Detailed Results

medium

Missing rel="noopener" on external links

missing-noopener ✗ 1 violation(s)

Links that open in a new tab/window without rel="noopener" allow the destination page to access the originating page via window.opener, enabling tabnabbing attacks.

Violations

Link opens in new tab without rel="noopener": http://elementalselenium.com/
<a target="_blank" href="http://elementalselenium.com/">Elemental Selenium</a>
🔍 Find in page:
How to fix
Add rel="noopener noreferrer" to all links with target="_blank". Modern browsers (Chrome 88+, Firefox 79+) add noopener by default, but explicit declaration ensures compatibility.
high

JavaScript URL in link href

javascript-url ✓ Passed

Links with javascript: URLs execute code when clicked, which can be exploited for XSS if the URL content is user-controlled.

high

Form missing CSRF token

missing-csrf-token ✓ Passed

Forms that modify state (POST, PUT, DELETE) should include a CSRF token to prevent cross-site request forgery attacks where malicious sites submit requests on behalf of authenticated users.

low

Sensitive field allows autocomplete

sensitive-autocomplete ✓ Passed

Sensitive input fields (passwords, credit cards, SSN) that allow autocomplete may have their values cached by the browser, creating a security risk on shared computers.

high

Form submits to HTTP URL

insecure-form-action ✓ Passed

Forms that submit data to HTTP (non-HTTPS) URLs expose the submitted data to interception via man-in-the-middle attacks.

medium

Inline event handlers detected

inline-event-handlers ✓ Passed

Inline event handlers (onclick, onload, onerror, etc.) execute JavaScript directly in HTML attributes. These are common XSS vectors and violate Content Security Policy best practices.

medium

Iframe missing sandbox attribute

missing-iframe-sandbox ✓ Passed

Iframes loading external content without the sandbox attribute can execute scripts, submit forms, and potentially access the parent page. The sandbox attribute restricts these capabilities.

high

Iframe has dangerous sandbox combination

dangerous-iframe-sandbox ✓ Passed

Iframes with both allow-scripts and allow-same-origin in the sandbox attribute can remove the sandbox via JavaScript, effectively bypassing all restrictions.

high

Mixed content detected

mixed-content ✓ Passed

HTTPS pages that load resources over HTTP (mixed content) weaken the security of the connection. Active mixed content (scripts, iframes) is blocked by browsers, while passive mixed content (images, audio, video) may display warnings.

info

No Content Security Policy meta tag

missing-csp-meta ✗ 1 violation(s)

Content Security Policy (CSP) helps prevent XSS attacks by restricting resource loading. While CSP is best set via HTTP headers, a meta tag fallback can provide some protection.

Violations

Page has no Content-Security-Policy meta tag
URL: https://the-internet.herokuapp.com/ No <meta http-equiv="Content-Security-Policy"> tag found. CSP helps prevent XSS by restricting resource loading. While HTTP headers are preferred, a meta tag provides fallback protection.
🔍 Find in page:
How to fix
Add a Content-Security-Policy meta tag: <meta http-equiv="Content-Security-Policy" content="default-src 'self'">. For production, configure CSP via HTTP headers for better security.
info

Base tag modifies URL resolution

base-tag-detected ✓ Passed

The <base> tag changes how relative URLs are resolved. If a page allows user-controlled base tags (through injection), attackers can redirect relative URLs to malicious servers.

info

No clickjacking protection meta tag

no-frame-protection-meta ✗ 1 violation(s)

Pages without frame protection can be embedded in attacker-controlled iframes, enabling clickjacking attacks where users are tricked into clicking hidden elements.

Violations

Page has no detectable clickjacking protection in meta tags (frame-ancestors in CSP)
URL: https://the-internet.herokuapp.com/ No frame-ancestors directive found in CSP meta tag. Note: X-Frame-Options must be set via HTTP header, not meta tag. This check only detects CSP frame-ancestors in meta tags.
🔍 Find in page:
How to fix
Set X-Frame-Options header to DENY or SAMEORIGIN on the server. For CSP-based protection, use frame-ancestors directive. Note: X-Frame-Options cannot be set via meta tag.
medium

External resource missing SRI

missing-sri ✓ Passed

External scripts and stylesheets loaded from CDNs or third-party sources should include integrity attributes to ensure the resource has not been tampered with.

low

Weak SRI hash algorithm

weak-sri-hash ✓ Passed

Subresource Integrity hashes using SHA-256 are acceptable but SHA-384 or SHA-512 provide stronger security guarantees.

low

Email address exposed in page

exposed-email ✓ Passed

Email addresses visible in page source can be harvested by spam bots. Consider using obfuscation, contact forms, or JavaScript-based rendering.

high

Potential API key/token exposed

exposed-api-key ✓ Passed

API keys, tokens, or secrets appear to be exposed in page source or inline scripts. These credentials can be extracted and misused by attackers.

low

HTML comment may contain sensitive info

comments-with-secrets ✓ Passed

HTML comments are visible in page source and may contain sensitive information like TODO notes, credentials, internal paths, or debugging info that should not be exposed in production.

high

Shadow DOM contains inline event handlers

shadow-dom-inline-handlers ✓ Passed

Inline event handlers within Shadow DOM can sometimes bypass Content Security Policy restrictions, creating XSS vulnerabilities even on CSP-protected pages.

info

Open Shadow DOM detected

open-shadow-dom ✓ Passed

Elements with open Shadow DOM (mode: "open") can have their shadow roots accessed via JavaScript. If the shadow DOM contains sensitive data or forms, this could be a security concern.

high

Shadow DOM form missing CSRF token

shadow-dom-form-no-csrf ✓ Passed

Forms inside Shadow DOM components may be overlooked when implementing CSRF protection, leaving them vulnerable to cross-site request forgery attacks.

high

Element ID shadows global property

dom-clobbering-globals ✓ Passed

Elements with id or name attributes that match global window/document properties can "clobber" these properties. If application code assumes these are native objects, it may lead to XSS or logic bugs.

medium

Multiple elements with same name create collection

dom-clobbering-collections ✓ Passed

Multiple elements sharing the same name attribute create an HTMLCollection. Attackers can inject elements to manipulate collections and bypass security checks.

high

Form element clobbers form property

form-property-clobbering ✓ Passed

Form elements with names like "action", "method", "submit" clobber the corresponding form properties. This can break form submission or redirect forms to attacker-controlled URLs.

high

Ad network script without SRI

ad-network-no-sri ✓ Passed

Scripts loaded from advertising networks without Subresource Integrity are high-risk supply chain attack vectors. Ad networks are frequently targeted and have been compromised in the past.

medium

Ad network iframe without sandbox

ad-iframe-no-sandbox ✓ Passed

Iframes loading content from advertising networks without sandbox restrictions can execute arbitrary scripts and potentially access parent page data.

medium

Third-party script uses document.write

third-party-document-write ✓ Passed

Third-party scripts that use document.write() can inject arbitrary content into the page. Modern browsers may block these on slow connections, causing functionality issues.

info

Excessive third-party scripts

excessive-third-party ✓ Passed

Pages with many third-party scripts have increased attack surface. Each external script is a potential supply chain attack vector and data exfiltration point.

medium

Tracking script on sensitive page

tracking-on-sensitive-page ✓ Passed

Tracking and analytics scripts on pages containing login forms, payment forms, or sensitive data may inadvertently leak user information to third parties.

medium

Script loaded with non-JS extension

script-wrong-extension ✓ Passed

Scripts loaded with non-JavaScript file extensions (.txt, .json, .html, etc.) may indicate misconfiguration. This can also be used to bypass WAF rules that only inspect .js files.

low

Stylesheet loaded with non-CSS extension

stylesheet-wrong-extension ✓ Passed

Stylesheets loaded with non-CSS file extensions may indicate misconfiguration. CSS can be used for data exfiltration attacks, so unusual sources should be reviewed.

low

Script with non-executing type attribute

script-type-misuse ✓ Passed

Scripts with type attributes like "text/plain", "text/template", or custom types do not execute by default but contain code that could be activated by other scripts, potentially bypassing CSP.

high

Script loaded from data: URI

data-uri-script ✓ Passed

Scripts loaded from data: URIs execute inline and can bypass some Content Security Policy configurations. They may also be used to hide malicious code.

high

URL contains prototype pollution patterns

url-prototype-pollution ✓ Passed

URL query parameters containing __proto__, constructor, or prototype may exploit prototype pollution vulnerabilities if the URL is parsed with vulnerable code.

medium

Script contains potentially unsafe object merge

unsafe-object-merge ✓ Passed

Inline scripts using Object.assign, spread operators, or deep merge with URL/cookie/postMessage data may be vulnerable to prototype pollution attacks.

critical

Object.prototype appears polluted

polluted-prototype ✓ Passed

Object.prototype has unexpected properties, indicating successful prototype pollution. This is a runtime check that detects if pollution has already occurred.

medium

Script modifies Object.prototype

modifies-prototype ✓ Passed

Inline scripts that modify Object.prototype, Array.prototype, or other built-in prototypes can cause unexpected behavior and security issues across all code on the page.

medium

Form contains redirect parameter

form-redirect-parameter ✓ Passed

Forms with redirect parameters in action URL or hidden fields can be exploited for open redirect attacks, especially if combined with CSRF.

medium

Meta refresh redirects to external URL

meta-refresh-redirect ✓ Passed

Meta refresh tags that redirect to external URLs can be exploited for phishing. Attackers may inject content that eventually redirects users to malicious sites.

high

JavaScript redirect using URL input

js-location-redirect ✓ Passed

Inline scripts that read from location (search, hash, href) and use it for redirects via location.href, location.assign, or window.open are vulnerable to open redirect.

low

window.opener is accessible

opener-accessible ✓ Passed

If window.opener is accessible and not null, the opening page can be redirected by this page. This is a tabnabbing vector even on the opened page.

high

postMessage listener without origin validation

postmessage-no-origin-check ✓ Passed

Scripts that add message event listeners without checking event.origin can receive malicious messages from any origin, leading to XSS or data manipulation.

medium

postMessage uses wildcard (*) target origin

postmessage-wildcard-origin ✓ Passed

Calling postMessage with "*" as the target origin allows any window to receive the message, potentially leaking sensitive data to malicious sites.

high

postMessage handler uses dangerous sinks

postmessage-dangerous-sink ✓ Passed

Scripts that handle postMessage events and use the data in dangerous sinks (innerHTML, eval, document.write) without sanitization are vulnerable to XSS.

high

Sensitive data detected in localStorage

localstorage-sensitive-data ✓ Passed

localStorage persists indefinitely and is accessible to any JavaScript on the origin. Storing sensitive data (tokens, passwords, PII) makes it vulnerable to XSS attacks.

medium

Sensitive data detected in sessionStorage

sessionstorage-sensitive-data ✓ Passed

sessionStorage is accessible to any JavaScript on the origin. While it clears on tab close, storing sensitive data like auth tokens makes it vulnerable to XSS during the session.

info

Large unencrypted data in web storage

storage-unencrypted-data ✓ Passed

Large JSON objects or plaintext data in localStorage/sessionStorage may contain sensitive information that should be encrypted or not stored client-side.

low

Storage access without error handling

storage-no-error-handling ✓ Passed

Scripts that access localStorage/sessionStorage without try-catch may fail in private browsing mode or when storage is full, potentially breaking functionality.

high

Potentially dangling markup detected

dangling-markup-attribute ✓ Passed

Elements with attributes containing unterminated quotes or suspicious URL patterns may be vulnerable to dangling markup injection, where subsequent page content is captured and sent to an attacker.

critical

Base tag points to external origin

base-tag-hijacking ✓ Passed

A <base> tag with an external href can hijack all relative URLs on the page, redirecting scripts, stylesheets, and links to an attacker-controlled server.

medium

Form submits to external domain

form-external-action ✓ Passed

Forms that submit data to external domains could be exfiltrating sensitive information. This could be intentional (third-party services) or malicious (injected forms).

high

Meta refresh with potential data exfiltration

meta-refresh-exfiltration ✓ Passed

Meta refresh tags that redirect to external URLs with query parameters could be used to exfiltrate page content captured via dangling markup.

low

Noscript tag with suspicious content

noscript-dangling-markup ✓ Passed

Noscript tags containing images, iframes, or other elements with external URLs could be used for dangling markup attacks against users with JavaScript disabled.

medium

CSS @import from external source

css-external-import ✓ Passed

CSS @import rules loading stylesheets from external domains can be used to inject malicious styles or exfiltrate data via CSS selectors.

low

CSS url() references external domain

css-external-url ✓ Passed

Inline styles using url() to load resources from external domains can be used for tracking, data exfiltration, or loading malicious content.

medium

CSS attribute selector could leak sensitive data

css-attribute-selector ✓ Passed

CSS attribute selectors on sensitive fields (password, credit card) combined with external resources can be used to exfiltrate form data character by character.

high

CSS expression or behavior detected

css-expression ✓ Passed

CSS expressions (expression()) and behaviors (behavior:url()) are legacy IE features that can execute JavaScript, creating XSS vulnerabilities.

high

Potential IDN homograph attack in link

idn-homograph ✓ Passed

Links containing internationalized domain names (IDN) with characters that visually resemble ASCII characters can be used for phishing (e.g., аpple.com using Cyrillic "а").

high

Right-to-left override character detected

rtl-override ✓ Passed

Right-to-left override characters (U+202E) can be used to disguise malicious URLs or file names by reversing text direction, making "exe.txt" appear as "txt.exe".

high

Null byte or dangerous character in URL

null-byte-url ✓ Passed

URLs containing null bytes (%00), backspace, or other control characters can be used to bypass security filters or exploit vulnerable parsers.

low

Invisible/zero-width characters detected

invisible-characters ✓ Passed

Zero-width characters (ZWSP, ZWNJ, ZWJ) in URLs or important text can hide malicious content or be used for watermarking/tracking.

high

innerHTML used with external data

innerhtml-sink ✓ Passed

Scripts that use innerHTML, outerHTML, or insertAdjacentHTML with data from URL parameters, cookies, or storage are vulnerable to XSS attacks.

medium

document.write usage detected

document-write-sink ✓ Passed

document.write and document.writeln can be exploited for XSS, especially when combined with user input. They also block page rendering.

high

eval() or similar function detected

eval-usage ✓ Passed

eval(), Function(), setTimeout(string), and setInterval(string) can execute arbitrary code and are dangerous when used with user input.

medium

querySelector with external input

user-controlled-selector ✓ Passed

Using querySelector/querySelectorAll with user-controlled input can lead to DOM clobbering exploitation or unintended element selection.

medium

Template literal with external data in HTML context

template-literal-injection ✓ Passed

Template literals containing user input that are inserted into the DOM via innerHTML or similar can lead to XSS if not properly escaped.

critical

Service worker registration from different origin

service-worker-cross-origin ✓ Passed

Scripts attempting to register service workers from a different origin could indicate malicious activity. Service workers have significant power over network requests.

info

Service worker with root scope

service-worker-broad-scope ✓ Passed

Service workers registered with root scope (/) can intercept all requests for the origin. This may be intentional but increases the impact of any service worker vulnerability.

medium

Service worker on non-HTTPS page

service-worker-no-https ✓ Passed

Service workers require HTTPS to function (except on localhost). If the page is not served over HTTPS, service workers will fail to register.

medium

Suspicious service worker patterns

service-worker-suspicious-patterns ✓ Passed

Service worker code with patterns that intercept all requests, modify responses, or communicate with external servers could be malicious.

medium

Fullscreen API usage on sensitive elements

fullscreen-abuse ✓ Passed

The Fullscreen API can be used for phishing by displaying fake UI elements that appear to be from the browser or OS. Elements like iframes or divs requesting fullscreen should be reviewed.

low

Pointer-events manipulation detected

pointer-events-manipulation ✓ Passed

CSS pointer-events: none can be used to create invisible overlays that pass clicks through to underlying elements, enabling clickjacking attacks.

medium

Low opacity element covering content

opacity-hiding ✓ Passed

Elements with very low opacity positioned over other content can be used for clickjacking by making the user think they are clicking on visible elements.

low

Text selection disabled on important content

user-select-manipulation ✓ Passed

Disabling text selection (user-select: none) on elements containing links or forms can prevent users from verifying URLs or content.

high

Unencrypted WebSocket (ws://) on HTTPS page

websocket-insecure ✓ Passed

Using unencrypted WebSocket connections (ws://) on HTTPS pages exposes the WebSocket traffic to man-in-the-middle attacks, defeating the purpose of HTTPS.

medium

WebSocket connection to different origin

websocket-cross-origin ✓ Passed

WebSocket connections to different origins may expose data to third parties. Ensure cross-origin WebSocket connections are intentional and to trusted endpoints.

medium

WebSocket connection without visible authentication

websocket-no-auth ✓ Passed

WebSocket connections that do not appear to include authentication tokens in the URL or initial message may be vulnerable to unauthorized access.

high

WebSocket message used in dangerous sink

websocket-message-sink ✓ Passed

WebSocket messages used directly in innerHTML, eval, or similar sinks without validation can lead to XSS if the server sends malicious data or is compromised.

high

SVG element contains script or event handlers

svg-script-content ✓ Passed

SVG elements can contain <script> tags or event handlers that execute JavaScript. Many sanitizers fail to properly handle SVG namespaces, creating mXSS vulnerabilities.

medium

MathML element with potential namespace confusion

mathml-namespace-abuse ✓ Passed

MathML elements can be used for namespace confusion attacks where elements are parsed differently than expected, bypassing sanitizers.

medium

Deeply nested or unusual element structure

nested-parsing-abuse ✓ Passed

Deeply nested elements or unusual combinations (like noscript inside noscript, or template inside foreignObject) can cause parser confusion leading to mXSS.

low

Style tag in unusual context

style-tag-abuse ✓ Passed

Style tags inside SVG, MathML, or other foreign content can behave unexpectedly and may be used to inject CSS or escape to HTML context.

high

DOMParser used without sanitization

unsafe-dom-parsing ✓ Passed

Using DOMParser to parse HTML and then inserting it into the document without sanitization can lead to XSS, as DOMParser does not sanitize content.

high

Private IP Access

private-ip-access ✓ Passed

Detects JavaScript making requests to private IP ranges, which could be exploited via DNS rebinding

medium

Host Header Validation Missing

host-header-unvalidated ✓ Passed

Detects signs that Host header may not be validated, enabling DNS rebinding attacks

medium

WebSocket Rebinding Risk

websocket-rebinding-risk ✓ Passed

Detects WebSocket connections without origin validation that could be exploited via DNS rebinding

high

CORS Configuration Rebinding Risk

cors-rebinding-risk ✓ Passed

Detects CORS configurations that could be exploited in conjunction with DNS rebinding

medium

Unsafe String Comparison

unsafe-string-comparison ✓ Passed

Detects string comparisons that may be vulnerable to timing attacks

low

Early Return in Authentication

early-return-auth ✓ Passed

Detects early return patterns in authentication code

info

High Resolution Timing API

high-resolution-timing ✓ Passed

Detects usage of high-resolution timing APIs

low

Array Length Timing Leak

array-length-timing ✓ Passed

Detects patterns where array iteration could leak length

medium

Missing Vary Header

missing-vary-header ✓ Passed

Detects responses that may be cached without proper Vary header

high

Unkeyed Header Reflection

unkeyed-header-reflection ✓ Passed

Detects reflection of headers typically unkeyed in caches

medium

Cache-Control Misconfiguration

cache-control-misconfigured ✓ Passed

Detects potentially dangerous cache-control configurations

high

URL Parameter Reflection in Cacheable Response

parameter-cache-reflection ✓ Passed

Detects URL parameter reflection that could enable cache poisoning

low

Fat GET Request Pattern

fat-get-request ✓ Passed

Detects GET requests with body data that could confuse caches

high

Potentially Unclaimed Cloud Resource

cloud-resource-unclaimed ✓ Passed

Detects references to cloud services vulnerable to subdomain takeover

medium

Dangling CNAME Reference in JavaScript

dangling-cname-js ✓ Passed

Detects JavaScript references to subdomains that could be taken over

high

Broken External Resource

broken-external-resource ✓ Passed

Detects external resources that could indicate takeover opportunity

medium

Mail Service Subdomain Reference

mail-subdomain-reference ✓ Passed

Detects mail service subdomains vulnerable to takeover

critical

CORS Wildcard with Credentials

cors-wildcard-credentials ✓ Passed

Detects CORS with credentials that may have wildcard origin

high

CORS Null Origin

cors-null-origin ✓ Passed

Detects patterns that may accept null origin

high

CORS Origin Reflection Pattern

cors-origin-reflection ✓ Passed

Detects patterns indicating origin reflection

medium

Overly Permissive CORS Preflight

cors-preflight-permissive ✓ Passed

Detects overly permissive CORS preflight handling

high

CORS Internal Network Access

cors-internal-access ✓ Passed

Detects CORS requests to internal network

high

Content-Length Header Manipulation

content-length-manipulation ✓ Passed

Detects manual Content-Length header manipulation

medium

Transfer-Encoding Header Usage

transfer-encoding-usage ✓ Passed

Detects Transfer-Encoding header usage

medium

Ambiguous HTTP Request Pattern

ambiguous-request ✓ Passed

Detects patterns that could create ambiguous HTTP requests

low

HTTP/2 Downgrade Pattern

http2-downgrade ✓ Passed

Detects patterns exploiting HTTP/2 to HTTP/1.1 translation

medium

JSON.parse with Reviver Function

json-parse-reviver ✓ Passed

Detects JSON.parse with reviver function that could execute code during parsing

high

Function Constructor Deserialization

function-constructor-deser ✓ Passed

Detects use of Function constructor which can execute arbitrary code

critical

Eval-based Deserialization

eval-deserialization ✓ Passed

Detects eval usage for parsing data, which enables code execution

medium

jQuery Deserialization Methods

jquery-deser-methods ✓ Passed

Detects jQuery methods that can deserialize untrusted data unsafely

high

PostMessage Data Deserialization

postmessage-deser ✓ Passed

Detects postMessage handlers that parse data without origin validation

medium

TOCTOU Pattern

toctou-pattern ✓ Passed

Detects time-of-check-time-of-use patterns that could be exploited

medium

Unsynchronized Shared State

unsync-shared-state ✓ Passed

Detects shared state access without proper synchronization

low

Double Submit Risk

double-submit-risk ✓ Passed

Detects forms or actions vulnerable to double-submit race conditions

low

Parallel Fetch Race Condition

parallel-fetch-race ✓ Passed

Detects parallel fetch calls that might create race conditions

low

LocalStorage Race Condition

localstorage-race ✓ Passed

Detects localStorage operations that could race across tabs

medium

Missing Permissions Policy

missing-permissions-policy ✓ Passed

Detects pages using sensitive features without Permissions Policy restrictions

medium

Overly Permissive Iframe Allow

iframe-allow-permissive ✓ Passed

Detects iframes with overly permissive allow attribute

low

Autoplay Without Policy

autoplay-without-policy ✓ Passed

Detects media autoplay usage that should be controlled by policy

low

Motion Sensor Access

sensor-access ✓ Passed

Detects access to motion sensors that could be used for fingerprinting

high

document.domain Usage

document-domain-usage ✓ Passed

Detects document.domain usage which is deprecated and weakens security

high

Math.random for Security

math-random-security ✓ Passed

Detects Math.random usage in security-sensitive contexts

critical

Hardcoded Cryptographic Secrets

hardcoded-crypto-secrets ✓ Passed

Detects hardcoded keys, IVs, or secrets in JavaScript

high

Deprecated Crypto API

deprecated-crypto-api ✓ Passed

Detects usage of deprecated or insecure cryptographic APIs

high

Weak Password Hashing

weak-password-hashing ✓ Passed

Detects client-side password hashing with weak algorithms

medium

Crypto Subtle Usage Issues

crypto-subtle-validation ✓ Passed

Detects potential issues with Web Crypto API usage

high

Catastrophic Backtracking Pattern

catastrophic-backtracking ✓ Passed

Detects regex patterns vulnerable to catastrophic backtracking

high

Unbounded Regex on User Input

unbounded-regex-input ✓ Passed

Detects regex with unbounded repetition applied to user input

medium

Potentially Vulnerable Email Regex

email-regex-redos ✓ Passed

Detects email validation regex that may be vulnerable to ReDoS

medium

Potentially Vulnerable URL Regex

url-regex-redos ✓ Passed

Detects URL validation regex that may be vulnerable to ReDoS

critical

Regex Created from User Input

regex-from-input ✓ Passed

Detects RegExp created from user-controlled input

medium

Internal Package Name Reference

internal-package-reference ✓ Passed

Detects references to package names that appear to be internal/private

low

Uncommon CDN Package

uncommon-cdn-package ✓ Passed

Detects CDN references to packages that may be vulnerable to confusion attacks

medium

Dynamic Import Risk

dynamic-import-risk ✓ Passed

Detects dynamic imports that could be vulnerable to dependency confusion

high

Scoped Package Without Registry Lock

scoped-package-risk ✓ Passed

Detects scoped packages that could be hijacked if scope is not registered

high

URL Parameter to Fetch

url-param-to-fetch ✓ Passed

Detects URL parameters being passed to fetch/XHR requests

high

User Input in URL Construction

user-input-url ✓ Passed

Detects user input being used to construct request URLs

medium

Proxy Endpoint Usage

proxy-endpoint-usage ✓ Passed

Detects usage of proxy or redirect endpoints that could be exploited

medium

Webhook Configuration Interface

webhook-config ✓ Passed

Detects webhook configuration that could be abused for SSRF

medium

Media URL from User Input

media-url-from-input ✓ Passed

Detects media elements with URLs from user input

high

window.opener Access

window-opener-access ✓ Passed

Detects access to window.opener which can enable tabnabbing

medium

window.open Without noopener

window-open-no-noopener ✓ Passed

Detects window.open calls that may expose opener reference

medium

Cross-Origin Frame Access

cross-origin-frame-access ✓ Passed

Detects attempts to access cross-origin frames

medium

postMessage to opener

postmessage-to-opener ✓ Passed

Detects postMessage being sent to window.opener

low

Sensitive Data in New Tab Link

sensitive-data-new-tab ✓ Passed

Detects links that open in new tab with sensitive URL parameters

medium

Polyglot File Pattern

polyglot-file-pattern ✓ Passed

Detects file references that could be polyglot files

medium

JSONP Endpoint

jsonp-endpoint ✓ Passed

Detects JSONP endpoints which can have content-type confusion

high

Executable Data URL

data-url-executable ✓ Passed

Detects data: URLs that could contain executable content

medium

Blob URL XSS Risk

blob-url-xss ✓ Passed

Detects blob: URLs that could be used for XSS

low

MIME Sniffing Risk

mime-sniffing-risk ✓ Passed

Detects patterns that could be exploited via MIME sniffing

medium

Admin or sensitive routes exposed in JavaScript

exposed-admin-routes ✓ Passed

JavaScript bundles contain references to admin panels, debug endpoints, or internal routes. Attackers can discover these by searching the source code.

medium

Hidden form field may be manipulable

manipulable-hidden-fields ✓ Passed

Hidden form fields containing user IDs, role information, prices, or other sensitive values can be modified by attackers using browser dev tools or intercepting proxies.

medium

Source maps exposed in production

exposed-source-maps ✓ Passed

JavaScript source maps (*.map files) are referenced, which could expose original source code, internal paths, and potentially sensitive comments or logic to attackers.

low

Client-side validation can be bypassed

bypassable-client-validation ✓ Passed

Form controls use client-side only validation (disabled buttons, maxlength, pattern) without apparent server-side enforcement. Attackers can bypass these by modifying the DOM or intercepting requests.

high

Hardcoded secrets in JavaScript

hardcoded-secrets ✓ Passed

JavaScript contains hardcoded credentials, coupon codes, encryption keys, or other secrets that should not be exposed in client-side code.

medium

Debug or development endpoints exposed

debug-endpoints-exposed ✓ Passed

Page contains references to debug endpoints, stack trace information, or development tools that should not be accessible in production.

high

Known vulnerable library detected

vulnerable-libraries ✗ 2 violation(s)

The page loads JavaScript libraries with known security vulnerabilities. These should be updated to patched versions.

Violations

Vulnerable library jQuery detected (CVE-2020-11022)
URL: https://the-internet.herokuapp.com/ Vulnerable library detected in script URL. Library: jQuery CVE: CVE-2020-11022 Severity: medium Matched pattern: jquery-1.11.3 The version was identified from the script filename/URL. Script tag: <script src="/js/vendor/jquery-1.11.3.min.js"></script>
🔍 Find in page:
Vulnerable jQuery v1.11.3 loaded (CVE-2020-11022)
<jQuery version="1.11.3">
🔍 Find in page:
How to fix
Update vulnerable libraries to their latest patched versions. Use tools like npm audit, Snyk, or OWASP Dependency-Check to identify vulnerable dependencies.
high

PHP error message exposed

php-error-exposure ✓ Passed

PHP error messages are visible in the page, revealing server paths, code structure, and potentially sensitive configuration details. This indicates display_errors is enabled in production.

high

PHP info page detected

phpinfo-exposed ✓ Passed

The page appears to be a phpinfo() output, which reveals extensive information about PHP configuration, server environment, and installed modules.

high

PHP session ID in URL

php-session-in-url ✓ Passed

PHP session ID (PHPSESSID) is passed in the URL, making it vulnerable to session fixation attacks, referrer leakage, and browser history exposure.

high

ASP.NET error page exposed

aspnet-error-exposure ✓ Passed

ASP.NET error page (YSOD - Yellow Screen of Death) is visible, revealing stack traces, source code snippets, and server configuration details.

medium

ASP.NET ViewState potentially vulnerable

aspnet-viewstate-vulnerable ✓ Passed

ASP.NET ViewState is present and may be vulnerable to tampering or deserialization attacks if not properly protected with MAC validation.

low

ASP.NET version disclosed

aspnet-version-disclosure ✓ Passed

ASP.NET version information is disclosed in page content or meta tags, helping attackers identify potential vulnerabilities for that version.

high

Java exception/stack trace exposed

java-error-exposure ✓ Passed

Java exception details or stack traces are visible in the page, revealing class names, method signatures, and potentially sensitive internal paths.

high

Java session ID in URL

java-session-in-url ✓ Passed

Java session ID (JSESSIONID) is present in URLs, making it vulnerable to session fixation, referrer leakage, and URL sharing attacks.

medium

WordPress version disclosed

wordpress-version-disclosure ✓ Passed

WordPress version is disclosed through meta tags, script URLs, or readme files. This helps attackers identify known vulnerabilities for that version.

medium

WordPress sensitive path referenced

wordpress-sensitive-paths ✓ Passed

References to sensitive WordPress paths like wp-config.php, xmlrpc.php, or debug.log indicate potential security risks.

info

CMS platform detected

cms-detection ✓ Passed

A content management system (CMS) has been detected. This information helps identify potential platform-specific vulnerabilities.

medium

Angular debug mode enabled

angular-debug-mode ✓ Passed

Angular is running in development/debug mode, which provides detailed error messages and debugging information that should not be exposed in production.

low

React development build detected

react-development-build ✓ Passed

React is running in development mode, which is slower and includes extra warnings. Production builds should use minified React.

low

Vue.js development mode detected

vue-development-mode ✓ Passed

Vue.js is running in development mode, which includes additional warnings and Vue DevTools support that should be disabled in production.

high

jQuery HTML method with external data

jquery-html-methods ✓ Passed

jQuery methods like .html(), .append(), .prepend(), .after(), .before(), and .replaceWith() can execute scripts when used with untrusted data.

high

jQuery selector with external input

jquery-selector-injection ✓ Passed

Passing user-controlled input to jQuery selector $() can lead to XSS if the input contains HTML, as jQuery parses HTML strings.

medium

DOM-based open redirect

dom-open-redirect ✓ Passed

Assigning user-controlled input to location.href, location.assign(), location.replace(), or window.open() can lead to open redirect vulnerabilities.

low

History API with untrusted data

history-api-abuse ✓ Passed

Using history.pushState() or history.replaceState() with user-controlled URLs can be used for phishing by spoofing the URL bar.

high

Fetch/XHR response inserted into DOM unsafely

unsafe-response-injection ✓ Passed

Inserting fetch() or XMLHttpRequest response data directly into innerHTML without sanitization can lead to XSS if the response contains malicious content.

high

JSONP with user-controlled callback

jsonp-callback-injection ✓ Passed

JSONP requests where the callback parameter is derived from user input can lead to XSS if the callback name is not properly validated.

critical

Dynamic script injection with external data

dynamic-script-injection ✓ Passed

Creating script elements dynamically with user-controlled src URLs or content can lead to XSS or malicious script execution.

high

setAttribute with dangerous attribute and external data

unsafe-setattribute ✓ Passed

Using setAttribute() to set src, href, or event handler attributes with user-controlled values can lead to XSS or open redirect.

medium

Tracking pixel detected

tracking-pixels ✓ Passed

Invisible 1x1 pixel images or hidden images are commonly used for user tracking without consent. These can leak browsing data to third parties.

medium

Beacon API used for data transmission

beacon-exfiltration ✓ Passed

navigator.sendBeacon() is used to send data that persists even when the page unloads. This can be used for tracking or data exfiltration.

high

Invisible iframe detected

invisible-iframes ✓ Passed

Iframes hidden via CSS (display:none, visibility:hidden, 0x0 size, off-screen positioning) can perform hidden actions like clickjacking, voting, or unauthorized transactions.

medium

Hidden clickable element detected

invisible-clickables ✗ 1 violation(s)

Links, buttons, or forms that are invisible or positioned off-screen can be used for clickjacking, hidden submissions, or SEO manipulation.

Violations

Hidden a element (1x1 size)
URL: https://the-internet.herokuapp.com/ Hidden a detected with: 1x1 size Position: left=1140px, top=32px, 0x0px Element HTML: <a href="https://github.com/tourdedave/the-internet"><img style="position: absolute; top: 0; right: 0; border: 0;" src="/img/forkme_right_green_007200.png" alt="Fork me on GitHub"></a>
🔍 Find in page:
How to fix
Remove hidden interactive elements. If needed for accessibility, use proper ARIA attributes. Avoid CSS tricks to hide functional elements.
low

DNS prefetch to external domain

dns-prefetch-external ✓ Passed

DNS prefetch and preconnect to external domains can leak browsing information and be used for tracking even if resources are never loaded.

medium

WebRTC usage detected (potential IP leak)

webrtc-ip-leak ✓ Passed

RTCPeerConnection can expose real IP addresses even when users are behind VPNs or proxies. This is a significant privacy concern.

medium

Browser fingerprinting detected

browser-fingerprinting ✓ Passed

Scripts accessing multiple browser properties (screen size, plugins, fonts, WebGL, Canvas) together suggest device fingerprinting for tracking.

medium

Canvas fingerprinting pattern detected

canvas-fingerprinting ✓ Passed

Canvas-based fingerprinting creates unique identifiers by rendering text/graphics and extracting pixel data. This enables cross-site tracking.

high

Clipboard manipulation detected

clipboard-hijacking ✓ Passed

Scripts that write to the clipboard can replace copied content with malicious payloads, potentially leading to code injection when users paste.

high

CSS-based data exfiltration pattern

css-attribute-exfiltration ✓ Passed

CSS attribute selectors combined with background-image URLs can exfiltrate input values character by character without JavaScript.

low

Technology version disclosed in HTML

technology-disclosure ✓ Passed

Server technology, framework versions, or generator information exposed in meta tags or HTML comments helps attackers identify known vulnerabilities.

medium

Geolocation API usage detected

geolocation-access ✓ Passed

Scripts accessing navigator.geolocation can track user's precise physical location. This should only be used when clearly necessary and with user consent.

low

Notification API permission request

notification-abuse ✓ Passed

Scripts requesting notification permissions can be used for spam, phishing, or social engineering attacks via browser notifications.

low

Battery API usage detected

battery-api-abuse ✓ Passed

The Battery Status API can be used for device fingerprinting. Battery level, charging status, and time create a semi-unique identifier.

low

Vibration API usage detected

vibration-api-abuse ✓ Passed

The Vibration API can be abused for attention-grabbing malware, covert communication channels, or user annoyance attacks.

medium

Payment Request API detected

payment-api-usage ✓ Passed

The Payment Request API initiates payment flows. Ensure it is only triggered by explicit user action and clearly displays payment details.

low

Web Share API detected

web-share-usage ✓ Passed

The Web Share API can share content to other apps. Ensure shared content is what users expect and not attacker-controlled.

medium

Web Bluetooth API detected

bluetooth-api-usage ✓ Passed

The Web Bluetooth API can discover and connect to nearby Bluetooth devices. This poses privacy and security risks if misused.

medium

WebUSB API detected

webusb-api-usage ✓ Passed

The WebUSB API can access connected USB devices, potentially exposing sensitive hardware or enabling attacks on connected devices.

medium

Web Serial API detected

webserial-api-usage ✓ Passed

The Web Serial API can access serial ports, potentially communicating with industrial equipment, microcontrollers, or other sensitive devices.

medium

Media device enumeration detected

media-device-enumeration ✓ Passed

Enumerating media devices (cameras, microphones) can be used for device fingerprinting by creating unique device ID lists.

medium

AudioContext fingerprinting pattern

audio-fingerprinting ✓ Passed

AudioContext with oscillator and analyser nodes can create unique audio fingerprints for cross-site tracking.

medium

Font enumeration fingerprinting

font-enumeration ✓ Passed

Iterating through fonts and measuring text width to detect installed fonts creates a unique device fingerprint.

medium

WebGL fingerprinting pattern

webgl-fingerprinting ✓ Passed

Accessing WebGL debug renderer info (WEBGL_debug_renderer_info) reveals GPU details that create unique device fingerprints.

medium

window.name data channel

window-name-channel ✓ Passed

window.name persists across page navigations and can be used as a covert channel to pass data between origins or exfiltrate information.

medium

Meta refresh redirect detected

meta-refresh-redirect ✓ Passed

Meta refresh tags can redirect users without JavaScript, potentially to malicious sites. They can bypass some redirect protections.

high

Base tag with external href

base-tag-hijacking ✓ Passed

The <base> tag changes the base URL for all relative links. An external base href can redirect form submissions and links to attacker-controlled servers.

medium

Iframe with srcdoc attribute

iframe-srcdoc-content ✓ Passed

The srcdoc attribute embeds HTML directly in an iframe. If user-controlled, this can lead to XSS without loading an external URL.

low

Performance timing enumeration

performance-timing-leak ✓ Passed

The Resource Timing API can leak information about cross-origin resources, potentially revealing user state or cached resources.

medium

Credential Management API detected

credential-api-usage ✓ Passed

The Credential Management API can access stored credentials. Ensure it is used securely and only for legitimate authentication.

low

IndexedDB usage detected

indexeddb-usage ✓ Passed

IndexedDB can store large amounts of data client-side. Ensure sensitive data is encrypted and properly managed.

high

JavaScript bridge interface exposed

js-bridge-exposure ✓ Passed

WebView JavaScript bridges (Android addJavascriptInterface, iOS messageHandlers) can be exploited if the page is loaded in a vulnerable webview or if XSS occurs.

low

Missing or improper viewport meta tag

missing-viewport ✓ Passed

Pages without proper viewport configuration may allow zooming attacks or tapjacking. user-scalable=no can prevent accessibility but may be required for security.

medium

Touch event capturing detected

touch-event-hijacking ✓ Passed

Scripts capturing touch events (touchstart, touchend, touchmove) on document or body level may be attempting tapjacking or UI redress attacks.

medium

Device orientation/motion API usage

device-motion-abuse ✓ Passed

Access to device orientation and motion sensors can be used for fingerprinting, keystroke inference, or tracking user movements.

high

file:// protocol references detected

file-protocol-access ✓ Passed

References to file:// URLs may indicate the page expects to run in a webview with file access enabled, which can lead to local file theft.

medium

Sensitive input fields detected

sensitive-input-webview ✓ Passed

Password, credit card, and other sensitive inputs in pages loaded via webview could be intercepted by malicious apps through JavaScript injection.

medium

Clipboard access detected

mobile-clipboard-access ✓ Passed

Clipboard access on mobile devices can expose sensitive data like passwords, 2FA codes, or cryptocurrency addresses that users frequently copy.

medium

Screen capture API usage detected

screen-capture-detection ✓ Passed

Screen capture APIs (getDisplayMedia) can be used to record sensitive content displayed on the device.

medium

WebGL fingerprinting detected

webgl-fingerprinting ✓ Passed

WebGL can expose detailed GPU information (renderer, vendor, extensions) that creates a unique device fingerprint. This is commonly used for tracking.

info

WebGL context detected

webgl-context-usage ✓ Passed

Page creates WebGL or WebGL2 rendering contexts. While legitimate for 3D graphics, WebGL can be used for fingerprinting and may have security implications.

info

WebGPU API usage detected

webgpu-usage ✓ Passed

WebGPU is a modern graphics API that provides lower-level GPU access than WebGL. It can expose detailed hardware information and may have security implications.

medium

Media capture API usage detected

media-capture-usage ✓ Passed

Page requests access to camera, microphone, or screen capture. These are sensitive permissions that should only be requested when necessary.

medium

Web3/Crypto wallet interaction detected

web3-wallet-interaction ✓ Passed

Page interacts with cryptocurrency wallets (MetaMask, etc.). This can expose wallet addresses and may request transaction signing.

medium

WebXR (VR/AR) API usage detected

webxr-usage ✓ Passed

Page uses WebXR API for virtual or augmented reality. This can access device sensors, cameras, and spatial tracking data.

medium

Web Speech API usage detected

web-speech-usage ✓ Passed

Page uses speech recognition or synthesis. Speech recognition can capture audio and may send it to external servers for processing.

low

Potentially deceptive animations detected

web-animation-abuse ✓ Passed

Page uses animations that could be used for UI deception, such as moving elements, fake loading indicators, or visual misdirection.

low

Picture-in-Picture API usage detected

picture-in-picture-usage ✓ Passed

Page uses Picture-in-Picture API which creates a floating video window. This could potentially be abused for UI spoofing attacks.

high

File System Access API usage detected

file-system-access ✓ Passed

Page uses File System Access API which can read and write files on the local system. This is a powerful permission that should be used carefully.

low

Web MIDI API usage detected

web-midi-usage ✓ Passed

Page requests access to MIDI devices. This can reveal connected musical instruments and controllers, contributing to device fingerprinting.

low

Gamepad API usage detected

gamepad-fingerprinting ✓ Passed

Page accesses connected gamepads. The specific controllers and their IDs can be used for device fingerprinting.

info

WebCodecs API usage detected

web-codecs-usage ✓ Passed

Page uses WebCodecs API for low-level video/audio encoding/decoding. This provides direct access to media codecs.

medium

Web NFC API usage detected

web-nfc-usage ✓ Passed

Page uses Web NFC API for near-field communication. NFC can read/write to contactless cards and tags.

low

Compression Streams API usage detected

compression-streams-usage ✓ Passed

Page uses Compression Streams API. While legitimate for reducing bandwidth, compression can also be used to efficiently exfiltrate data.

medium

Background Sync API usage detected

background-sync-usage ✓ Passed

Page uses Background Sync API which can queue network requests to be sent when connectivity is restored, even after the page is closed.

high

Potentially malformed URL patterns detected

malformed-url-exploitation ✓ Passed

URLs with unusual patterns (backslashes, null bytes, excessive encoding, protocol confusion) may attempt to exploit parser differences or bypass security controls.

critical

Prototype chain manipulation detected

prototype-chain-manipulation ✓ Passed

Scripts that modify Object.prototype, Array.prototype, or use __proto__ may be attempting prototype pollution attacks that can lead to sandbox escape.

medium

Suspicious geolocation API usage

geolocation-abuse ✓ Passed

Geolocation API usage that may be excessive, automated, or combined with data exfiltration patterns.

high

Potentially dangerous Blob URL usage

blob-url-exploitation ✓ Passed

Blob URLs created from user input or external data can be used to bypass CSP, create downloadable malware, or execute code in isolated contexts.

medium

Web Worker security concerns

web-worker-security ✓ Passed

Web Workers can execute code in isolated contexts, potentially bypassing main thread security controls. Workers from blob URLs or with postMessage can be exploited.

medium

Potential timing attack vectors

timing-attack-vectors ✓ Passed

High-resolution timing APIs and cross-origin timing measurements can leak sensitive information about other origins or enable Spectre-style attacks.

high

Potential memory exhaustion patterns

memory-exhaustion-attempts ✓ Passed

Code patterns that could rapidly allocate memory (infinite loops, recursive allocations, large arrays) may be attempting to crash the browser or cause DoS.

high

Potential iframe sandbox escape attempts

iframe-sandbox-escape ✓ Passed

Scripts attempting to access parent/top frames, break out of iframes, or detect sandbox restrictions may be attempting to escape security boundaries.

medium

Suspicious browser API usage combination

browser-api-abuse ✓ Passed

Unusual combinations of browser APIs (error handlers + eval, navigator probing + network requests) may indicate exploitation or advanced fingerprinting.

critical

Potential Spectre-style attack patterns

spectre-bypass-attempts ✓ Passed

Code using SharedArrayBuffer, high-resolution timers, and cache probing techniques may be attempting Spectre-style speculative execution attacks.

medium

Potential permission prompt abuse

permission-prompt-abuse ✓ Passed

Scripts that rapidly request permissions, request multiple permissions simultaneously, or use social engineering patterns to obtain permissions.

medium

Potentially deceptive ARIA attributes

aria-deception ✓ Passed

ARIA attributes that misrepresent element purpose, state, or content can deceive screen reader users into performing unintended actions.

medium

Potentially abusive ARIA role usage

role-abuse ✓ Passed

Elements with ARIA roles that contradict their actual behavior can confuse assistive technology users and potentially trick them into unintended actions.

medium

Potentially abusive ARIA live regions

live-region-abuse ✓ Passed

Aggressive aria-live regions (especially assertive) can interrupt screen reader users with urgent messages, potentially for phishing or scam purposes.

high

Potential keyboard trap detected

keyboard-trap ✓ Passed

Elements that capture keyboard focus without providing an escape mechanism can trap keyboard and screen reader users, potentially forcing them to reload or preventing access to content.

high

Visually hidden interactive content

hidden-interactive-content ✓ Passed

Elements that are visually hidden (via CSS) but remain in tab order can trick keyboard users into activating hidden links or buttons.

medium

Screen reader only content with suspicious patterns

sr-only-injection ✓ Passed

Content visible only to screen readers (using sr-only/visually-hidden classes) that contains links, forms, or suspicious text could be used to phish AT users.

medium

Aggressive focus management detected

focus-stealing ✓ Passed

Scripts that repeatedly call focus() or blur() can disorient keyboard and screen reader users, potentially directing them to malicious elements.

medium

Potentially malicious accesskey usage

accesskey-hijacking ✓ Passed

Accesskeys that conflict with browser shortcuts or use common keys could hijack keyboard commands, causing unintended actions.

medium

Potentially misleading alt text

alt-text-abuse ✓ Passed

Images with alt text that contains suspicious content, doesn't match the image context, or includes hidden instructions could mislead screen reader users.

medium

Locale parameter potentially injectable

locale-injection ✓ Passed

URL parameters controlling language or locale can be exploited to inject invalid locales, trigger error conditions, or bypass security controls that differ by region.

high

Potential text direction manipulation

text-direction-abuse ✓ Passed

Bidirectional text control characters or inconsistent dir attributes can be used to disguise malicious URLs, filenames, or content through visual spoofing.

high

Potential homoglyph attack in localized content

i18n-homoglyph-attacks ✓ Passed

Unicode characters that look similar to ASCII characters (homoglyphs) can be used to create deceptive URLs, usernames, or content that appears legitimate but directs to malicious destinations.

high

SVG XSS Vulnerability

svg-xss ✓ Passed

Detects SVG elements containing script tags or event handlers that could execute JavaScript

high

SVG foreignObject Injection Risk

svg-foreign-object ✓ Passed

Detects SVG foreignObject elements which can embed arbitrary HTML content and potentially execute scripts

medium

SVG Embedded Content Risk

svg-embedded-content ✓ Passed

Detects SVG files loaded via object, embed, or iframe which have full script execution capabilities

Element Source