<!DOCTYPE html><head><!--
    Standard meta
 --><meta charset="UTF-8"><meta name="title" content="HackTalk Security Blog"><meta name="description" content="HackTalk Security Blog: terms and definitions explained by Aptive Consultings security professionals"><meta name="author" content="Aptive Consulting Ltd"><meta name="theme-color" content="#151723"><meta name="viewport" content="width=device-width"><meta name="msapplication-TileColor" content="#151723"><meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"><meta name="viewport" content="width=device-width, initial-scale=1"><!--
    Set the Canonical URL
 --><link rel="canonical" href="https://www.aptive.co.uk/hacktalk/"><!---------------------
    open graph standard
---------------------><meta property="og:title" content="HackTalk Security Blog - Aptive"><meta property="og:description" content="HackTalk Security Blog: terms and definitions explained by Aptive Consultings security professionals"><meta property="og:type" content="website"><meta property="og:url" content="https://www.aptive.co.uk/hacktalk/"><!---------------------
     open graph Meta
---------------------><meta property="og:image" content="https://www.aptive.co.uk/undefined"><!---------------------
    Open Graph Twitter
 ---------------------><meta property="og:site_name" content="HackTalk Security Blog"><meta name="twitter:card" content="summary_large_image"><meta name="twitter:description" content="HackTalk Security Blog: terms and definitions explained by Aptive Consultings security professionals"><meta name="twitter:image" content="https://www.aptive.co.uk//path/to/OpenGraph-TwitterImage"><title>HackTalk Security Blog - Aptive</title><style>*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content:""}html{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:Inter,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}h1,h2,h3{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b{font-weight:bolder}button,input,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;color:inherit;margin:0;padding:0}button{text-transform:none}button,[type=submit]{-webkit-appearance:button;background-color:transparent;background-image:none}h1,h2,h3,p{margin:0}ol,ul{list-style:none;margin:0;padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button{cursor:pointer}img,svg{display:block;vertical-align:middle}img{max-width:100%;height:auto}[type=text],[type=email],textarea{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:#fff;border-color:#6b7280;border-width:1px;border-radius:0;padding:.5rem .75rem;font-size:1rem;line-height:1.5rem;--tw-shadow:0 0 #0000}[type=text]:focus,[type=email]:focus,textarea:focus{outline:2px solid transparent;outline-offset:2px;--tw-ring-inset:var(--tw-empty, );--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:#2563eb;--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow);border-color:#2563eb}input::-moz-placeholder,textarea::-moz-placeholder{color:#6b7280;opacity:1}input::placeholder,textarea::placeholder{color:#6b7280;opacity:1}[type=checkbox]{-webkit-appearance:none;-moz-appearance:none;appearance:none;padding:0;-webkit-print-color-adjust:exact;print-color-adjust:exact;display:inline-block;vertical-align:middle;background-origin:border-box;-webkit-user-select:none;-moz-user-select:none;user-select:none;flex-shrink:0;height:1rem;width:1rem;color:#2563eb;background-color:#fff;border-color:#6b7280;border-width:1px;--tw-shadow:0 0 #0000}[type=checkbox]{border-radius:0}[type=checkbox]:focus{outline:2px solid transparent;outline-offset:2px;--tw-ring-inset:var(--tw-empty, );--tw-ring-offset-width:2px;--tw-ring-offset-color:#fff;--tw-ring-color:#2563eb;--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}[type=checkbox]:checked{border-color:transparent;background-color:currentColor;background-size:100% 100%;background-position:center;background-repeat:no-repeat}[type=checkbox]:checked{background-image:url("data:image/svg+xml,%3csvg viewBox='0 0 16 16' fill='white' xmlns='http://www.w3.org/2000/svg'%3e%3cpath d='M12.207 4.793a1 1 0 010 1.414l-5 5a1 1 0 01-1.414 0l-2-2a1 1 0 011.414-1.414L6.5 9.086l4.293-4.293a1 1 0 011.414 0z'/%3e%3c/svg%3e")}@media (forced-colors: active){[type=checkbox]:checked{-webkit-appearance:auto;-moz-appearance:auto;appearance:auto}}[type=checkbox]:checked:hover,[type=checkbox]:checked:focus{border-color:transparent;background-color:currentColor}[type=checkbox]:indeterminate{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 16 16'%3e%3cpath stroke='white' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M4 8h8'/%3e%3c/svg%3e");border-color:transparent;background-color:currentColor;background-size:100% 100%;background-position:center;background-repeat:no-repeat}@media (forced-colors: active){[type=checkbox]:indeterminate{-webkit-appearance:auto;-moz-appearance:auto;appearance:auto}}[type=checkbox]:indeterminate:hover,[type=checkbox]:indeterminate:focus{border-color:transparent;background-color:currentColor}*,:before,:after{--tw-scrollbar-gutter-modifier: ;--tw-scrollbar-thumb-color: ;--tw-scrollbar-track-color: ;--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgb(59 130 246 / .5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: }.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.inset-0{inset:0}.bottom-5{bottom:1.25rem}.bottom-\[100px\]{bottom:100px}.left-0{left:0}.left-1\/2{left:50%}.right-0{right:0}.right-5{right:1.25rem}.top-0{top:0}.z-40{z-index:40}.z-50{z-index:50}.mx-auto{margin-left:auto;margin-right:auto}.mb-12{margin-bottom:3rem}.mb-2{margin-bottom:.5rem}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.ml-2{margin-left:.5rem}.mt-1{margin-top:.25rem}.mt-10{margin-top:2.5rem}.mt-12{margin-top:3rem}.mt-2{margin-top:.5rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.mt-5{margin-top:1.25rem}.mt-6{margin-top:1.5rem}.mt-8{margin-top:2rem}.line-clamp-1{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:1}.block{display:block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.grid{display:grid}.hidden{display:none}.aspect-\[2\/1\]{aspect-ratio:2/1}.h-10{height:2.5rem}.h-14{height:3.5rem}.h-32{height:8rem}.h-4{height:1rem}.h-6{height:1.5rem}.h-7{height:1.75rem}.h-8{height:2rem}.h-\[calc\(100\%-95px\)\]{height:calc(100% - 95px)}.h-full{height:100%}.min-h-\[250px\]{min-height:250px}.w-14{width:3.5rem}.w-4{width:1rem}.w-6{width:1.5rem}.w-8{width:2rem}.w-auto{width:auto}.w-full{width:100%}.w-screen{width:100vw}.max-w-2xl{max-width:42rem}.max-w-7xl{max-width:80rem}.max-w-sm{max-width:24rem}.flex-auto{flex:1 1 auto}.flex-none{flex:none}.flex-grow{flex-grow:1}.origin-top-right{transform-origin:top right}.-translate-x-1\/2{--tw-translate-x:-50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-0{--tw-rotate:0deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.appearance-none{-webkit-appearance:none;-moz-appearance:none;appearance:none}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.flex-row{flex-direction:row}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-end{align-items:flex-end}.items-center{align-items:center}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-8{gap:2rem}.gap-x-6{-moz-column-gap:1.5rem;column-gap:1.5rem}.space-y-12>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(3rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(3rem * var(--tw-space-y-reverse))}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem * var(--tw-space-y-reverse))}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.scroll-smooth{scroll-behavior:smooth}.rounded{border-radius:.25rem}.rounded-3xl{border-radius:1.5rem}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:.5rem}.rounded-xl{border-radius:.75rem}.rounded-t-3xl{border-top-left-radius:1.5rem;border-top-right-radius:1.5rem}.rounded-t-xl{border-top-left-radius:.75rem;border-top-right-radius:.75rem}.border{border-width:1px}.border-b{border-bottom-width:1px}.border-t{border-top-width:1px}.border-vulcan-300{--tw-border-opacity:1;border-color:rgb(128 204 237 / var(--tw-border-opacity))}.border-vulcan-700{--tw-border-opacity:1;border-color:rgb(0 77 109 / var(--tw-border-opacity))}.border-vulcan-800{--tw-border-opacity:1;border-color:rgb(124 58 237 / var(--tw-border-opacity))}.border-white\/5{border-color:#ffffff0d}.bg-transparent{background-color:transparent}.bg-vulcan-900{--tw-bg-opacity:1;background-color:rgb(0 15 22 / var(--tw-bg-opacity))}.bg-vulcan-900\/20{background-color:#000f1633}.bg-gradient-to-b{background-image:linear-gradient(to bottom,var(--tw-gradient-stops))}.bg-gradient-to-r{background-image:linear-gradient(to right,var(--tw-gradient-stops))}.from-vulcan-300{--tw-gradient-from:#80cced var(--tw-gradient-from-position);--tw-gradient-to:rgb(128 204 237 / 0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from), var(--tw-gradient-to)}.from-vulcan-400{--tw-gradient-from:#33ade1 var(--tw-gradient-from-position);--tw-gradient-to:rgb(51 173 225 / 0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from), var(--tw-gradient-to)}.from-vulcan-500{--tw-gradient-from:#0099da var(--tw-gradient-from-position);--tw-gradient-to:rgb(0 153 218 / 0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from), var(--tw-gradient-to)}.from-white\/\[\.105\]{--tw-gradient-from:rgb(255 255 255 / .105) var(--tw-gradient-from-position);--tw-gradient-to:rgb(255 255 255 / 0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from), var(--tw-gradient-to)}.via-vulcan-400{--tw-gradient-to:rgb(51 173 225 / 0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from), #33ade1 var(--tw-gradient-via-position), var(--tw-gradient-to)}.via-vulcan-500\/5{--tw-gradient-to:rgb(0 153 218 / 0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from), rgb(0 153 218 / .05) var(--tw-gradient-via-position), var(--tw-gradient-to)}.to-vulcan-400{--tw-gradient-to:#33ade1 var(--tw-gradient-to-position)}.to-vulcan-500{--tw-gradient-to:#0099da var(--tw-gradient-to-position)}.to-white\/\[\.15\]{--tw-gradient-to:rgb(255 255 255 / .15) var(--tw-gradient-to-position)}.bg-clip-text{-webkit-background-clip:text;background-clip:text}.object-cover{-o-object-fit:cover;object-fit:cover}.p-2{padding:.5rem}.p-4{padding:1rem}.p-5{padding:1.25rem}.p-6{padding:1.5rem}.p-8{padding:2rem}.p-\[0\.060rem\]{padding:.06rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-8{padding-left:2rem;padding-right:2rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-12{padding-top:3rem;padding-bottom:3rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-32{padding-top:8rem;padding-bottom:8rem}.py-5{padding-top:1.25rem;padding-bottom:1.25rem}.pb-0{padding-bottom:0}.text-4xl{font-size:2.5rem;line-height:3.5rem}.text-sm{font-size:.875rem;line-height:1.5rem}.text-xs{font-size:.75rem;line-height:1rem}.font-medium{font-weight:500}.font-normal{font-weight:400}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.leading-6{line-height:1.5rem}.leading-tight{line-height:1.25}.tracking-tighter{letter-spacing:-.05em}.text-transparent{color:transparent}.text-vulcan-300{--tw-text-opacity:1;color:rgb(128 204 237 / var(--tw-text-opacity))}.text-vulcan-500{--tw-text-opacity:1;color:rgb(0 153 218 / var(--tw-text-opacity))}.text-vulcan-900{--tw-text-opacity:1;color:rgb(0 15 22 / var(--tw-text-opacity))}.text-white{--tw-text-opacity:1;color:rgb(255 255 255 / var(--tw-text-opacity))}.placeholder-vulcan-400::-moz-placeholder{--tw-placeholder-opacity:1;color:rgb(51 173 225 / var(--tw-placeholder-opacity))}.placeholder-vulcan-400::placeholder{--tw-placeholder-opacity:1;color:rgb(51 173 225 / var(--tw-placeholder-opacity))}.opacity-70{opacity:.7}.shadow-2xl{--tw-shadow:0 25px 50px -12px rgb(0 0 0 / .25);--tw-shadow-colored:0 25px 50px -12px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-vulcan-950{--tw-shadow-color:#000000;--tw-shadow:var(--tw-shadow-colored)}.ring-0{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.ring-1{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.ring-inset{--tw-ring-inset:inset}.ring-vulcan-800{--tw-ring-opacity:1;--tw-ring-color:rgb(124 58 237 / var(--tw-ring-opacity))}.ring-white\/20{--tw-ring-color:rgb(255 255 255 / .2)}.ring-white\/5{--tw-ring-color:rgb(255 255 255 / .05)}.blur-3xl{--tw-blur:blur(64px);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.backdrop-blur-2xl{--tw-backdrop-blur:blur(40px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-transform{transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.duration-200{transition-duration:.2s}.duration-300{transition-duration:.3s}.selection\:bg-vulcan-600 *::-moz-selection{--tw-bg-opacity:1;background-color:rgb(0 122 174 / var(--tw-bg-opacity))}.selection\:bg-vulcan-600 *::selection{--tw-bg-opacity:1;background-color:rgb(0 122 174 / var(--tw-bg-opacity))}.selection\:text-white *::-moz-selection{--tw-text-opacity:1;color:rgb(255 255 255 / var(--tw-text-opacity))}.selection\:text-white *::selection{--tw-text-opacity:1;color:rgb(255 255 255 / var(--tw-text-opacity))}.selection\:bg-vulcan-600::-moz-selection{--tw-bg-opacity:1;background-color:rgb(0 122 174 / var(--tw-bg-opacity))}.selection\:bg-vulcan-600::selection{--tw-bg-opacity:1;background-color:rgb(0 122 174 / var(--tw-bg-opacity))}.selection\:text-white::-moz-selection{--tw-text-opacity:1;color:rgb(255 255 255 / var(--tw-text-opacity))}.selection\:text-white::selection{--tw-text-opacity:1;color:rgb(255 255 255 / var(--tw-text-opacity))}.hover\:bg-vulcan-600:hover{--tw-bg-opacity:1;background-color:rgb(0 122 174 / var(--tw-bg-opacity))}.hover\:to-vulcan-600:hover{--tw-gradient-to:#007aae var(--tw-gradient-to-position)}.hover\:to-white\/\[\.25\]:hover{--tw-gradient-to:rgb(255 255 255 / .25) var(--tw-gradient-to-position)}.hover\:text-vulcan-400:hover{--tw-text-opacity:1;color:rgb(51 173 225 / var(--tw-text-opacity))}.hover\:text-white:hover{--tw-text-opacity:1;color:rgb(255 255 255 / var(--tw-text-opacity))}.hover\:text-white\/50:hover{color:#ffffff80}.focus\:border-vulcan-300:focus{--tw-border-opacity:1;border-color:rgb(128 204 237 / var(--tw-border-opacity))}.focus\:border-white:focus{--tw-border-opacity:1;border-color:rgb(255 255 255 / var(--tw-border-opacity))}.focus\:bg-transparent:focus{background-color:transparent}.focus\:bg-vulcan-600:focus{--tw-bg-opacity:1;background-color:rgb(0 122 174 / var(--tw-bg-opacity))}.focus\:text-white:focus{--tw-text-opacity:1;color:rgb(255 255 255 / var(--tw-text-opacity))}.focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.focus\:ring-vulcan-300:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(128 204 237 / var(--tw-ring-opacity))}.focus\:ring-white:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(255 255 255 / var(--tw-ring-opacity))}.group:hover .group-hover\:scale-110{--tw-scale-x:1.1;--tw-scale-y:1.1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group:hover .group-hover\:bg-vulcan-500{--tw-bg-opacity:1;background-color:rgb(0 153 218 / var(--tw-bg-opacity))}.group:hover .group-hover\:text-vulcan-300{--tw-text-opacity:1;color:rgb(128 204 237 / var(--tw-text-opacity))}@media (min-width: 640px){.sm\:left-auto{left:auto}.sm\:right-5{right:1.25rem}.sm\:top-auto{top:auto}.sm\:h-\[600px\]{height:600px}.sm\:w-\[350px\]{width:350px}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:text-5xl{font-size:3rem;line-height:3.5rem}.sm\:text-sm{font-size:.875rem;line-height:1.5rem}}@media (min-width: 768px){.md\:mt-0{margin-top:0}.md\:flex{display:flex}.md\:grid{display:grid}.md\:hidden{display:none}.md\:max-w-5xl{max-width:64rem}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:flex-row{flex-direction:row}.md\:items-center{align-items:center}.md\:justify-end{justify-content:flex-end}.md\:justify-between{justify-content:space-between}.md\:gap-8{gap:2rem}.md\:px-12{padding-left:3rem;padding-right:3rem}.md\:px-3{padding-left:.75rem;padding-right:.75rem}.md\:pb-0{padding-bottom:0}}@media (min-width: 1024px){.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\:justify-start{justify-content:flex-start}.lg\:space-y-0>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(0px * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(0px * var(--tw-space-y-reverse))}.lg\:bg-vulcan-900\/0{background-color:#000f1600}.lg\:px-32{padding-left:8rem;padding-right:8rem}.lg\:px-6{padding-left:1.5rem;padding-right:1.5rem}.lg\:py-12{padding-top:3rem;padding-bottom:3rem}.lg\:py-24{padding-top:6rem;padding-bottom:6rem}.lg\:py-36{padding-top:9rem;padding-bottom:9rem}.lg\:pr-8{padding-right:2rem}}@media (min-width: 1280px){.xl\:col-span-3{grid-column:span 3 / span 3}.xl\:grid{display:grid}.xl\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.xl\:gap-8{gap:2rem}}*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content:""}html{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:Inter,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}h1,h2,h3{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b{font-weight:bolder}button,input,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;color:inherit;margin:0;padding:0}button{text-transform:none}button,[type=submit]{-webkit-appearance:button;background-color:transparent;background-image:none}h1,h2,h3,p{margin:0}ol,ul{list-style:none;margin:0;padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button{cursor:pointer}img,svg{display:block;vertical-align:middle}img{max-width:100%;height:auto}[type=text],[type=email],textarea{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:#fff;border-color:#6b7280;border-width:1px;border-radius:0;padding:.5rem .75rem;font-size:1rem;line-height:1.5rem;--tw-shadow:0 0 #0000}[type=text]:focus,[type=email]:focus,textarea:focus{outline:2px solid transparent;outline-offset:2px;--tw-ring-inset:var(--tw-empty, );--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:#2563eb;--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow);border-color:#2563eb}input::-moz-placeholder,textarea::-moz-placeholder{color:#6b7280;opacity:1}input::placeholder,textarea::placeholder{color:#6b7280;opacity:1}[type=checkbox]{-webkit-appearance:none;-moz-appearance:none;appearance:none;padding:0;-webkit-print-color-adjust:exact;print-color-adjust:exact;display:inline-block;vertical-align:middle;background-origin:border-box;-webkit-user-select:none;-moz-user-select:none;user-select:none;flex-shrink:0;height:1rem;width:1rem;color:#2563eb;background-color:#fff;border-color:#6b7280;border-width:1px;--tw-shadow:0 0 #0000}[type=checkbox]{border-radius:0}[type=checkbox]:focus{outline:2px solid transparent;outline-offset:2px;--tw-ring-inset:var(--tw-empty, );--tw-ring-offset-width:2px;--tw-ring-offset-color:#fff;--tw-ring-color:#2563eb;--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}[type=checkbox]:checked{border-color:transparent;background-color:currentColor;background-size:100% 100%;background-position:center;background-repeat:no-repeat}[type=checkbox]:checked{background-image:url("data:image/svg+xml,%3csvg viewBox='0 0 16 16' fill='white' xmlns='http://www.w3.org/2000/svg'%3e%3cpath d='M12.207 4.793a1 1 0 010 1.414l-5 5a1 1 0 01-1.414 0l-2-2a1 1 0 011.414-1.414L6.5 9.086l4.293-4.293a1 1 0 011.414 0z'/%3e%3c/svg%3e")}@media (forced-colors: active){[type=checkbox]:checked{-webkit-appearance:auto;-moz-appearance:auto;appearance:auto}}[type=checkbox]:checked:hover,[type=checkbox]:checked:focus{border-color:transparent;background-color:currentColor}[type=checkbox]:indeterminate{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 16 16'%3e%3cpath stroke='white' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M4 8h8'/%3e%3c/svg%3e");border-color:transparent;background-color:currentColor;background-size:100% 100%;background-position:center;background-repeat:no-repeat}@media (forced-colors: active){[type=checkbox]:indeterminate{-webkit-appearance:auto;-moz-appearance:auto;appearance:auto}}[type=checkbox]:indeterminate:hover,[type=checkbox]:indeterminate:focus{border-color:transparent;background-color:currentColor}*,:before,:after{--tw-scrollbar-gutter-modifier: ;--tw-scrollbar-thumb-color: ;--tw-scrollbar-track-color: ;--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgb(59 130 246 / .5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: }.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.inset-0{inset:0}.bottom-5{bottom:1.25rem}.bottom-\[100px\]{bottom:100px}.left-0{left:0}.left-1\/2{left:50%}.right-0{right:0}.right-5{right:1.25rem}.top-0{top:0}.z-40{z-index:40}.z-50{z-index:50}.mx-auto{margin-left:auto;margin-right:auto}.mb-12{margin-bottom:3rem}.mb-2{margin-bottom:.5rem}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.ml-2{margin-left:.5rem}.mt-1{margin-top:.25rem}.mt-10{margin-top:2.5rem}.mt-12{margin-top:3rem}.mt-2{margin-top:.5rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.mt-5{margin-top:1.25rem}.mt-6{margin-top:1.5rem}.mt-8{margin-top:2rem}.line-clamp-1{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:1}.block{display:block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.grid{display:grid}.hidden{display:none}.aspect-\[2\/1\]{aspect-ratio:2/1}.h-10{height:2.5rem}.h-14{height:3.5rem}.h-32{height:8rem}.h-4{height:1rem}.h-6{height:1.5rem}.h-7{height:1.75rem}.h-8{height:2rem}.h-\[calc\(100\%-95px\)\]{height:calc(100% - 95px)}.h-full{height:100%}.min-h-\[250px\]{min-height:250px}.w-14{width:3.5rem}.w-4{width:1rem}.w-6{width:1.5rem}.w-8{width:2rem}.w-auto{width:auto}.w-full{width:100%}.w-screen{width:100vw}.max-w-2xl{max-width:42rem}.max-w-7xl{max-width:80rem}.max-w-sm{max-width:24rem}.flex-auto{flex:1 1 auto}.flex-none{flex:none}.flex-grow{flex-grow:1}.origin-top-right{transform-origin:top right}.-translate-x-1\/2{--tw-translate-x:-50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-0{--tw-rotate:0deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.appearance-none{-webkit-appearance:none;-moz-appearance:none;appearance:none}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.flex-row{flex-direction:row}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-end{align-items:flex-end}.items-center{align-items:center}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-8{gap:2rem}.gap-x-6{-moz-column-gap:1.5rem;column-gap:1.5rem}.space-y-12>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(3rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(3rem * var(--tw-space-y-reverse))}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem * var(--tw-space-y-reverse))}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.scroll-smooth{scroll-behavior:smooth}.rounded{border-radius:.25rem}.rounded-3xl{border-radius:1.5rem}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:.5rem}.rounded-xl{border-radius:.75rem}.rounded-t-3xl{border-top-left-radius:1.5rem;border-top-right-radius:1.5rem}.rounded-t-xl{border-top-left-radius:.75rem;border-top-right-radius:.75rem}.border{border-width:1px}.border-b{border-bottom-width:1px}.border-t{border-top-width:1px}.border-vulcan-300{--tw-border-opacity:1;border-color:rgb(128 204 237 / var(--tw-border-opacity))}.border-vulcan-700{--tw-border-opacity:1;border-color:rgb(0 77 109 / var(--tw-border-opacity))}.border-vulcan-800{--tw-border-opacity:1;border-color:rgb(124 58 237 / var(--tw-border-opacity))}.border-white\/5{border-color:#ffffff0d}.bg-transparent{background-color:transparent}.bg-vulcan-900{--tw-bg-opacity:1;background-color:rgb(0 15 22 / var(--tw-bg-opacity))}.bg-vulcan-900\/20{background-color:#000f1633}.bg-gradient-to-b{background-image:linear-gradient(to bottom,var(--tw-gradient-stops))}.bg-gradient-to-r{background-image:linear-gradient(to right,var(--tw-gradient-stops))}.from-vulcan-300{--tw-gradient-from:#80cced var(--tw-gradient-from-position);--tw-gradient-to:rgb(128 204 237 / 0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from), var(--tw-gradient-to)}.from-vulcan-400{--tw-gradient-from:#33ade1 var(--tw-gradient-from-position);--tw-gradient-to:rgb(51 173 225 / 0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from), var(--tw-gradient-to)}.from-vulcan-500{--tw-gradient-from:#0099da var(--tw-gradient-from-position);--tw-gradient-to:rgb(0 153 218 / 0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from), var(--tw-gradient-to)}.from-white\/\[\.105\]{--tw-gradient-from:rgb(255 255 255 / .105) var(--tw-gradient-from-position);--tw-gradient-to:rgb(255 255 255 / 0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from), var(--tw-gradient-to)}.via-vulcan-400{--tw-gradient-to:rgb(51 173 225 / 0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from), #33ade1 var(--tw-gradient-via-position), var(--tw-gradient-to)}.via-vulcan-500\/5{--tw-gradient-to:rgb(0 153 218 / 0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from), rgb(0 153 218 / .05) var(--tw-gradient-via-position), var(--tw-gradient-to)}.to-vulcan-400{--tw-gradient-to:#33ade1 var(--tw-gradient-to-position)}.to-vulcan-500{--tw-gradient-to:#0099da var(--tw-gradient-to-position)}.to-white\/\[\.15\]{--tw-gradient-to:rgb(255 255 255 / .15) var(--tw-gradient-to-position)}.bg-clip-text{-webkit-background-clip:text;background-clip:text}.object-cover{-o-object-fit:cover;object-fit:cover}.p-2{padding:.5rem}.p-4{padding:1rem}.p-5{padding:1.25rem}.p-6{padding:1.5rem}.p-8{padding:2rem}.p-\[0\.060rem\]{padding:.06rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-8{padding-left:2rem;padding-right:2rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-12{padding-top:3rem;padding-bottom:3rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-32{padding-top:8rem;padding-bottom:8rem}.py-5{padding-top:1.25rem;padding-bottom:1.25rem}.pb-0{padding-bottom:0}.text-4xl{font-size:2.5rem;line-height:3.5rem}.text-sm{font-size:.875rem;line-height:1.5rem}.text-xs{font-size:.75rem;line-height:1rem}.font-medium{font-weight:500}.font-normal{font-weight:400}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.leading-6{line-height:1.5rem}.leading-tight{line-height:1.25}.tracking-tighter{letter-spacing:-.05em}.text-transparent{color:transparent}.text-vulcan-300{--tw-text-opacity:1;color:rgb(128 204 237 / var(--tw-text-opacity))}.text-vulcan-500{--tw-text-opacity:1;color:rgb(0 153 218 / var(--tw-text-opacity))}.text-vulcan-900{--tw-text-opacity:1;color:rgb(0 15 22 / var(--tw-text-opacity))}.text-white{--tw-text-opacity:1;color:rgb(255 255 255 / var(--tw-text-opacity))}.placeholder-vulcan-400::-moz-placeholder{--tw-placeholder-opacity:1;color:rgb(51 173 225 / var(--tw-placeholder-opacity))}.placeholder-vulcan-400::placeholder{--tw-placeholder-opacity:1;color:rgb(51 173 225 / var(--tw-placeholder-opacity))}.opacity-70{opacity:.7}.shadow-2xl{--tw-shadow:0 25px 50px -12px rgb(0 0 0 / .25);--tw-shadow-colored:0 25px 50px -12px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-vulcan-950{--tw-shadow-color:#000000;--tw-shadow:var(--tw-shadow-colored)}.ring-0{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.ring-1{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.ring-inset{--tw-ring-inset:inset}.ring-vulcan-800{--tw-ring-opacity:1;--tw-ring-color:rgb(124 58 237 / var(--tw-ring-opacity))}.ring-white\/20{--tw-ring-color:rgb(255 255 255 / .2)}.ring-white\/5{--tw-ring-color:rgb(255 255 255 / .05)}.blur-3xl{--tw-blur:blur(64px);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.backdrop-blur-2xl{--tw-backdrop-blur:blur(40px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-transform{transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.duration-200{transition-duration:.2s}.duration-300{transition-duration:.3s}:root{font-family:Inter,sans-serif;font-feature-settings:"liga" 1,"calt" 1,"dlig" 1,"ss07" 1,"ss08" 1,"zero" 1,"tnum" 1,"cv03" 1,"cv04" 1,"cv01" 1,"cv09","cv02" 1}@supports (font-variation-settings: normal){:root{font-family:InterVariable,sans-serif}}:root{--astro-code-color-text:#33ade1;--astro-code-color-background:#000000;--astro-code-token-constant:#e6f5fb;--astro-code-token-string:#007aae;--astro-code-token-comment:#b3e0f4;--astro-code-token-keyword:#80cced;--astro-code-token-parameter:#0ea5e9;--astro-code-token-function:#fff;--astro-code-token-string-expression:#0ea5e9;--astro-code-token-punctuation:#fff;--astro-code-token-link:#1e3a8a}.selection\:bg-vulcan-600 *::-moz-selection{--tw-bg-opacity:1;background-color:rgb(0 122 174 / var(--tw-bg-opacity))}.selection\:bg-vulcan-600 *::selection{--tw-bg-opacity:1;background-color:rgb(0 122 174 / var(--tw-bg-opacity))}.selection\:text-white *::-moz-selection{--tw-text-opacity:1;color:rgb(255 255 255 / var(--tw-text-opacity))}.selection\:text-white *::selection{--tw-text-opacity:1;color:rgb(255 255 255 / var(--tw-text-opacity))}.selection\:bg-vulcan-600::-moz-selection{--tw-bg-opacity:1;background-color:rgb(0 122 174 / var(--tw-bg-opacity))}.selection\:bg-vulcan-600::selection{--tw-bg-opacity:1;background-color:rgb(0 122 174 / var(--tw-bg-opacity))}.selection\:text-white::-moz-selection{--tw-text-opacity:1;color:rgb(255 255 255 / var(--tw-text-opacity))}.selection\:text-white::selection{--tw-text-opacity:1;color:rgb(255 255 255 / var(--tw-text-opacity))}.hover\:bg-vulcan-600:hover{--tw-bg-opacity:1;background-color:rgb(0 122 174 / var(--tw-bg-opacity))}.hover\:to-vulcan-600:hover{--tw-gradient-to:#007aae var(--tw-gradient-to-position)}.hover\:to-white\/\[\.25\]:hover{--tw-gradient-to:rgb(255 255 255 / .25) var(--tw-gradient-to-position)}.hover\:text-vulcan-400:hover{--tw-text-opacity:1;color:rgb(51 173 225 / var(--tw-text-opacity))}.hover\:text-white:hover{--tw-text-opacity:1;color:rgb(255 255 255 / var(--tw-text-opacity))}.hover\:text-white\/50:hover{color:#ffffff80}.focus\:border-vulcan-300:focus{--tw-border-opacity:1;border-color:rgb(128 204 237 / var(--tw-border-opacity))}.focus\:border-white:focus{--tw-border-opacity:1;border-color:rgb(255 255 255 / var(--tw-border-opacity))}.focus\:bg-transparent:focus{background-color:transparent}.focus\:bg-vulcan-600:focus{--tw-bg-opacity:1;background-color:rgb(0 122 174 / var(--tw-bg-opacity))}.focus\:text-white:focus{--tw-text-opacity:1;color:rgb(255 255 255 / var(--tw-text-opacity))}.focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.focus\:ring-vulcan-300:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(128 204 237 / var(--tw-ring-opacity))}.focus\:ring-white:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(255 255 255 / var(--tw-ring-opacity))}.group:hover .group-hover\:scale-110{--tw-scale-x:1.1;--tw-scale-y:1.1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group:hover .group-hover\:bg-vulcan-500{--tw-bg-opacity:1;background-color:rgb(0 153 218 / var(--tw-bg-opacity))}.group:hover .group-hover\:text-vulcan-300{--tw-text-opacity:1;color:rgb(128 204 237 / var(--tw-text-opacity))}@media (min-width: 640px){.sm\:left-auto{left:auto}.sm\:right-5{right:1.25rem}.sm\:top-auto{top:auto}.sm\:h-\[600px\]{height:600px}.sm\:w-\[350px\]{width:350px}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:text-5xl{font-size:3rem;line-height:3.5rem}.sm\:text-sm{font-size:.875rem;line-height:1.5rem}}@media (min-width: 768px){.md\:mt-0{margin-top:0}.md\:flex{display:flex}.md\:grid{display:grid}.md\:hidden{display:none}.md\:max-w-5xl{max-width:64rem}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:flex-row{flex-direction:row}.md\:items-center{align-items:center}.md\:justify-end{justify-content:flex-end}.md\:justify-between{justify-content:space-between}.md\:gap-8{gap:2rem}.md\:px-12{padding-left:3rem;padding-right:3rem}.md\:px-3{padding-left:.75rem;padding-right:.75rem}.md\:pb-0{padding-bottom:0}}@media (min-width: 1024px){.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\:justify-start{justify-content:flex-start}.lg\:space-y-0>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(0px * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(0px * var(--tw-space-y-reverse))}.lg\:bg-vulcan-900\/0{background-color:#000f1600}.lg\:px-32{padding-left:8rem;padding-right:8rem}.lg\:px-6{padding-left:1.5rem;padding-right:1.5rem}.lg\:py-12{padding-top:3rem;padding-bottom:3rem}.lg\:py-24{padding-top:6rem;padding-bottom:6rem}.lg\:py-36{padding-top:9rem;padding-bottom:9rem}.lg\:pr-8{padding-right:2rem}}@media (min-width: 1280px){.xl\:col-span-3{grid-column:span 3 / span 3}.xl\:grid{display:grid}.xl\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.xl\:gap-8{gap:2rem}}</style><link rel="stylesheet" href="/_astro/_slug_.F7hk88MO.css" media="print" onload="this.media='all'"><noscript><link rel="stylesheet" href="/_astro/_slug_.F7hk88MO.css"></noscript>
<link rel="stylesheet" href="/_astro/_slug_.CludSGW3.css" media="print" onload="this.media='all'"><noscript><link rel="stylesheet" href="/_astro/_slug_.CludSGW3.css"></noscript><script type="module" src="/_astro/hoisted.CwPuCz4M.js"></script></head> <html lang="en" class="scroll-smooth selection:bg-vulcan-600 selection:text-white scrollbar-gutter-stable" data-critters-container> <!-- Fa  icon guidelines generated with https://realfa  icongenerator.net/ --><link rel="apple-touch-icon" sizes="180x180" href="/favicons/apple-touch-icon.png"><link rel="icon" type="image/png" sizes="32x32" href="/favicons/favicon-32x32.png"><link rel="icon" type="image/png" sizes="16x16" href="/favicons/favicon-16x16.png"><link rel="manifest" href="/favicons/site.webmanifest"><link rel="mask-icon" href="/favicons/safari-pinned-tab.svg" color="#141521"> <!-- Matomo -->  <!-- End Matom Code --> <!---
Inter Font
---> <link rel="stylesheet" href="/css/inter.css" media="print" onload="this.media='all'"><noscript><link rel="stylesheet" href="/css/inter.css"></noscript> <script defer src="/js/tooltip/cdn.min.js"></script> <!-- Alpine.js Plugins --> <script defer src="/js/focus/cdn.min.js"></script> <script defer src="/js/intersect/cdn.min.js"></script> <!-- Alpine.js Core --> <script defer src="/js/cdn.min.js"></script> <!-- Other Integrations --> <link rel="stylesheet" href="/css/tippy.css" media="print" onload="this.media='all'"><noscript><link rel="stylesheet" href="/css/tippy.css"></noscript> <link rel="stylesheet" href="/css/light.css" media="print" onload="this.media='all'"><noscript><link rel="stylesheet" href="/css/light.css"></noscript> <body class="bg-vulcan-900"> <section class="fixed z-50 w-full border-b relatve bg-vulcan-900/20 border-white/5 backdrop-blur-2xl lg:bg-vulcan-900/0"> <div class="relative w-full mx-auto max-w-7xl"> <div x-data="{ open: false }" class="relative flex flex-col w-full px-8 py-5 mx-auto md:items-center md:justify-between md:flex-row md:px-12 lg:px-32"> <div class="flex flex-row items-center justify-between text-white lg:justify-start"> <a href="/" class="lg:pr-8"> <div class="inline-flex items-center gap-3"> <img src="/logos/aptive.webp"> </div> </a> <button @click="open = !open" class="inline-flex items-center justify-center p-2 text-white hover:text-vulcan-400 focus:outline-none focus:text-white md:hidden"> <svg class="w-6 h-6" stroke="currentColor" fill="none" viewBox="0 0 24 24"> <path :class="{'hidden': open, 'inline-flex': !open }" class="inline-flex" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M4 6h16M4 12h16M4 18h16"/> <path :class="{'hidden': !open, 'inline-flex': open }" class="hidden" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M6 18L18 6M6 6l12 12"/> </svg> </button> </div> <nav :class="{'flex': open, 'hidden': !open}" class="flex-col items-center flex-grow hidden md:pb-0 md:flex md:justify-end md:flex-row"> <!-- Services Start --> <div @click.away="open = false" class="relative" x-data="{ open: false }"> <button @click="open = !open" class="inline-flex items-center gap-2 justify-between px-2 py-2 text-sm font-normal text-white lg:px-6 md:px-3 hover:text-white/50"> <span>Services</span> <svg :class="{'rotate-180': open, 'rotate-0': !open}" xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-chevron-down inline h-4 transition-transform duration-200 transform rotate-0" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"> <path stroke="none" d="M0 0h24v24H0z" fill="none"/> <path d="M6 9l6 6l6 -6"/> </svg> </button> <div x-show="open" style="display: none;" x-transition:enter="transition ease-out duration-100" x-transition:enter-start="transform opacity-0 scale-95" x-transition:enter-end="transform opacity-100 scale-100" x-transition:leave="transition ease-in duration-75" x-transition:leave-start="transform opacity-100 scale-100" x-transition:leave-end="transform opacity-0 scale-95" class="absolute right-0 z-50 mt-2 origin-top-right left-1/2 flex w-screen max-w-sm md:max-w-5xl -translate-x-1/2 rounded-xl bg-gradient-to-b from-vulcan-500 via-vulcan-500/ ring-1 ring-inset ring-white/5 focus:outline-none p-[0.060rem]" role="menu" aria-orientation="vertical" aria-labelledby="menu-button" tabindex="-1"> <div class="w-screen max-w-7xl bg-vulcan-900 rounded-xl pb-0 flex-auto overflow-hidden text-sm leading-6 shadow-lg"> <div class="p-4 grid grid-cols-1 lg:grid-cols-3 gap-2"> <div class="group relative flex gap-x-6 rounded-lg p-4 duration-300"> <div class="mt-1 flex h-8 w-8 flex-none items-center justify-center rounded-lg bg-vulcan-900 group-hover:bg-vulcan-500 duration-300 text-white ring-1 ring-vulcan-800"> <svg xmlns="http://www.w3.org/2000/svg" class="w-4 icon icon-tabler icon-tabler-components" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"> <path stroke="none" d="M0 0h24v24H0z" fill="none"/> <path d="M3 12l3 3l3 -3l-3 -3z"/> <path d="M15 12l3 3l3 -3l-3 -3z"/> <path d="M9 6l3 3l3 -3l-3 -3z"/> <path d="M9 18l3 3l3 -3l-3 -3z"/> </svg> </div> <div> <a href="/penetration-testing/app/" class="font-semibold text-white">
Application Penetration Testing
<span class="absolute inset-0"></span> </a> <p class="mt-1 text-vulcan-300 group-hover:text-vulcan-300">
manual app pen testing services
</p> </div> </div> <div class="group relative flex gap-x-6 rounded-lg p-4 duration-300"> <div class="mt-1 flex h-8 w-8 flex-none items-center justify-center rounded-lg bg-vulcan-900 group-hover:bg-vulcan-500 duration-300 text-white ring-1 ring-vulcan-800"> <svg xmlns="http://www.w3.org/2000/svg" class="w-4 icon icon-tabler icon-tabler-components" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"> <path stroke="none" d="M0 0h24v24H0z" fill="none"/> <path d="M3 12l3 3l3 -3l-3 -3z"/> <path d="M15 12l3 3l3 -3l-3 -3z"/> <path d="M9 6l3 3l3 -3l-3 -3z"/> <path d="M9 18l3 3l3 -3l-3 -3z"/> </svg> </div> <div> <a href="/security-build-review/" class="font-semibold text-white">
Security Build Review
<span class="absolute inset-0"></span> </a> <p class="mt-1 text-vulcan-300 group-hover:text-vulcan-300">
application, device and OS security build reviews
</p> </div> </div> <div class="group relative flex gap-x-6 rounded-lg p-4 duration-300"> <div class="mt-1 flex h-8 w-8 flex-none items-center justify-center rounded-lg bg-vulcan-900 group-hover:bg-vulcan-500 duration-300 text-white ring-1 ring-vulcan-800"> <svg xmlns="http://www.w3.org/2000/svg" class="w-4 icon icon-tabler icon-tabler-components" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"> <path stroke="none" d="M0 0h24v24H0z" fill="none"/> <path d="M3 12l3 3l3 -3l-3 -3z"/> <path d="M15 12l3 3l3 -3l-3 -3z"/> <path d="M9 6l3 3l3 -3l-3 -3z"/> <path d="M9 18l3 3l3 -3l-3 -3z"/> </svg> </div> <div> <a href="/vulnerability-assessment/" class="font-semibold text-white">
Vulnerability Testing
<span class="absolute inset-0"></span> </a> <p class="mt-1 text-vulcan-300 group-hover:text-vulcan-300">
vulnerability assessment
</p> </div> </div> <div class="group relative flex gap-x-6 rounded-lg p-4 duration-300"> <div class="mt-1 flex h-8 w-8 flex-none items-center justify-center rounded-lg bg-vulcan-900 group-hover:bg-vulcan-500 duration-300 text-white ring-1 ring-vulcan-800"> <svg xmlns="http://www.w3.org/2000/svg" class="w-4 icon icon-tabler icon-tabler-components" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"> <path stroke="none" d="M0 0h24v24H0z" fill="none"/> <path d="M3 12l3 3l3 -3l-3 -3z"/> <path d="M15 12l3 3l3 -3l-3 -3z"/> <path d="M9 6l3 3l3 -3l-3 -3z"/> <path d="M9 18l3 3l3 -3l-3 -3z"/> </svg> </div> <div> <a href="/penetration-testing/network/" class="font-semibold text-white">
Network Penenetration Testing
<span class="absolute inset-0"></span> </a> <p class="mt-1 text-vulcan-300 group-hover:text-vulcan-300">
manual pen testing services for external or internal infrastructure
</p> </div> </div> </div> </div> </div> </div> <!-- Services End --> <!-- Resources Start --> <div @click.away="open = false" class="relative" x-data="{ open: false }"> <button @click="open = !open" class="inline-flex items-center gap-2 justify-between px-2 py-2 text-sm font-normal text-white lg:px-6 md:px-3 hover:text-white/50"> <span>Resources</span> <svg :class="{'rotate-180': open, 'rotate-0': !open}" xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-chevron-down inline h-4 transition-transform duration-200 transform rotate-0" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"> <path stroke="none" d="M0 0h24v24H0z" fill="none"/> <path d="M6 9l6 6l6 -6"/> </svg> </button> <div x-show="open" style="display: none;" x-transition:enter="transition ease-out duration-100" x-transition:enter-start="transform opacity-0 scale-95" x-transition:enter-end="transform opacity-100 scale-100" x-transition:leave="transition ease-in duration-75" x-transition:leave-start="transform opacity-100 scale-100" x-transition:leave-end="transform opacity-0 scale-95" class="absolute right-0 z-50 mt-2 origin-top-right left-1/2 flex w-screen max-w-sm md:max-w-5xl -translate-x-1/2 rounded-xl bg-gradient-to-b from-vulcan-500 via-vulcan-500/ ring-1 ring-inset ring-white/5 focus:outline-none p-[0.060rem]" role="menu" aria-orientation="vertical" aria-labelledby="menu-button" tabindex="-1"> <div class="w-screen max-w-7xl bg-vulcan-900 rounded-xl pb-0 flex-auto overflow-hidden text-sm leading-6 shadow-lg"> <div class="p-4 grid grid-cols-1 lg:grid-cols-3 gap-2"> <div class="group relative flex gap-x-6 rounded-lg p-4 duration-300"> <div class="mt-1 flex h-8 w-8 flex-none items-center justify-center rounded-lg bg-vulcan-900 group-hover:bg-vulcan-500 duration-300 text-white ring-1 ring-vulcan-800"> <svg xmlns="http://www.w3.org/2000/svg" class="w-4 icon icon-tabler icon-tabler-components" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"> <path stroke="none" d="M0 0h24v24H0z" fill="none"/> <path d="M3 12l3 3l3 -3l-3 -3z"/> <path d="M15 12l3 3l3 -3l-3 -3z"/> <path d="M9 6l3 3l3 -3l-3 -3z"/> <path d="M9 18l3 3l3 -3l-3 -3z"/> </svg> </div> <div> <h3 class="font-semibold text-white"></h3> <a href="/blog/web-vulnerabilities/" class="font-semibold text-white">
Web Vulnerabiltities
<span class="absolute inset-0"></span> </a> <p class="mt-1 text-vulcan-300 group-hover:text-vulcan-300">
learn web vulnerabilities
</p> </div> </div> <div class="group relative flex gap-x-6 rounded-lg p-4 duration-300"> <div class="mt-1 flex h-8 w-8 flex-none items-center justify-center rounded-lg bg-vulcan-900 group-hover:bg-vulcan-500 duration-300 text-white ring-1 ring-vulcan-800"> <svg xmlns="http://www.w3.org/2000/svg" class="w-4 icon icon-tabler icon-tabler-components" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"> <path stroke="none" d="M0 0h24v24H0z" fill="none"/> <path d="M3 12l3 3l3 -3l-3 -3z"/> <path d="M15 12l3 3l3 -3l-3 -3z"/> <path d="M9 6l3 3l3 -3l-3 -3z"/> <path d="M9 18l3 3l3 -3l-3 -3z"/> </svg> </div> <div> <h3 class="font-semibold text-white"></h3> <a href="/blog/" class="font-semibold text-white">
Blog
<span class="absolute inset-0"></span> </a> <p class="mt-1 text-vulcan-300 group-hover:text-vulcan-300">
security & research articles
</p> </div> </div> <div class="group relative flex gap-x-6 rounded-lg p-4 duration-300"> <div class="mt-1 flex h-8 w-8 flex-none items-center justify-center rounded-lg bg-vulcan-900 group-hover:bg-vulcan-500 duration-300 text-white ring-1 ring-vulcan-800"> <svg xmlns="http://www.w3.org/2000/svg" class="w-4 icon icon-tabler icon-tabler-components" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"> <path stroke="none" d="M0 0h24v24H0z" fill="none"/> <path d="M3 12l3 3l3 -3l-3 -3z"/> <path d="M15 12l3 3l3 -3l-3 -3z"/> <path d="M9 6l3 3l3 -3l-3 -3z"/> <path d="M9 18l3 3l3 -3l-3 -3z"/> </svg> </div> <div> <a href="/blog/cybersecurity/" class="font-semibold text-white">
Cyber Security
<span class="absolute inset-0"></span> </a> <p class="mt-1 text-vulcan-300 group-hover:text-vulcan-300">
learn cyber security
</p> </div> </div> </div> </div> </div> <!-- Solutions End --> <a class="px-2 py-2 text-sm font-normal text-white lg:px-6 md:px-3 hover:text-white/50" href="/about/">About</a> </div> <a href="/contact/" class="rounded-lg px-4 py-2 text-sm h-8 transition-all flex items-center justify-center text-white bg-gradient-to-b from-white/[.105] to-white/[.15] hover:to-white/[.25] ring-1 ring-inset ring-white/20">
Contact &nbsp; &rarr;
</a> </nav> </div> </div> </section> <script src="https://unpkg.com/@botpoison/browser" async></script> <div id="contact" x-data="{ open: false }"> <div id="contact" x-show="open" x-transition:enter-start="opacity-0 translate-y-5" x-transition:enter="transition duration-200 transform ease" x-transition:leave="transition duration-200 transform ease" x-transition:leave-end="opacity-0 translate-y-5" @click.away="open = false" class="fixed flex flex-col z-50 bottom-[100px] top-0 ring-0 left-0 sm:top-auto sm:right-5 sm:left-auto h-[calc(100%-95px)] w-full sm:w-[350px] overflow-auto min-h-[250px] p-[0.060rem] sm:h-[600px] bg-gradient-to-b from-vulcan-500 via-vulcan-500/5 shadow-2xl rounded-3xl"> <div class="bg-vulcan-900 h-full rounded-3xl overflow-hidden relative"> <svg class="absolute blur-3xl right-0 opacity-70" width="70%" height="100%" viewBox="0 0 400 400" fill="none" xmlns="http://www.w3.org/2000/svg"> <g clip-path="url(#clip0_17_60)"> <g filter="url(#filter0_f_17_60)"> <path d="M128.6 0H0V322.2L332.5 211.5L128.6 0Z" fill="#0099da"/> <path d="M0 322.2V400H240H320L332.5 211.5L0 322.2Z" fill="#80cced" "=""/> <path d="M320 400H400V78.75L332.5 211.5L320 400Z" fill="#7c3aed"/> <path d="M400 0H128.6L332.5 211.5L400 78.75V0Z" fill="#7c3aed"/> </g> </g> <defs> <filter id="filter0_f_17_60" x="-159.933" y="-159.933" width="719.867" height="500" .867"="" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB"> <feFlood flood-opacity="0" result="BackgroundImageFix"/> <feBlend mode="normal" in="SourceGraphic" in2="BackgroundImageFix" result="shape"/> <feGaussianBlur stdDeviation="79.9667" result="effect1_foregroundBlur_17_60"/> </filter> </defs> </svg> <div class="flex p-5 lg:py-12 flex-col justify-center items-center h-32 rounded-t-3xl relative"> <p class="text-white">Got any questions?</p> <p class="text-white text-sm mt-2">
We do our best to respond within 2 business hours (GMT)
</p> </div> <div class="relative flex-grow p-6"> <form action="https://submit-form.com/qe1kgWEm4" data-botpoison-public-key="pk_6c19a9a5-42f4-4da6-b41e-5c647e630cea" method="POST" id="form" class="needs-validation" novalidate> <input type="hidden" name="#" value="#"> <input type="hidden" name="subject" value="Form"> <div class="mb-4"> <label for="full_name" class="block mb-2 text-sm text-white">Full Name</label> <input type="text" name="name" id="full_name" placeholder="Your Name Here" autocomplete="full-name" required class="block w-full px-4 py-2 border bg-transparent border-vulcan-700 rounded-xl appearance-none text-vulcan-300 placeholder-vulcan-400 focus:border-vulcan-300 focus:bg-transparent focus:outline-none focus:ring-vulcan-300 sm:text-sm"> <div class="text-sm mt-1 hidden">
Please provide your full name.
</div> </div> <div class="mb-4"> <label for="email" class="block mb-2 text-sm text-white">Email Address</label> <input type="email" name="email" autocomplete="email" id="email" placeholder="Enter your company email" required class="block w-full px-4 py-2 border bg-transparent border-vulcan-700 rounded-xl appearance-none text-vulcan-300 placeholder-vulcan-400 focus:border-vulcan-300 focus:bg-transparent focus:outline-none focus:ring-vulcan-300 sm:text-sm"> <div class="hidden">Please provide your company email address.</div> <div class="hidden">Please provide a valid email address.</div> </div> <div class="mb-4"> <label for="message" class="block mb-2 text-sm text-white">Your Message</label> <textarea rows="2" name="message" id="message" placeholder="Your Message" class="block w-full px-4 py-2 border bg-transparent border-vulcan-700 rounded-xl appearance-none text-vulcan-300 placeholder-vulcan-400 focus:border-vulcan-300 focus:bg-transparent focus:outline-none focus:ring-vulcan-300 sm:text-sm" required></textarea> <div class="hidden">Please enter your message.</div> </div> <div class="mb-3"> <button type="submit" class="rounded-lg px-4 py-2 text-sm font-semibold transition-all flex items-center justify-center hover:to-vulcan-600 bg-gradient-to-b from-vulcan-300 via-vulcan-400 to-vulcan-500 text-vulcan-900 h-10 w-full">
Submit
</button> </div> <input type="checkbox" name="_apt-check" style="display:none" tabindex="-1" autocomplete="off"> <div class="flex items-center"> <input class="w-4 h-4 text-vulcan-500 bg-vulcan-900 border-vulcan-300 rounded focus:ring-white focus:border-white" type="checkbox" id="remember-me" name="remember-me" required> <label class="block ml-2 mt-3 text-sm font-medium leading-tight text-white" for="remember-me">Please tick this box to confirm you have read our <a href="/about/privacy-policy/">privacy policy</a> and <a href="/about/terms-of-use/">terms of use</a>.</label> </div> <input type="hidden" name="_redirect" value="https://www.aptive.co.uk/thanks"> </form> </div> </div> </div> <button aria-label="Toggle menu" @click="open = !open" aria-expanded="false" class="fixed z-40 right-5 bottom-5 shadow-lg flex justify-center items-center w-14 h-14 bg-gradient-to-r from-vulcan-400 to-vulcan-500 rounded-full focus:outline-none hover:bg-vulcan-600 focus:bg-vulcan-600 transition duration-300 ease"> <svg class="w-6 h-6 text-white absolute" x-show="!open" x-transition:enter-start="opacity-0 -rotate-45 scale-75" x-transition:enter="transition duration-200 transform ease" x-transition:leave="transition duration-100 transform ease" x-transition:leave-end="opacity-0 -rotate-45" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor"> <path stroke-linecap="round" stroke-linejoin="round" d="M8.625 9.75a.375.375 0 11-.75 0 .375.375 0 01.75 0zm0 0H8.25m4.125 0a.375.375 0 11-.75 0 .375.375 0 01.75 0zm0 0H12m4.125 0a.375.375 0 11-.75 0 .375.375 0 01.75 0zm0 0h-.375m-13.5 3.01c0 1.6 1.123 2.994 2.707 3.227 1.087.16 2.185.283 3.293.369V21l4.184-4.183a1.14 1.14 0 01.778-.332 48.294 48.294 0 005.83-.498c1.585-.233 2.708-1.626 2.708-3.228V6.741c0-1.602-1.123-2.995-2.707-3.228A48.394 48.394 0 0012 3c-2.392 0-4.744.175-7.043.513C3.373 3.746 2.25 5.14 2.25 6.741v6.018z"/> </svg> <svg class="w-6 h-6 text-white absolute" x-show="open" x-transition:enter-start="opacity-0 rotate-45 scale-75" x-transition:enter="transition duration-200 transform ease" x-transition:leave="transition duration-100 transform ease" x-transition:leave-end="opacity-0 rotate-45" xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <line x1="18" y1="6" x2="6" y2="18"/> <line x1="6" y1="6" x2="18" y2="18"/> </svg> </button> </div>  <section> <div class="max-w-7xl px-8 md:px-12 lg:px-32 mx-auto py-32 lg:py-36 relative"> <div class="max-w-2xl"> <h1 class="text-sm text-transparent uppercase bg-gradient-to-r from-vulcan-300 to-vulcan-400 bg-clip-text">
HackTalk Security Resources
</h1><p class="mt-8 text-4xl font-normal tracking-tighter text-white sm:text-5xl">
Learn Cyber Security
</p> </div> <ul class="flex flex-wrap gap-2 mt-12" role="list"> <li class=" flex items-center justify-center h-8 text-xs px-4 py-2 font-semibold text-white transition-all border rounded-lg bg-vulcan-900 hover:text-vulcan-400 border-vulcan-700"> <a href="/blog/web-vulnerabilities/">Web Vulnerabilities</a> </li> <li class=" flex items-center justify-center h-8 text-xs px-4 py-2 font-semibold text-white transition-all border rounded-lg bg-vulcan-900 hover:text-vulcan-400 border-vulcan-700"> <a href="/cybersecurity/">Learn Cyber Security</a> </li> <li class=" flex items-center justify-center h-8 text-xs px-4 py-2 font-semibold text-white transition-all border rounded-lg bg-vulcan-900 hover:text-vulcan-400 border-vulcan-700"> <a href="/blog/">Blog</a> </li> <p class="flex flex-wrap gap-2 mt-12 text-white">Welcome to HackTalk Security project, providing resources, blogs and guides for the ethical hacking community by Aptive's Security Team. </p> <p class="flex flex-wrap gap-2 mt-12 text-white">See our <b><a href="/penetration-testing/">web application pen testing</a></b> page to learn more about security testing for web applications.</p> </ul> <h2 class="mt-8 text-4xl font-normal tracking-tighter text-white sm:text-5xl">
Learn More About Web App Pentesting
</h2> <p class=" mt-12 mb-12 text-white">Learn more about web application penetration testing using the resources below.</p> <div class="py-2"> <ol class="grid grid-cols-1 gap-4 lg:grid-cols-3 sm:grid-cols-2" role="list"> <li class="group ring-1 ring-inset ring-white/5 text-white bg-gradient-to-b from-vulcan-500 via-vulcan-500/5  rounded-xl p-[0.060rem] overflow-hidden  shadow-vulcan-950 shadow-2xl"> <a href="/penetration-testing/benefits/" title="Web Application Penetration Testing Benefits"> <div class="bg-vulcan-900  rounded-xl"> <div class="flex items-end justify-center overflow-hidden rounded-t-xl border-b border-vulcan-800"> <div class="flex"> <img class="group-hover:scale-110 duration-300 aspect-[2/1] object-cover" loading="lazy" src="/img/wapt/h/web-app-penetration-testing-benefits.webp" alt="Web Application Penetration Testing Benefits" width="560"> </div> </div> <div class="p-8"> <p> <time class=" items-center w-auto px-3 py-1 text-xs font-semibold text-white transition-all border rounded-full h-7 bg-vulcan-900 hover:text-vulcan-400 border-vulcan-700" datetime="Sun Mar 23">Sun Mar 23</time> </p> <p class="mt-5 text-sm font-medium leading-6 text-white"> Web Application Penetration Testing Benefits </p> <p class="mt-2 text-sm text-vulcan-300 line-clamp-1"> Learn what the Benefits Web Application Penetration Testing is and how it could help your organsation. </p> </div> </div> </a> </li><li class="group ring-1 ring-inset ring-white/5 text-white bg-gradient-to-b from-vulcan-500 via-vulcan-500/5  rounded-xl p-[0.060rem] overflow-hidden  shadow-vulcan-950 shadow-2xl"> <a href="/penetration-testing/cost/" title="Web Application Penetration Testing Pricing: UK"> <div class="bg-vulcan-900  rounded-xl"> <div class="flex items-end justify-center overflow-hidden rounded-t-xl border-b border-vulcan-800"> <div class="flex"> <img class="group-hover:scale-110 duration-300 aspect-[2/1] object-cover" loading="lazy" src="/img/wapt/h/web-app-penetration-testing-pricing.webp" alt="Web Application Penetration Testing Pricing: UK" width="560"> </div> </div> <div class="p-8"> <p> <time class=" items-center w-auto px-3 py-1 text-xs font-semibold text-white transition-all border rounded-full h-7 bg-vulcan-900 hover:text-vulcan-400 border-vulcan-700" datetime="Sun Mar 23">Sun Mar 23</time> </p> <p class="mt-5 text-sm font-medium leading-6 text-white"> Web Application Penetration Testing Pricing: UK </p> <p class="mt-2 text-sm text-vulcan-300 line-clamp-1"> Learn how much a web application penetration test would cost in the UK. </p> </div> </div> </a> </li><li class="group ring-1 ring-inset ring-white/5 text-white bg-gradient-to-b from-vulcan-500 via-vulcan-500/5  rounded-xl p-[0.060rem] overflow-hidden  shadow-vulcan-950 shadow-2xl"> <a href="/penetration-testing/how-long/" title="⏱️ How Long Does Web Application Penetration Testing Take to Complete?"> <div class="bg-vulcan-900  rounded-xl"> <div class="flex items-end justify-center overflow-hidden rounded-t-xl border-b border-vulcan-800"> <div class="flex"> <img class="group-hover:scale-110 duration-300 aspect-[2/1] object-cover" loading="lazy" src="/img/wapt/h/web-app-penetration-testing-how-long.webp" alt="⏱️ How Long Does Web Application Penetration Testing Take to Complete?" width="560"> </div> </div> <div class="p-8"> <p> <time class=" items-center w-auto px-3 py-1 text-xs font-semibold text-white transition-all border rounded-full h-7 bg-vulcan-900 hover:text-vulcan-400 border-vulcan-700" datetime="Sun Mar 23">Sun Mar 23</time> </p> <p class="mt-5 text-sm font-medium leading-6 text-white"> ⏱️ How Long Does Web Application Penetration Testing Take to Complete? </p> <p class="mt-2 text-sm text-vulcan-300 line-clamp-1"> Learn how much ⏱️ time a web application penetration test would take in the UK. </p> </div> </div> </a> </li><li class="group ring-1 ring-inset ring-white/5 text-white bg-gradient-to-b from-vulcan-500 via-vulcan-500/5  rounded-xl p-[0.060rem] overflow-hidden  shadow-vulcan-950 shadow-2xl"> <a href="/penetration-testing/how-often/" title="How Often Should Web Application Penetration Testing be Performed?"> <div class="bg-vulcan-900  rounded-xl"> <div class="flex items-end justify-center overflow-hidden rounded-t-xl border-b border-vulcan-800"> <div class="flex"> <img class="group-hover:scale-110 duration-300 aspect-[2/1] object-cover" loading="lazy" src="/img/wapt/h/web-app-penetration-testing-how-often.webp" alt="How Often Should Web Application Penetration Testing be Performed?" width="560"> </div> </div> <div class="p-8"> <p> <time class=" items-center w-auto px-3 py-1 text-xs font-semibold text-white transition-all border rounded-full h-7 bg-vulcan-900 hover:text-vulcan-400 border-vulcan-700" datetime="Sun Mar 23">Sun Mar 23</time> </p> <p class="mt-5 text-sm font-medium leading-6 text-white"> How Often Should Web Application Penetration Testing be Performed? </p> <p class="mt-2 text-sm text-vulcan-300 line-clamp-1"> Learn how often a web application penetration test would take in the UK. </p> </div> </div> </a> </li><li class="group ring-1 ring-inset ring-white/5 text-white bg-gradient-to-b from-vulcan-500 via-vulcan-500/5  rounded-xl p-[0.060rem] overflow-hidden  shadow-vulcan-950 shadow-2xl"> <a href="/penetration-testing/methodology/" title="Web Application Penetration Testing Methodology"> <div class="bg-vulcan-900  rounded-xl"> <div class="flex items-end justify-center overflow-hidden rounded-t-xl border-b border-vulcan-800"> <div class="flex"> <img class="group-hover:scale-110 duration-300 aspect-[2/1] object-cover" loading="lazy" src="/img/blog/h/web-app-penetration-testing-methodology.webp" alt="Web Application Penetration Testing Methodology" width="560"> </div> </div> <div class="p-8"> <p> <time class=" items-center w-auto px-3 py-1 text-xs font-semibold text-white transition-all border rounded-full h-7 bg-vulcan-900 hover:text-vulcan-400 border-vulcan-700" datetime="Fri Mar 14">Fri Mar 14</time> </p> <p class="mt-5 text-sm font-medium leading-6 text-white"> Web Application Penetration Testing Methodology </p> <p class="mt-2 text-sm text-vulcan-300 line-clamp-1"> Aptive&#39;s Web Application Penetration Testing Methodology. </p> </div> </div> </a> </li><li class="group ring-1 ring-inset ring-white/5 text-white bg-gradient-to-b from-vulcan-500 via-vulcan-500/5  rounded-xl p-[0.060rem] overflow-hidden  shadow-vulcan-950 shadow-2xl"> <a href="/penetration-testing/phases/" title="Web App Penetration Testing Phases: The 7 Key Steps"> <div class="bg-vulcan-900  rounded-xl"> <div class="flex items-end justify-center overflow-hidden rounded-t-xl border-b border-vulcan-800"> <div class="flex"> <img class="group-hover:scale-110 duration-300 aspect-[2/1] object-cover" loading="lazy" src="/img/blog/h/penetration-testing-phases.webp" alt="Web App Penetration Testing Phases: The 7 Key Steps" width="560"> </div> </div> <div class="p-8"> <p> <time class=" items-center w-auto px-3 py-1 text-xs font-semibold text-white transition-all border rounded-full h-7 bg-vulcan-900 hover:text-vulcan-400 border-vulcan-700" datetime="Tue Oct 22">Tue Oct 22</time> </p> <p class="mt-5 text-sm font-medium leading-6 text-white"> Web App Penetration Testing Phases: The 7 Key Steps </p> <p class="mt-2 text-sm text-vulcan-300 line-clamp-1"> Learn the key stages involved in a web app penetration test, from planning and information gathering to exploitation, reporting, and remediation. Discover how this process helps UK organisations identify and fix security vulnerabilities to protect against cyber threats. </p> </div> </div> </a> </li><li class="group ring-1 ring-inset ring-white/5 text-white bg-gradient-to-b from-vulcan-500 via-vulcan-500/5  rounded-xl p-[0.060rem] overflow-hidden  shadow-vulcan-950 shadow-2xl"> <a href="/penetration-testing/prepare/" title="How To Prepare for a Web App Penetration Test"> <div class="bg-vulcan-900  rounded-xl"> <div class="flex items-end justify-center overflow-hidden rounded-t-xl border-b border-vulcan-800"> <div class="flex"> <img class="group-hover:scale-110 duration-300 aspect-[2/1] object-cover" loading="lazy" src="/img/blog/h/web-application-prepare.webp" alt="How To Prepare for a Web App Penetration Test" width="560"> </div> </div> <div class="p-8"> <p> <time class=" items-center w-auto px-3 py-1 text-xs font-semibold text-white transition-all border rounded-full h-7 bg-vulcan-900 hover:text-vulcan-400 border-vulcan-700" datetime="Wed Mar 26">Wed Mar 26</time> </p> <p class="mt-5 text-sm font-medium leading-6 text-white"> How To Prepare for a Web App Penetration Test </p> <p class="mt-2 text-sm text-vulcan-300 line-clamp-1"> To ensure an effective web application penetration test, proper preparation is key. Learn the steps your organisation should take to get ready for the assessment. </p> </div> </div> </a> </li><li class="group ring-1 ring-inset ring-white/5 text-white bg-gradient-to-b from-vulcan-500 via-vulcan-500/5  rounded-xl p-[0.060rem] overflow-hidden  shadow-vulcan-950 shadow-2xl"> <a href="/penetration-testing/retesting/" title="Issue Retesting after a Web App Security Assessment"> <div class="bg-vulcan-900  rounded-xl"> <div class="flex items-end justify-center overflow-hidden rounded-t-xl border-b border-vulcan-800"> <div class="flex"> <img class="group-hover:scale-110 duration-300 aspect-[2/1] object-cover" loading="lazy" src="/img/wapt/h/retesting.webp" alt="Issue Retesting after a Web App Security Assessment" width="560"> </div> </div> <div class="p-8"> <p> <time class=" items-center w-auto px-3 py-1 text-xs font-semibold text-white transition-all border rounded-full h-7 bg-vulcan-900 hover:text-vulcan-400 border-vulcan-700" datetime="Wed Apr 23">Wed Apr 23</time> </p> <p class="mt-5 text-sm font-medium leading-6 text-white"> Issue Retesting after a Web App Security Assessment </p> <p class="mt-2 text-sm text-vulcan-300 line-clamp-1"> Learn what a retest is after a web app security assessment and why it is important </p> </div> </div> </a> </li><li class="group ring-1 ring-inset ring-white/5 text-white bg-gradient-to-b from-vulcan-500 via-vulcan-500/5  rounded-xl p-[0.060rem] overflow-hidden  shadow-vulcan-950 shadow-2xl"> <a href="/penetration-testing/scoping/" title="Web App Penetration Testing Scoping Questions"> <div class="bg-vulcan-900  rounded-xl"> <div class="flex items-end justify-center overflow-hidden rounded-t-xl border-b border-vulcan-800"> <div class="flex"> <img class="group-hover:scale-110 duration-300 aspect-[2/1] object-cover" loading="lazy" src="/img/blog/h/web-application-scoping.webp" alt="Web App Penetration Testing Scoping Questions" width="560"> </div> </div> <div class="p-8"> <p> <time class=" items-center w-auto px-3 py-1 text-xs font-semibold text-white transition-all border rounded-full h-7 bg-vulcan-900 hover:text-vulcan-400 border-vulcan-700" datetime="Wed Mar 26">Wed Mar 26</time> </p> <p class="mt-5 text-sm font-medium leading-6 text-white"> Web App Penetration Testing Scoping Questions </p> <p class="mt-2 text-sm text-vulcan-300 line-clamp-1"> Understand the knowledge of the target application that will be required in order to fully scope a web application. </p> </div> </div> </a> </li><li class="group ring-1 ring-inset ring-white/5 text-white bg-gradient-to-b from-vulcan-500 via-vulcan-500/5  rounded-xl p-[0.060rem] overflow-hidden  shadow-vulcan-950 shadow-2xl"> <a href="/penetration-testing/tools/" title="Web Application Penetration Testing Tools"> <div class="bg-vulcan-900  rounded-xl"> <div class="flex items-end justify-center overflow-hidden rounded-t-xl border-b border-vulcan-800"> <div class="flex"> <img class="group-hover:scale-110 duration-300 aspect-[2/1] object-cover" loading="lazy" src="/img/wapt/h/web-app-penetration-testing-tools.webp" alt="Web Application Penetration Testing Tools" width="560"> </div> </div> <div class="p-8"> <p> <time class=" items-center w-auto px-3 py-1 text-xs font-semibold text-white transition-all border rounded-full h-7 bg-vulcan-900 hover:text-vulcan-400 border-vulcan-700" datetime="Sun Mar 23">Sun Mar 23</time> </p> <p class="mt-5 text-sm font-medium leading-6 text-white"> Web Application Penetration Testing Tools </p> <p class="mt-2 text-sm text-vulcan-300 line-clamp-1"> Learn what types of tools a web application penetration test uses. </p> </div> </div> </a> </li><li class="group ring-1 ring-inset ring-white/5 text-white bg-gradient-to-b from-vulcan-500 via-vulcan-500/5  rounded-xl p-[0.060rem] overflow-hidden  shadow-vulcan-950 shadow-2xl"> <a href="/penetration-testing/types/" title="Types of Web App Penetration Testing: Understand What You Need"> <div class="bg-vulcan-900  rounded-xl"> <div class="flex items-end justify-center overflow-hidden rounded-t-xl border-b border-vulcan-800"> <div class="flex"> <img class="group-hover:scale-110 duration-300 aspect-[2/1] object-cover" loading="lazy" src="/img/wapt/h/web-app-penetration-testing-types.webp" alt="Types of Web App Penetration Testing: Understand What You Need" width="560"> </div> </div> <div class="p-8"> <p> <time class=" items-center w-auto px-3 py-1 text-xs font-semibold text-white transition-all border rounded-full h-7 bg-vulcan-900 hover:text-vulcan-400 border-vulcan-700" datetime="Sun Mar 23">Sun Mar 23</time> </p> <p class="mt-5 text-sm font-medium leading-6 text-white"> Types of Web App Penetration Testing: Understand What You Need </p> <p class="mt-2 text-sm text-vulcan-300 line-clamp-1"> Our guide on the different types of web app pentesting, understand what service type you may need. </p> </div> </div> </a> </li><li class="group ring-1 ring-inset ring-white/5 text-white bg-gradient-to-b from-vulcan-500 via-vulcan-500/5  rounded-xl p-[0.060rem] overflow-hidden  shadow-vulcan-950 shadow-2xl"> <a href="/penetration-testing/vs-vulnerability-assessment/" title="Web App Vulnerability Testing vs Web App Penetration Testing"> <div class="bg-vulcan-900  rounded-xl"> <div class="flex items-end justify-center overflow-hidden rounded-t-xl border-b border-vulcan-800"> <div class="flex"> <img class="group-hover:scale-110 duration-300 aspect-[2/1] object-cover" loading="lazy" src="/img/blog/h/penetration-testing-vulnerability-assessment-differences.webp" alt="Web App Vulnerability Testing vs Web App Penetration Testing" width="560"> </div> </div> <div class="p-8"> <p> <time class=" items-center w-auto px-3 py-1 text-xs font-semibold text-white transition-all border rounded-full h-7 bg-vulcan-900 hover:text-vulcan-400 border-vulcan-700" datetime="Mon Oct 21">Mon Oct 21</time> </p> <p class="mt-5 text-sm font-medium leading-6 text-white"> Web App Vulnerability Testing vs Web App Penetration Testing </p> <p class="mt-2 text-sm text-vulcan-300 line-clamp-1"> Understand the key differences between vulnerability testing and penetration testing; such as, how each approach works, their depth of analysis, automation, reporting, frequency, cost, and use cases, helping organisations choose the right method to protect their systems. </p> </div> </div> </a> </li><li class="group ring-1 ring-inset ring-white/5 text-white bg-gradient-to-b from-vulcan-500 via-vulcan-500/5  rounded-xl p-[0.060rem] overflow-hidden  shadow-vulcan-950 shadow-2xl"> <a href="/penetration-testing/vulnerabilities/" title="Common Web App Vulnerabilities"> <div class="bg-vulcan-900  rounded-xl"> <div class="flex items-end justify-center overflow-hidden rounded-t-xl border-b border-vulcan-800"> <div class="flex"> <img class="group-hover:scale-110 duration-300 aspect-[2/1] object-cover" loading="lazy" src="/img/blog/h/web-application-vulns.webp" alt="Common Web App Vulnerabilities" width="560"> </div> </div> <div class="p-8"> <p> <time class=" items-center w-auto px-3 py-1 text-xs font-semibold text-white transition-all border rounded-full h-7 bg-vulcan-900 hover:text-vulcan-400 border-vulcan-700" datetime="Wed Mar 26">Wed Mar 26</time> </p> <p class="mt-5 text-sm font-medium leading-6 text-white"> Common Web App Vulnerabilities </p> <p class="mt-2 text-sm text-vulcan-300 line-clamp-1"> Learn the common web vulnerabilities that we test for when conducting a manual web application assessment. </p> </div> </div> </a> </li><li class="group ring-1 ring-inset ring-white/5 text-white bg-gradient-to-b from-vulcan-500 via-vulcan-500/5  rounded-xl p-[0.060rem] overflow-hidden  shadow-vulcan-950 shadow-2xl"> <a href="/penetration-testing/why-important/" title="Why Web Security Testing is Important"> <div class="bg-vulcan-900  rounded-xl"> <div class="flex items-end justify-center overflow-hidden rounded-t-xl border-b border-vulcan-800"> <div class="flex"> <img class="group-hover:scale-110 duration-300 aspect-[2/1] object-cover" loading="lazy" src="/img/blog/h/why-penetration-testing-is-important.webp" alt="Why Web Security Testing is Important" width="560"> </div> </div> <div class="p-8"> <p> <time class=" items-center w-auto px-3 py-1 text-xs font-semibold text-white transition-all border rounded-full h-7 bg-vulcan-900 hover:text-vulcan-400 border-vulcan-700" datetime="Tue Oct 22">Tue Oct 22</time> </p> <p class="mt-5 text-sm font-medium leading-6 text-white"> Why Web Security Testing is Important </p> <p class="mt-2 text-sm text-vulcan-300 line-clamp-1"> Web application testing plays a crucial role in safeguarding organisations from cyber threats by simulating real-world attacks to identify vulnerabilities. </p> </div> </div> </a> </li> </ol> </div> </div></section>   <footer class="relative border-t bg-vulcan-900 border-white/5"> <svg class="absolute blur-3xl right-0 opacity-70" width="70%" height="100%" viewBox="0 0 400 400" fill="none" xmlns="http://www.w3.org/2000/svg"> <g clip-path="url(#clip0_17_60)"> <g filter="url(#filter0_f_17_60)"> <path d="M128.6 0H0V322.2L332.5 211.5L128.6 0Z" fill="#0099da"/> <path d="M0 322.2V400H240H320L332.5 211.5L0 322.2Z" fill="#80cced" "=""/> <path d="M320 400H400V78.75L332.5 211.5L320 400Z" fill="#7c3aed"/> <path d="M400 0H128.6L332.5 211.5L400 78.75V0Z" fill="#7c3aed"/> </g> </g> <defs> <filter id="filter0_f_17_60" x="-159.933" y="-159.933" width="719.867" height="500" .867"="" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB"> <feFlood flood-opacity="0" result="BackgroundImageFix"/> <feBlend mode="normal" in="SourceGraphic" in2="BackgroundImageFix" result="shape"/> <feGaussianBlur stdDeviation="79.9667" result="effect1_foregroundBlur_17_60"/> </filter> </defs> </svg> <div class="relative px-8 py-12 mx-auto max-w-7xl md:px-12 lg:px-32 lg:py-24"> <div class="xl:grid xl:grid-cols-4 xl:gap-8 space-y-12 lg:space-y-0"> <div class="text-white"> <div class="inline-flex items-center gap-3"> <img src="/logos/aptive.webp"> </div> <p class="mt-2 text-sm text-vulcan-300"> <span class="mt-6 text-sm font-normal text-vulcan-300">
© 2026 Aptive Consulting Ltd. <br> All rights reserved <br> </span> <span class="mt-10 text-sm font-normal text-white">
Aptive Consulting Ltd is a company <br>registered England and Wales
</span> </p><p role="list" class="mt-10 text-sm space-y-2">
Company No: 07867021 <br>
VAT No: 160 8023 37<br>
ICO: ZB184376<br>
Phone: <a href="tel:03333440831">03333 440 831</a><br>
Mail: <a href="mailto:hello@aptive.co.uk">hello@aptive.co.uk</a><br> </p>  </div> <div class="grid grid-cols-2  gap-8 xl:col-span-3"> <div class="md:grid md:grid-cols-2 md:gap-8"> <div> <p class="text-white">Services</p> <ul role="list" class="mt-4 space-y-2"> <li> <a href="/penetration-testing/app/" class="text-sm text-vulcan-300 hover:text-white">
Application Security Assessment
</a> </li> <li> <a href="/vulnerability-assessment/" class="text-sm text-vulcan-300 hover:text-white">
Vulnerability Assessment
</a> </li> <li> <a href="/security-build-review/" class="text-sm text-vulcan-300 hover:text-white">
Security Hardening
</a> </li> </ul> </div> <div class="mt-12 md:mt-0"> <p class="text-white">Resourses</p> <ul role="list" class="mt-4 space-y-2"> <li> <a href="/blog/cybersecurity/" class="text-sm text-vulcan-300 hover:text-white">
Learn Cyber Security
</a> </li> <li> <a href="/blog/" class="text-sm text-vulcan-300 hover:text-white">
Cyber Security Blog
</a> </li> </ul> </div> </div> <div class="md:grid md:grid-cols-2 md:gap-8"> <div> <p class="text-white">Company</p> <ul role="list" class="mt-4 space-y-2"> <li> <a href="/about/" class="text-sm text-vulcan-300 hover:text-white">
About Aptive
</a> </li> <li> <a href="/about/terms-of-use/" class="text-sm text-vulcan-300 hover:text-white">
Terms of Use
</a> </li> <li> <a href="/about/cookie-policy/" class="text-sm text-vulcan-300 hover:text-white">
Cookie Policy
</a> </li> <li> <a href="/about/privacy-policy/" class="text-sm text-vulcan-300 hover:text-white">
Privacy Policy
</a> </li> <li> <a href="/contact/" class="text-sm text-vulcan-300 hover:text-white">
Contact
</a> </li> </ul> </div> <div class="mt-12 md:mt-0"> <p class="text-white">Follow Aptive</p> <ul role="list" class="mt-4 space-y-2"> <li> <a href="https://twitter.com/AptiveSec" class="text-sm text-vulcan-300 hover:text-white">
@AptiveSec
</a> </li> <li> <a href="https://www.linkedin.com/company/aptive-consulting/" class="text-sm text-vulcan-300 hover:text-white">
Linkedin
</a> </li> <li> <a href="https://github.com/Aptive/" class="text-sm text-vulcan-300 hover:text-white">
Github
</a> </li> </ul> </div> </div> </div> </div> </div> </footer> </body></html>