What Is Attack On Web Applications?
What Is Attack On Web Applications?
INTRODUCTION
1
1.2 OBJECTIVES
XSS attacks are essentially referred to the illegal scripts injected in a web
page. When a user browses the page suffered by XSS attacks, the scripts embedded
in the web page will be triggered, resulting in some malicious attack effect. One of
the important reasons of this attack is that there is lack of common and
complete methodology for the evaluation either in terms of performance or needed
source code modification which in an overhead for an existing system. A
mechanism which will easily deployable and provide a good performance to
detect and prevent the Cross-site scripting (XSS) attack is essential one. One
obvious solution to protect web applications against such attack is escaping and
encoding method.
The objectives of this project are: to develop an understanding of the many
risks of XSS attacks, to identify some companies affected by XSS attacks and the
damages they suffered, to launch XSS attacks on a local server to measure the
damages they can cause, to propose best-practice solution to securing web
applications against XSS attacks.
1.3 TYPES OF XSS ATTACK
The way to inject malicious scripts into the web page can be
classified into three categories:
Reflected (Non-Persistent) XSS Attack
Stored (Persistent) XSS Attack
Document Object Model (DOM) based XSS Attack
Reflected (Non-Persistent) XSS Attack
Reflected attacks are executed by the victim’s browser and occur when the
victim provides input to the website. Reflected attacks are those where the injected
code is reflected off the web server such as in an error message, search result, or any
other responses that include some or all of the inputs sent to the server as part of the
request. When a user is tricked into clicking on a malicious link or submitting a
2
specially crafted form, the injected code travels to the vulnerable web server, which
reflects the attack back to the user’s browser. The browser then executes the code
because it came from a trusted server.
3
Figure 1.3.2 Stored XSS Attack
4
1.4 REAL WORLD INCIDENTS OF XSS ATTACKS
The utmost noticeable attack discovered on web platform is XSS attack. Such
attacks are now transformed into a serious infection for contemporary web
platforms. The exponential Impact of XSS worms in recent years is given by
following figure.
6
1.4.3 XSS Attack on Orkut (2010)
In 2010, an XSS vulnerability was exploited on Google’s social media
platform Orkut. It was a fast-moving malicious JavaScript that forced users to post
specific content. This attack affected a victim’s profile, then spread through all their
friends, who spread it to all their friends, and so on, ultimately affecting over five
million users all over the world. It spread overnight and infected users who viewed
emails or Orkut messages carrying the malicious payload (Higgins, 2007). The
email addresses of all victims were made available to the attacker which left them
vulnerable to further attacks. The vulnerability was fixed within a few hours and the
affected profiles were repaired. Since the accounts were connected to Google, all
users were instructed to reset their passwords.
Persistent XSS vulnerabilities like the one exploited in this attack are the
result of failing to properly sanitize input into forms. This allows attackers to insert
malicious code into pages (Constantin, 2010). Validating input could have been
used to prevent this XSS attack by making sure only legitimate data was being input
into the webpage forms.
Another effective measure would have been a content security policy that
could have prevented the malicious JavaScript from being loaded and executed in
the first place. In addition, Orkut didn’t use a secure protocol; if they had, the breach
also may have been prevented.
1.4.4 XSS Attack on Amazon (2013)
In December 2013, Amazon became a victim of a persistent XSS attack that
left their customers vulnerable to their information being stolen. The vulnerability
affected Kindle e-book readers. The malicious code was injected through e-book
metadata. For example, the attacker could add a book title containing code such as
“<script src="https://www.example.org/script.js"></script>” (Kovacs, 2014). This
allowed cookies to be accessed by the attacker, which could lead to personal
7
information being compromised, such as usernames and passwords. This
vulnerability affected everyone who used the Kindle library to keep their e-books.
Amazon took a little over a month to respond to this vulnerability. The attack
damaged Amazon’s reputation, and likely affected their revenue: users were afraid
to download the Kindle application due to all the bad press, which meant they
weren’t buying eBooks for the reader either. This vulnerability could have been
prevented by using intrusion detection systems, which wouldn’t have allowed the
attacker to insert malicious data via e-book metadata. Likewise, validating input
could have prevented the malicious code injection.
1.4.5 XSS Attack on Twitter (2014)
In 2014, an XSS vulnerability was found in TweetDeck, an application within
Twitter (Cross-Site Scripting (XSS) Found in Tweetdeck, 2014). The attacker
simply tweeted malicious JavaScript to make users automatically retweet tweets,
and it began to regenerate. At the time, Twitter had over 50 million users, and over
15 percent of them were affected. Users were concerned that their accounts had
been hijacked. The vulnerability remained on the site for so long that some users
began to use it to implement harmful JavaScript and possibly steal other users’
credentials.
It is very likely that many users’ information was stolen, although this was
never confirmed. This attack was possible because Twitter didn’t have an updated
WAF to filter code before it is processed to the webpage. To prevent this attack,
Twitter could have practiced sanitizing input, which would have prevented the
attacker from implementing the code in the browser. Twitter also could have
protected their restricted servers by implementing separation of duty and access so
that third parties would not be able to access them.
8
CHAPTER 2
LITERATURE SURVEY
ADVANTAGE
The architecture is highly flexible.
DISADVANTAGE
9
2.2 PROGRAM SLICING STORED XSS BUGS
Static detection algorithm is based on static analysis for detecting Stored XSS
bugs in PHP application and integrate it with program slicing method to generate
the slices of web application related to possible Stored XSS. This algorithm is to
locate possible vulnerabilities and then uses program slicing method to generate the
program slices related with the detected vulnerabilities. In contrast to traditional
static tainting-based approaches for detecting Reflected XSS, In this project the
algorithm is used for detecting Stored XSS and generate the complete related
program slices further for later manual checking or dynamic analysis. However, it
does not compatible with the object-oriented features of PHP and also the complex
program will make slicing difficult.
ADVANTAGE
Efficient in performing the slicing of complex PHP program modules.
More accurate array element treatment in alias analysis.
Slicing the vulnerable program out when detecting a possible Stored
XSS.
DISADVANTAGE
Does not compatible with the object-oriented features of PHP.
Manual effort is needed to find vulnerabilities.
Does not compatible with the dynamic web pages.
10
2.3 MACHINE LEARNING BASED CROSS SITE SCRIPTING
DETECTION IN ONLINE SOCIAL NETWORK
Machine learning techniques are utilized to initially aim for extracting the
Web pages as input and feature vector as an output which would be utilized in
classification of Web pages as suspicious or not. The identification of XSS infected
HTML web pages was done by utilizing the feature samples and the associated
machine learning algorithms. There are two classifiers on the basis of the
characteristics of these features, and they are proved to be effective for the proposed
features. A novel method is proposed to simulate XSS worm spreading and build
webpage database. As a web application, online social network has a lot in common
with general networks. By taking webpages in OSN’s traffic as ordinary pages, a
static analysis can be made on them. Then, four groups of features are extracted
from webpages. That are keyword features, JavaScript features, HTML tag
features, and URL features.
ADVANTAGE
This technique is effective.
This method is efficient in OSN’s XSS detection.
Machine learning based feature extraction of web pages.
DISADVANTAGE
Memory space can be wasted.
Manual method for the collection of feature samples.
11
2.4 ROBUST TESTING PLATFORM FOR DOM-BASED XSS
VULNERABILITIES
ADVANTAGE
Capable to detect DOM-Based XSS Vulnerabilities.
This approach is efficient in looking up taint information.
It does not lead a memory blow up.
DISADVANTAGE
Requires major changes in the source code of web applications.
Memory space can be wasted.
12
2.5 AUTOMATED DETECTING AND REPAIR OF CROSS-SITE
SCRIPTING VULNERABILITIES THROUGH UNIT TESTING
ADVANTAGE
This approach can be easily integrated into existing software
development practices.
It can pinpoint the location of a vulnerability in the source code.
DISADVANTAGE
Requires major changes in the source code of web applications.
13
2.6 MODEL CHECKING FOR THE DEFENSE AGAINST CROSS SITE
SCRIPTING ATTACKS
ADVANTAGES
Bugs of the website are found
Counter examples are showed with model checker SMV based on the
website behavior model expressed in CTL.
DISADVANTAGES
Data privacy is more complex
It needs to decrypt the stored data
14
CHAPTER 3
EXISTING SYSTEM
15
CHAPTER 4
PROPOSED SYSTEM
4.1 PROPOSED SYSTEM
There are several methods and approach for preventing the XSS
attack but still, it is not prevented completely. So we use a hierarchical approach
throughout the development process to secure the web application for both client
side and server side because a single method and approach are not sufficient to
handle it.
To prevent cross site scripting attacks, all variables output in a web page are
encoded before sending it to end users. Encoding variables output substitutes HTML
markup with alternate representations called entities. When entities are encoded,
the web application displays them but does not run them, such as <script> gets
converted to <script> Below table shows the entity name that we can use for
HTML encoding for some HTML characters.
Space  
16
4.1 TECHNIQUES
17
CHAPTER 5
SYSTEM DESIGN
5.1 SYSTEM ARCHITECTURE
The overall system architecture diagram explains the structure of our
complete project in a graphical model in very simple and effective manner. It almost
holds every modules of our developing projects and the workflow of the
components and the relative data resources.
18
5.2 USE CASE DIAGRAM
19
5.3 SEQUENCE DIAGRAM
A sequence diagram shows, as parallel vertical lines (“lifelines”), different
processes or objects that live simultaneously, and as the horizontal arrows, the
messages exchanged between them, in the order in which they occur. This allows
the specification of simple run time scenarios in a graphical manner.
WEB
ATTACKER APPLICATION WEB SERVER
Input Validation
20
5.4 ACTIVITY DIAGRAM
21
CHAPTER 6
SYSTEM REQUIREMENTS
6.3.1 INTRODUCTION
22
Each letter represents:
1. “W” stands for Windows, there’s also LAMP (for Linux) and MAMP
(for Mac).
2. “A” stands for Apache. Apache is the server software that is responsible for
serving web pages. When we request a particular webpage, Apache grants
the request over HTTP and shows the site.
3. “M” stands for MySQL. MySQL’s job is to be the database management
system for the server. It stores all of the relevant information like site’s
content, user profiles, etc.
4. “P” stands for PHP. It’s the programming language that was used to write
WordPress. It acts like glue for this whole software stack. PHP is running
in conjunction with Apache and communicating with MySQL.
It’s a light software that is smooth and easy to install and configure.
23
Provides the ability to upgrade and downgrade some of its
components to provide a suitable production environment for the
user.
Its available for both 64 bit and 32 bit windows operating systems.
25
Figure 6.3.4.1 phpMyAdmin page
Features:
Intuitive web interface
browse and drop databases, tables, views, fields and indexes
create, copy, drop, rename and alter databases, tables, fields and
indexes
maintenance server, databases and tables, with proposals on
server configuration
execute, edit and bookmark any SQL-statement, even batch-
queries
manage MySQL users and privileges
26
manage stored procedures and triggers
Import data from CSV and SQL
Export data to various formats: CSV, SQL, XML, PDF,
OpenDocument Text and Spreadsheet, Word, LATEX and
others
Administering multiple servers
Creating PDF graphics of your database layout
Creating complex queries using Query-by-example (QBE)
Searching globally in a database or a subset of it
6.3.4.2 APACHE
The most important part of the WAMP package is Apache (or "Apache
HTTP Server") which is used to run the web server within Windows. By
running a local Apache web server on a Windows machine, a web developer
can test webpages in a web browser without publishing them live on the
Internet.
27
dynamic website before publishing it to a public web server.
CHAPTER 7
IMPLEMENTATION AND RESULT
7.1 LIST OF MODULES
1. Creation of webpages
2. Database Connectivity
3. Detection of XSS vulnerability
4. Prevention of XSS attack
7.1.1 CREATION OF WEBPAGES
This work implements the creation of a sample website which has the cross
site scripting vulnerabilities using HTML, CSS, javascript with some basic user
28
interactions. The sample website needs to be run in a browser using localhost site
like wamp. We are going to demonstrate the types of XSS attacks on our site.
Our main page of web application looks like this:
29
Figure 7.2 Phpmyadmin page
30
Figure 7.3 Sample comment page
In Comment page, the comments box allows the user to print their comments.
But instead of that, if the user enters some malicious script in the comments
box it just locally executes in the users session.
Let us insert a script which displays text box.
31
Figure 7.5 Injecting alert box script
32
Figure 7.7 Sample comment page
Let us insert a script which when we try to load original page gets redirected to
another page.
33
Figure 7.9 Injecting page redirection script
After executing this when we try to load that vulnerable webpage it gets
redirected to another website as shown below.
Thus, this script is stored in the server side database and gets executed every
time the vulnerable site is run.
34
Cookie Stealing
To demonstrate cookie stealing attack, we create a simple web application in
which the users are allowed to comment on the picture after a successful login.
New user can register with desire username and password by using their
mail id.
35
Registered user can login to the comment page using their credentials.
Comment page of this web application looks like below. Let us insert a script
which when we try to load original page gets redirected to attacker website
with user cookie.
36
Figure 7.15 Injecting cookie stealing script
In that website, the attacker can write the code to store the stolen cookies in his
text file.
After executing this when other user login to the comment page their cookie
will be send to the attacker.
37
When the user click on the link it will be redirected to attacker site.
The injected script is stored in the server side database and gets executed every
time the vulnerable site is run.
The attacker can view the stolen cookies in the text file itself. Using this
credentials the attacker can login as a normal user and also capable of changing
user’s password.
38
Figure 7.19 Stolen cookies stored in text file
39
Figure 7.21 Injecting alert box script in URL
After executing this the alert box is displayed every time the vulnerable site is
run and force the user to click ok button to view the original page.
After using encoding and escaping method in development process, the web
application escapes the vulnerable script but does not run them.
Reflected (Non-Persistent) XSS Attack
Let us insert a script which displays text box.
The vulnerable script gets escaped, only the content outside of the tag will be
displayed.
40
Figure 7.23 Prevention against Reflected XSS
41
The script tag gets escaped, only the content outside of the tag will be
displayed.
Cookie Stealing
Let us insert a script which when we try to load original page gets redirected to
attacker website with user cookie.
42
The script tag gets escaped, only the content outside of the tag will be
displayed.
43
The script tag which is given in the URL gets escaped, only the content outside
of the tag will be displayed.
44
7.2 SAMPLE CODING
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<?php
$db=new mysqli("localhost","root","","db3");
?>
<style>
th{
text-align:center;
font-weight:bold;
font-size:20;
}
td{
text-align:center;
font-size:20;
}
body{
background-image:url("../image/ss.jpg");
background-repeat:no-repeat;
background-size:cover;
font-family: 'Montserrat', Arial, Helvetica, sans-serif;
}
#feedback-page{
text-align:center;
}
#tab1{
background: linear-gradient(45deg, #c0c0c0 0%, #E0DCDC 50%, #DBDBDB 100%);
width:80%;
}
45
#form-main{
width:80%;
float:left;
padding-top:0px;
}
#form-div {
background-color:rgba(72,72,72,0.4);
padding-left:45px;
padding-right:35px;
padding-top:15px;
width: 325px;
height:65%;
float: left;
left: 85%;
position: absolute;
margin-top:5px;
margin-left: -260px;
border-radius: 7px;
}
.montform .feedback-input {
color:#3c3c3c;
font-family: Helvetica, Arial, sans-serif;
font-weight:300;
font-size: 18px;
border-radius: 0;
line-height: 20px;
background-color: #fbfbfb;
padding: 10px 10px 10px 40px;
width:100%;
box-sizing: border-box;
border: 3px solid rgba(0,0,0,0);
}
.montform .feedback-input:focus{
background: #fff;
46
border: 3px solid #3498db;
color: #3498db;
outline: none;
padding: 13px 13px 13px 54px;
}
.montform #name{
background-image: url("https://cdnjs.cloudflare.com/ajax/libs/foundicons/3.0.0/svgs/fi-
address-book.svg");
background-size: 30px 25px;
background-position: 11px 8px;
background-repeat: no-repeat;
}
.montform #name:focus{
background-image: url(https://cdnjs.cloudflare.com/ajax/libs/foundicons/3.0.0/svgs/fi-
address-book.svg);
background-size: 30px 25px;
background-position: 8px 5px;
background-position: 11px 8px;
background-repeat: no-repeat;
}
.montform #email{
background-image: url(https://cdnjs.cloudflare.com/ajax/libs/foundicons/3.0.0/svgs/fi-
mail.svg);
background-size: 30px 25px;
background-position: 11px 8px;
background-repeat: no-repeat;
}
.montform #email:focus{
background-image: url(https://cdnjs.cloudflare.com/ajax/libs/foundicons/3.0.0/svgs/fi-
mail.svg);
background-size: 30px 25px;
background-position: 11px 8px;
background-repeat: no-repeat;
47
}
.montform #comment{
background-image: url(https://cdnjs.cloudflare.com/ajax/libs/foundicons/3.0.0/svgs/fi-
pencil.svg);
background-size: 30px 25px;
background-position: 11px 8px;
background-repeat: no-repeat;
}
.montform textarea {
width: 100%;
height: 100px;
line-height: 150%;
line-spacing: 60px;
resize:vertical;
}
.montform input:hover, .montform textarea:hover,
.montform input:focus, .montform textarea:focus {
background-color:#e6e6e6;
}
.button-blue{
font-family: 'Montserrat', Arial, Helvetica, sans-serif;
float:left;
width: 100%;
height:50px;
border: #fbfbfb solid 2px;
cursor:pointer;
background-color: #3498db;
color:white;
font-size:20px;
padding-top:14px;
padding-bottom:14px;
transition: all 0.3s;
align:center;
margin-top:-4px;
48
font-weight:300;
}
.button-blue:hover{
background-color: rgba(0,0,0,0);
color: #0493bd;
}
.montform .submit:hover {
color: #3498db;
}
.ease {
width: 0px;
height: 74px;
background-color: #fbfbfb;
transition: .3s ease;
}
.submit:hover .ease{
width:100%;
height:40px;
background-color:white;
}
@media only screen and (max-width: 580px) {
#form-div{
left: 3%;
margin-right: 3%;
width: 80%;
margin-left: 0;
padding-left: 3%;
padding-right: 3%;
}
}
</style>
</head>
<body><div align="right"><font size="5"><a href="../first.php"
class="c"><b>HOME</b></a></font></div>
49
<h1> <center>PREVENTION OF STORED XSS</center></h1>
<h3 align="right">COMMENT
PAGE
</h3>
<div class="container">
<div id="form-main">
<div id="form-div">
<form class="montform" id="reused_form" method="POST" >
<p class="name">
<input name="Name" type="text" pattern="[a-zA-Z.]+([ ]?[a-zA-Z]+)*"
class="feedback-input" required placeholder="Name" id="name" /></p>
<p class="email">
<input name="email" type="email" name="email" required class="feedback-input"
id="email" placeholder="Email" />
</p>
<p class="text">
<textarea name="comment" class="feedback-input" id="comment"
placeholder="Message"></textarea>
</p>
<div class="submit">
<button type="submit" name="add" class="button-blue">SUBMIT</button>
</div>
</form>
</div>
</div></div>
<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>
<br><br><br><br><br>
<?php
if(isset($_POST["add"]))
{
function escape($comment)
{
$comment=htmlspecialchars($comment,ENT_QUOTES,'UTF-8');
return filter_input(INPUT_POST,'comment',FILTER_SANITIZE_STRING);
50
}
$msg=escape($_POST["comment"]);
$name=filter_input(INPUT_POST,'Name',FILTER_SANITIZE_STRING);
$email=filter_input(INPUT_POST,'email',FILTER_SANITIZE_EMAIL);
$sq="insert into student6(Name,email,comment) values ('$name','$email','$msg')";
if($db->query($sq)){
echo "<center><b><font size='4'>Your comment is submitted
successfully</font></b><br><br></center>";
}
else{
echo "<center><b><font size='4'>Your comment is not
submitted</font></b></center>";
}
}
$s= "select * from student6";
$res=$db->query($s);
if($res->num_rows>0)
{
echo "<CENTER><table id='tab1' border='2' bgcolor='transparent' cellspacing='0'
cellpadding='2'></CENTER>";
echo "<tr><td colspan='4'><center><b>COMMENTS</b></center></td></tr>";
echo "<tr><th>Date</th><th>Name</th><th>E-mail
Id</th><th>Comments</th></tr>";
$i=0;
while($r=$res->fetch_assoc()){
$i++;
echo
"<tr><td>{$r["datetime"]}<td>{$r["Name"]}</td><td>{$r["email"]}</td><td>{$r["co
mment"]}</td></TR>";
}
}
?>
</body>
</html>
51
CHAPTER 8
TESTING
8.1 SYSTEM TESTING
Software will undergo many changes after it is delivered to the user. Because
of many errors, performance enhancements and change to new environments.
System testing is the stage of implementations, which is aimed at ensuring that the
system works accurately and efficiently before live operations commences. Testing
is vital to the success of the system. The candidate system is subject to a variety of
tests. Data prepared for the purpose of testing is called test data. Testing is the
process by which the programmers generate a set of test data, which gives the
maximum probability of finding all types of errors that can occur in the software
and the following steps has been performed.
Unit Testing
Integration Testing
Validation Testing
Output Testing
User acceptance Testing
8.1.1 UNIT TESTING
Unit testing comprises generally of elements tested done by a developer. Each
developer or development team will perform its own unit testing. This testing is
carried put during programming stage itself. In this step each data has been tested
for parallel to its development and the uncovered errors were corrected.
8.1.2 INTEGRATION TESTING
Integration testing is a systematic technique for constructing tests to uncover
errors associated within the interface. It comprises two or more developers or
development teams combining the programs to determine how they work together.
In this testing the reporting components were integrated with the rest of the
52
application and tested to ensure that the whole system worked correctly. The report
components were loaded into the system and run through the application the reports
generated from the application were then verified.
8.1.3 VALIDATION TESTING
Validation testing is where requirements established as a part of software
requirements analysis is validated against the software that has been constructed.
This test provided the assurance that the software meets all functional, behavioral
and performance requirements. The rules generation form on the system has sent
test data for the reports along with the expected output. The values for the report
input parameters were specified and the expected report data were sent in PDF
format.
8.1.4 OUTPUT TESTING
After performing the validation testing, the next step is the output testing of
the enhanced system. No system could be useful if it does not produce the required
output in the required format. The output generated by the system are tested
according to the users requirement. During output testing the user requires some
new report layout changes. These changes were done and tested before the final
delivery of the system.
8.1.5 USER ACCEPTANCE TESTING
User acceptance testing comprises a completed and successful end to end
system test with review of the results by one or more user with specific knowledge.
Users may apply a variety of validation techniques. For example: generate a report
from the new system and compare the results with the same report from the current
system, data inspection and others. Prior to this testing the system was delivered to
the client along with the steps for implementation. In user acceptance testing the
system was run in the client environment by the actual system users. The users were
allowed to test the system and raise any issues for a specific period after which the
system is assumed to be complete and error free.
53
8.2 BLACK BOX TESTING
Black-box testing is a method of software testing that examines the
functionality of an application based on the specifications. It is also known as
Specifications based testing. Independent Testing Team usually performs this type
of testing during the software testing life cycle. This method of test can be applied
to each and every level of software testing such as unit, integration, system and
acceptance testing.
There are different techniques involved in Black Box testing process
1. Equivalence Class
2. Boundary Value Analysis
3. Domain Tests
4. Orthogonal Arrays
5. Decision Tables
6. State Models
7. Exploratory Testing
8. All-pairs testing
8.3 WHITE BOX TESTING
White box testing is a testing technique that examines the program structure
and derives test data from the program logic/code. The other names of glass box
testing are clear box testing, open box testing, logic driven testing or path driven
testing or structural testing. White Box Testing Techniques includes
Statement Coverage - This technique is aimed at exercising all
programming statements with minimal tests.
Branch Coverage - This technique is running a series of tests to ensure
that all branches are tested at least once.
Path Coverage - This technique corresponds to testing all possible paths
which means that each statement and branch is covered.
54
CHAPTER 9
CONCLUSION AND FUTURE WORK
9.1 CONCLUSION
In this project, we have implemented the various attacks possible with XSS
vulnerability in web applications and its prevention measures. Result of encoding
and escaping Technique before and after the implementation of respective
countermeasures reveal that if the web applications are developed with security in
mind from the beginning itself, then many attacks on web applications can be
avoided almost without any extra effort and time.
55
9.2 FUTURE ENHANCEMENT
The proposed solution is found to be very effective by the experimental
results. But we can never be completely sure that no one can break our filter.
Attackers always find their ways to break application security. If we really want to
make a hard-to-crack XSS filter, we have to analyze more on all XSS patterns and
then we can use our prevention technique efficiently. After efficient analysis and
using better prevention technique, we can stop or fix the dangerous XSS web
application vulnerabilities. We should not depend on a single technique or
approach, we should use a multilayer security and also we should have focused on
initial level security. Future work is based on how to construct a website which is
not vulnerable to such attacks or how to deal with the sites which are already being
attacked with Cross-Site scripting attacks.
56
REFERENCES
[1] Galan E, Alcaide A, Orfila A, Blasco J, "A multi-agent
scanner to detect stored-XSS vulnerabilities" in IEEE International
conference for internet technology and secured transactions. pp37-
48.
[2] Wang Y, Li Z, Guo T, “Program slicing Stored XSS Bugs in
Web Application”, in 2011 IEEE fifth international symposium on
theoretical aspects of software engineering. pp 191-194
[3] R. Wang, X. Jia, Q. Li, S. Zhang, “Machine learning based
cross site scripting detection in online social network” in 2014 IEEE
internationsl conference in high performance computing and
communications on cyberspace safety and security. Pp 823-826..
[4] I. Parameshwaran, E. Budianto, S. Shinde, H.Dang, A. Sadhu
“Robust testing platform for Dom-Based XSS vulnerabilities” in
proceedings of the 2015 10th ACM joint meeting on foundations of
software engineering pp946-949.
[5] R. A. Popa, N. Zeldovich, “Automated detecting and
repairing Cross Site Scripting vulnerabilities through unit testing” in
IEEE Symposium on Security and Privacy, IEEE Computer Society,
2013.
[6] T. Qustin, E.Larson, and D. Ernst, “Model checking for the
defense against Cross site scripting attacks” computer, vol. 35, no.2,
pp 59-6, feb 2002.
57