sync&&"function"==typeof e.func?t?async function(t){return e.func(t)}:async function(){return e.func()}:"function"==typeof e?.func?e.func:void 0}try{e({property:"strictDefine",value:e})}catch{}try{e({property:"defineStrictObject",value:o})}catch{}try{e({property:"defineStrictMethod",value:n})}catch{}var r=["toString","toLocaleString","valueOf","constructor","prototype"];function o(t){let{context:n,property:c,propertiesToExclude:a=[],skipPrototype:l=!1,hardenPrototypePropertiesToExclude:u=[]}=t;if(!c)return new Error("property is required");let s=(n||globalThis)[c],p={},f=i(n,c);s&&("object"==typeof s||"function"==typeof s)&&Reflect.ownKeys(s).forEach(t=>{if(!a.includes(t)&&!r.includes(t)){let r=i(s,t);if(r&&(r.writable||r.configurable)){let{value:o,get:n,set:i,enumerable:c=!1}=r,a={};void 0!==o?a.value=o:n?a.get=n:i&&(a.set=i);try{let r=e({context:s,property:t,...a,enumerable:c});p[t]=r}catch(e){if(!(e instanceof TypeError))throw e;try{p[t]=r.value||r.get||r.set}catch{}}}}});let d={originalObject:s,originalProperties:p};if(!l&&void 0!==s?.prototype){let e=o({context:s,property:"prototype",propertiesToExclude:u,skipPrototype:!0});e instanceof Error||(d.originalPrototype=e?.originalObject,d.originalPrototypeProperties=e?.originalProperties)}return e({context:n,property:c,value:s,enumerable:f?.enumerable}),d}function n(t,r){let o=(r||globalThis)[t],n=i(r||globalThis,t);return o&&n&&(n.writable||n.configurable)?(Object.freeze(o),e({context:globalThis,property:t,value:o})):o}function i(e,t){if(e&&t)try{return Reflect.getOwnPropertyDescriptor(e,t)}catch{return}}function c(e){if("string"!=typeof e)return e;try{return decodeURIComponent(e).toLowerCase().trim()}catch{return e.toLowerCase().trim()}}function a(e,t){return e instanceof Headers?e.forEach((r,o)=>{l(o,t)||e.delete(o)}):Object.keys(e).forEach(r=>{l(r,t)||delete e[r]}),e}function l(e,t){return!t.has(c(e)||"")}function u(e,t){let r=!0,o=function(e){let t,r;if(globalThis.Request&&e instanceof Request)t=e.url;else{if("function"!=typeof e?.toString)throw new Error("Unsupported type for url");t=e.toString()}try{return new URL(t).pathname}catch{return r=t.replace(/#.+/gi,"").split("?").shift(),r.startsWith("/")?r:`/${r}`}}(e),n=c(o);return n&&t.some(e=>n.includes(e))&&(r=!1),r}function s(t,r,o){let n=fetch,i=XMLHttpRequest,c=new Set(r);function s(){let e=new i,r=e.open,n=e.setRequestHeader;return e.open=function(){let n=Array.from(arguments),i=n[1];if(n.length<2||u(i,t))return r.apply(e,n);throw new Error(o||`Request not allowed for path ${i}`)},e.setRequestHeader=function(t,r){l(decodeURIComponent(t),c)&&n.call(e,t,r)},e}return e({property:"fetch",value:function(){let e=function(e,t){return globalThis.Request&&e[0]instanceof Request&&e[0]?.headers?a(e[0].headers,t):e[1]?.headers&&a(e[1].headers,t),e}(arguments,c);return u(arguments[0],t)?n.apply(globalThis,Array.from(e)):new Promise((e,t)=>{t(new Error(o||`Request not allowed for path ${arguments[0]}`))})},enumerable:!0}),e({property:"XMLHttpRequest",value:s,enumerable:!0}),Object.keys(i).forEach(e=>{s[e]=i[e]}),{fetch:n,XMLHttpRequest:i}}var p=["TextEncoder","TextDecoder","XMLHttpRequestEventTarget","EventTarget","URL","JSON","Reflect","Object","Array","Map","Set","WeakMap","WeakSet","Promise","Symbol","Error"],f=["addEventListener","removeEventListener","dispatchEvent","encodeURI","encodeURIComponent","decodeURI","decodeURIComponent"];const d=function(){let t=globalThis.open,r=document.open;function o(e,r,o){let n="string"!=typeof e,i=t.call(window,e,r,o);return n||e&&function(e){return e.startsWith("//")&&/(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\.)+[a-z0-9][a-z0-9-]{0,61}[a-z0-9]/g.test(`${location.protocol}:${e}`)&&(e=`${location.protocol}${e}`),!e.startsWith("http")||new URL(e).hostname===location.hostname}(e)?{}:i}return e({property:"open",value:o,context:globalThis,enumerable:!0}),e({property:"open",value:function(e,t,n){return e?o(e,t,n):r.call(document,e||"",t||"",n||"")},context:document,enumerable:!0}),{open:t,documentOpen:r}},y=function(){let t=document.createElement,r=Element.prototype.setAttribute,o=Element.prototype.setAttributeNS;return e({property:"createElement",context:document,value:function(n,i){let a=t.call(document,n,i);if("iframe"===c(n)){e({property:"srcdoc",context:a,get:()=>"",set:()=>{console.warn("`srcdoc` is not allowed in iframe elements.")}});let t=function(e,t){"srcdoc"!==e.toLowerCase()?r.call(a,e,t):console.warn("`srcdoc` attribute is not allowed to be set.")},n=function(e,t,r){"srcdoc"!==t.toLowerCase()?o.call(a,e,t,r):console.warn("`srcdoc` attribute is not allowed to be set.")};a.setAttribute=t,a.setAttributeNS=n}return a},enumerable:!0}),{createElement:t,setAttribute:r,setAttributeNS:o}},m=["client-binding"],b=["/_api/v1/access-tokens","/_api/v2/dynamicmodel","/_api/one-app-session-web/v3/businesses"],h=function(){let t=setTimeout,r=setInterval;return o("setTimeout",0,globalThis),o("setInterval",0,globalThis),{setTimeout:t,setInterval:r};function o(t,r,o){let n=o||globalThis,i=n[t];if(!i||"function"!=typeof i)throw new Error(`Function ${t} not found or is not a function`);e({property:t,value:function(){let e=Array.from(arguments);if("string"!=typeof e[r])return i.apply(n,e);console.warn(`Calling ${t} with a String Argument at index ${r} is not allowed`)},context:o,enumerable:!0})}},v=function(){if(navigator&&"serviceWorker"in navigator){let t=navigator.serviceWorker.register;return e({context:navigator.serviceWorker,property:"register",value:function(){console.log("Service worker registration is not allowed")},enumerable:!0}),{register:t}}return{}};performance.mark("overrideGlobals started");const{isExcludedFromSecurityExperiments:g,experiments:w}=window.viewerModel,E=!g&&w["specs.thunderbolt.securityExperiments"];try{d(),E&&y(),w["specs.thunderbolt.hardenFetchAndXHR"]&&E&&s(b,m),v(),(e=>{let t=[],r=[];r=r.concat(["TextEncoder","TextDecoder"]),e&&(r=r.concat(["XMLHttpRequestEventTarget","EventTarget"])),r=r.concat(["URL","JSON"]),e&&(t=t.concat(["addEventListener","removeEventListener"])),t=t.concat(["encodeURI","encodeURIComponent","decodeURI","decodeURIComponent"]),r=r.concat(["String","Number"]),e&&r.push("Object"),r=r.concat(["Reflect"]),t.forEach(e=>{n(e),["addEventListener","removeEventListener"].includes(e)&&n(e,document)}),r.forEach(e=>{o({property:e})})})(E),E&&h()}catch(e){window?.viewerModel?.mode.debug&&console.error(e);const t=new Error("TB006");window.fedops?.reportError(t,"security_overrideGlobals"),window.Sentry?window.Sentry.captureException(t):globalThis.defineStrictProperty("sentryBuffer",[t],window,!1)}performance.mark("overrideGlobals ended")})(); //# sourceMappingURL=https://static.parastorage.com/services/wix-thunderbolt/dist/overrideGlobals.inline.ec13bfcf.bundle.min.js.map Reisender | Cybersecurity Consulting | Atlanta, GA, USA
top of page

Cybersecurity Meets Business Objectives

At Reisender, your business objectives are always at the forefront. You need your cybersecurity and privacy programs to align with your overall business goals. Reisender helps your organization stay protected while driving performance and growth by assessing risks, identifying opportunities, and implementing tailored solutions.

 

That’s the Reisender approach – integrating cybersecurity expertise with your business objectives. This approach strengthens security and compliance without sacrificing efficiency, so you can focus on innovation.

Tailored Solutions

Reisender's tailored cybersecurity and privacy consulting services are designed with executive stakeholders in mind. Understanding that effective security measures must align with organizational goals and priorities is the Reisender way. This approach combines in-depth risk assessments with strategic insights, ensuring that security initiatives support your business objectives. Whether you need guidance on program development, executive and security tabletops or Mergers & Acquisitions due diligence, Reisender collaborates closely with leadership to create customized solutions that enhance resilience and drive informed decision-making. With this expertise, you can confidently navigate the complex cybersecurity landscape while ensuring your business objectives are met.

Risk Management

Cybersecurity risk management services focus on aligning security measures with your business goals through a comprehensive evaluation of potential threats and vulnerabilities.

Executive Tabletops

Security tabletop exercises engage executives in hands-on simulations of Incident Response (IR), Business Continuity (BCP), and Disaster Recovery (DR) events.

Tailored Solutions

Whether you're assessing risks during an acquisition or enhancing the maturity of your security program, you can be assured that the Reisender solution is tailored to your unique needs.

“Phillip has been an invaluable asset to our business. His dedication to information security is evident in every interaction. Phillip’s keen eye for detail and passion for protecting sensitive data have given us peace of mind. I highly recommend Phillip and Reisender's services to any organization seeking top-notch cybersecurity solutions.”

Dan Johnson, VP of IT

Testimonials

"If you’re looking for a trusted partner to elevate your security program, look no further than Phillip Lee and Reisender. They are not just consultants, they are enablers of your organization’s success. Whether it’s implementing technical controls, documenting policies, or educating our team, Phillip and Reisender deliver excellence with unmatched professionalism and care." 

Joseph Magnus, Head of Infrastructure & Security

"Whenever I need advice on navigating or communicating cyber risk at the leadership level, Phillip and Reisender are my first call. His insights are invaluable, and he’s always ready to help. Phillip combines world-class expertise in cyber risk and strategy with a rare ability to communicate clearly and confidently at the executive table."

Adam Lomas, Director of Security & Privacy

Stay Connected. 

Cybersecurity Expertise

© 2024 by Reisender, LLC.

bottom of page