Rpadml Documentation
Rpadml Documentation
Submitted By
ABDUL GHANI (Regd. No: 15W91A0501)
B. SINDHUJA (Regd. No: 15W91A0509)
K.SAI AMULYA (Regd. No: 15W91A0523)
BACHELOR OF TECHNOLOGY
in
COMPUTER SCIENCE & ENGINEERING
2020
Technological University Hyderabad (JNTUH) for the award of the degree of Bachelor of
It is further declared that the project report or any part thereof has not been previously
2. B. SINDHUJA - (15W91A0509)
PROJECT CERTIFICATE
This is to certify that this is the bonafide record of the project titled “RPADML:
REALTIME PHISHING ATTACK DETECTION USING MACHINE
LEARNING” is submitted by ABDUL GHANI (15W91A0501), B. SINDHUJA
(15W91A0509), K.SAI AMULYA (15W91A0523) of B.Tech in the partial fulfillment
of the requirements for the degree of Bachelor of Technology in Computer Science and
Engineering, Dept. of Computer Science & Engineering and this has not been submitted
for the award of any other degree of this institution.
HOD
First and foremost, I am grateful to the Principal Dr. M. ASHOK, for providing me with
all the resources in the college to make my project a success. I thank him for his valuable
suggestions at the time of seminars which encouraged me to give my best in the project.
I offer my sincere gratitude to my project -coordinator Mr. B. SUNIL and internal guide
DR. P. KIRAN KUMAR REDDY Assistant Professor of Computer Science and
Engineering department who has supported me throughout this project with their patience
and valuable suggestions.
I would also like to thank all the supporting staff of the Dept. of CSE and all other
departments who have been helpful directly or indirectly in making the project a success.
I am extremely grateful to my parents for their blessings and prayers for my completion
of project that gave me strength to do my project.
B. SINDHUJA - (15W91A0509)
1 1 Introduction
1.1Motivation
1.2Problem definition
1.3Objective of Project
1.4Limitations of Project
1.5Organization of Documentation
2 2 LITERATURE SURVEY
2.1Introduction
2.2Existing System
2.3 Disadvantages of Existing system
2.4 Proposed System
2.5Conclusion
3 3 ANALYSIS
3.1Introduction
3.2Software Requirement
Specification
3.2.1 User requirement
3.2.2 Software requirement
3.2.3 Hardware requirement
3.3Content diagram of Project
3.4Algorithms ad Flowcharts
3.5Conclusion
4 DESIGN
4.1Introduction
4.2DFD / ER / UML diagram (any other
project diagrams)
4.3Module design and organization
4.4Conclusion
7 CONCLUSION
7.1Project Conclusion
7.2Future enhancement
8 REFERENCES
8.1Referred Books
8.2Referred sites
INTRODUCTION
1. INTRODUCTION
1.1 MOTIVATION:
Social Engineering based attack leverages psychological manipulation of people,
tricked into performing actions or disclosing confidential information. Phishing is one of
the more known social engineering attack and aims at exploiting weaknesses in system
processes caused by users’ behavior. Indeed, a system can be secure enough against
password theft(e.g. the client-server communication channel is encrypted),but nothing can
be done against a naive user threatening the security of the system by revealing her/his
password to a fake Web site reached, for example, via an email-embedded HTTP link.
1.2 PROBLEM DEFINITION
The evolution of phishing techniques, the switch over malware-based phishing
campaigns together with the massive spread of mobile devices for business or personal
use, has clearly expanded the threat posed by phishing, especially towards the mobile
world, along with people underestimating the mobile cyber-threats and neglecting even
basic security measures. 17% of all Android apps (nearly one million total) were actually
malware in disguise and 36% of all mobile apps, even not malicious by design, did
inadvertently harmful things like tracking user behavior. Phishing attack detection in
desktop environment has been widely investigated in literature. On the contrary, despite
the severity of the phishing problem in the mobile ecosystem, we noticed a lack of
literature on the phishing attack detection for mobile device and, even extending the
scope into the mobile malware detection, very few works have converged towards
solutions running on mobile devices and related to malware-based phishing.
PURPOSE:
Many of the approaches proposed in literature, regardless of their effectiveness, still
have a strong verticality and focus on specific aspects such as: attack techniques; existing
security context; systems and protocols used to capture data; methodological approaches
used for phishing detection (black lists, heuristics, machine learning, etc.); devices on
which deploy the developed solution. To the best of our knowledge, none of the solutions
proposed so far, shown a unified approach across different environments (such as mobile
and desktop) and across subsets of the above mentioned aspects. This is mainly due to the
fact that, each solution often needs a number of prerequisites that are: i) difficult to
remove, in case some detection technique is covered by other third party software (e.g.
antivirus); ii) hard to adapt to other contexts, enabling the exploitation of the same
detection technique for other threats (e.g. botnets); iii) and burdensome to merge in a
single tool that can exploit different targets, sources or approaches. Therefore, in this
project, we propose a unified reference model and present the Real-time Phishing Attack
Detection using Machine Learning (RPAD-ML) framework that implements it for the
Android platform. Our unified reference model has three main pillars:
2. LITERATURE SURVEY
2.1 INTRODUCTION
Literature survey is the most important step in the software development process.
The huge literature on phishing detection techniques is almost completely oriented toward
methodologies tailored for desktop/laptop environments (see [4] for an extensive survey).
Considering the literature related to the mobile environment that, as mentioned before, is
not exhaustive, we can distinguish between work on "traditional" phishing [8-13]
(resulting in no particular research trend) and work on Malware-based phishing detection
[14]. The lack of literature on this specific subject is a consequence of a variety of reasons
spanning from (a) the inevitable convergence of the same threat to any Internet enabled
device (sometimes addressed as the Internet of Things), (b) the difficulty of implementing
a performing security solution on a mobile device, (c) the absence of basic security
settings on mobile devices (e.g. antivirus and firewall) and (d) the increased variability of
attack vectors directed towards mobile devices.
EXISTING SYSTEM:
PROPOSED SYSTEM:
To overcome the drawbacks of existing system, we propose a framework RPAD-
ML (REALTIME PHISHING ATTACK DETECTION USING MACHINE
LEARNING).
CONCLUSION
From the literature survey we can conclude that we have overcome the drawbacks
of existing system and we introduce new technology which would be helpful to use.
In proposed system to overcome that problem we create our project by providing
sharing through e mail. This helps user to reduce time as well as work.
3. ANALYSIS
3. ANALYSIS
3.1 INTRODUCTION
The purpose of this SRS document is to mark and secure the required Uniform
Resource locators (URL) and its functionalities for Intelligent Network Backup Tool. The
SRS will define how our team and the client conceive the final product and the
characteristics or functionality it must have. This document also makes a note of the
optional requirements like sharing, renaming which we wish to send URL path but are not
mandatory for the functioning of the project.
This phase appraises the needed requirements for the Bookmarks for a systematic
way of evaluating the requirements several processes are involved. The first step involved
in analyzing the requirements of the system is having a protection to the URL’s without
accessing by others within the system for a reliable investigation and all the case are
formulated to better understand the analysis of the Bookmarks (dataset).
Document Conventions:
The convention used in the size of fonts remains the same as for other documents
in the project. The section headings have the largest font of 14, subheadings have a font
size of 12(bold), and the text is on font 12. The priorities of the requirements are specified
with the requirement statements.
Intended Audience and Reading Suggestions:
This document is intended for project developers, managers, users, testers and
documentation writers. This document aims at discussing design and implementation
constraints, dependencies, system features, external interface requirements and other non-
functional requirements.
Identification of Needs:
The foremost and important necessity for a business firm or an organization is to
know how they are performing in the market and parallely they need to know how to
overcome their competitors in the market.
To do so we need to analysis our data based on all the available factors. The
system requirements for the project to be accomplished are:
RAM : 8GB
3.5 CONCLUSION:
The analysis tells as the requirement specifications of the project and the
required algorithms, flowcharts of the project. The functional requirements specify the
functionality and functional requirements were as the software requirements tell the
required software and supporting files to process the data. The hardware requirements tell
about the hardware components required to run the software. Flowcharts describe the
flow of the total process.
DESIGN
DESIGN
4.1 INTRODUCTION
System Design is the process or art of defining the architecture components,
modules, interfaces and data for a system to satisfy specified requirements. One should
see as the applications of the systems theory to product development.
Architecture Flow
The architecture represents mainly flow of requests from users to database through
servers. In this scenario overall system is designed in three tiers separately using 3 layers
called presentation layer, business logic layer and data link layer.
The Unified Modelling Language allows the software engineer to express an analysis
model using the modelling notation that is governed by a set of syntactic semantic and
pragmatic rules.
A UML system is represented using five different views that describe the system from
distinctly different perspective. Each view is defined by a set of diagram, which is as
follows.
i. In this model the data and functionality are arrived from inside the system.
ii. This model view models the static structures.
It represents the dynamic of behavioral as parts of the system, depicting the interactions
of collection between various structural elements described in the user model and
structural model view.
In this the structural and behavioural as parts of the system are represented as they are
to be built.
In this the structural and behavioural aspects of the environment in which the system
is to be implemented are UML is specifically constructed through two different domains
they are:
∙ UML Analysis modelling, this focuses on the user model and structural model views of
∙ UML Analysis modelling, this focuses on the user model and structural model views of
the system.
∙ UML Analysis modelling, this focuses on the user model and structural model views of
the system.
Use case Diagrams represent the functionality of the system from a user’s point of view.
Use cases are used during requirements elicitation and analysis to represent the
functionality of the system. Use cases focus on the behaviour of the system from external
point of view. Actors are external entities that interact with the system. Examples of
actors include users like administrator, bank customer …etc., or another system like
central database.
4.2.1 Use Case Diagram
A use case diagram at its simplest is a representation of a user’s interaction with the
system and depicting the specifications of the use case. A use case diagram can portray
the different types of users of a system and the various ways that they interact with the
system. This type of diagram is typically used in conjunction with the textual use case and
will often be accompanied by other types of diagrams as well.
They provide the simplified and graphical representation of what the system must
actually do. The purpose of use case diagram is to capture the dynamic aspect of a
system. But this definition is too generic to describe the purpose. So we will look into
some specific purpose which will distinguish it from other four diagrams.
A Sequence diagram is an interaction diagram that shows how objects operate with one
another and in what order. It is a construct of a message sequence chart.
A sequence diagram shows object interactions arranged in time sequence. It depicts the
objects and classes involved in the scenario and the sequence of messages exchanged
between the objects needed to carry out the functionality of the scenario. Sequence
diagrams are typically associated with use case realizations in the Logical View of the
system under development. Sequence diagrams are sometimes called event
diagrams or event scenarios.
USER
In this module, the user can open an app or browser and then input an URL if the
opened app is a browser. The user can load web pages and open web links in apps.
RPAD-ML
In this module, the web page/link to be loaded is sent as data to the server. Where
this server having machine learning model at its backend checks whether the requested
URL is phishing or not. And gives back the result to the user.
Android App
It acts as an interface for the user and machine learning server. All the website
URLs/Links to be opened are first scanned by the app and then sent to the machine
learning server. The server then classifies and gives a result. Based on the response
received from the server the app intercepts the web page/app which is loading a possible
phishing site/URL.
4.4 CONCLUSION:
By design content we can describe the required modules and different diagrams. Using
diagrams what are the communications present and we can also understand the project
easily. Modules help as in designing the project to fulfill the user requirements
5. IMPLEMENTATION & RESULTS
5. IMPLEMENTATION & RESULTS
5.1 INTRODUCTION:
Implementation is the carrying out, execution, or practice of a plan, a method, or any
design, idea, model, specifications, standard or policy for doing something. As such,
implementation is the action that must follow any preliminary thinking in order for
something to actually happen.
For an implementation process to be successful, many tasks between
different departments need to be accomplished in sequence. Companies strive to use
proven methodologies and enlist professional help to guide them through the
implementation of a system but the failure of many implementation processes obtain
stems from the lack of accurate planning in the beginning stage of project.
Java Technology
Initially the language was called as “oak” but it was renamed as “Java” in 1995.
The primary motivation of this language was the need for a platform-independent (i.e.,
architecture neutral) language that could be used to create software to be embedded in
various consumer electronic devices.
Java is a programmer’s language.
JDBC is a Java API for executing SQL statements. (As a point of interest, JDBC
is a trademarked name and is not an acronym; nevertheless, JDBC is often thought of as
standing for Java Database Connectivity. It consists of a set of classes and interfaces
written in the Java programming language. JDBC provides a standard API for
tool/database developers and makes it possible to write database applications using a pure
Using JDBC, it is easy to send SQL statements to virtually any relational database. One
can write a single program using the JDBC API, and the program will be able to send
SQL statements to the appropriate database. The combinations of Java and JDBC lets a
programmer write it once and run it anywhere.
Simply put, JDBC makes it possible to do three things:
The JDBC API supports both two-tier and three-tier models for database access.
In the two-tier model, a Java applet or application talks directly to the database. This
requires a JDBC driver that can communicate with the particular database management
system being accessed. A user's SQL statements are delivered to the database, and the
results of those statements are sent back to the user. The database may be located on
another machine to which the user is connected via a network. This is referred to as a
client/server configuration, with the user's machine as the client, and the machine housing
the database as the server. The network can be an Intranet, which, for example, connects
employees within a corporation, or it can be the Internet.
JAVA
Client
Application machine
DBMS-
proprietar
y protocol
JDBC
DBMS
Database server
Fig No.5.1.3 JDBC API
Eclipse IDE
Architecture
The basis for Eclipse is the Rich Client Platform (RCP). The following components
constitute the rich client platform:
OSGI - a standard bundling framework
● Face - viewer classes to bring model view controller programming to SWT, file
Eclipse's widgets are implemented by a widget toolkit for Java called SWT, unlike most
Java applications, which use the Java standard Abstract Window Toolkit (AWT) or
Swing. Eclipse's user interface also leverages an intermediate GUI layer called Face,
which simplifies the construction of applications based on SWT.
The Eclipse SDK includes the Eclipse Java Development Tools, offering an IDE with a
built-in incremental Java compiler and a full model of the Java source files. This allows
for advanced refactoring techniques and code analysis. The IDE also makes use of a
workspace, in this case a set of metadata over a flat file space allowing external file
modifications as long as the corresponding workspace "resource" is refreshed afterwards.
The Visual Editor project allows interfaces to be created interactively, hence allowing
Eclipse to be used as a RAD tool.
Python Technology
Python features a dynamic type system and automatic memory management. It supports
multiple programming paradigms, including object-oriented, imperative, functional and
procedural. It also has a comprehensive standard library.[29]
Python interpreters are available for many operating systems. CPython, the reference
implementation of Python, is open source software[30] and has a community-based
development model, as do nearly all of Python's other implementations. Python and
CPython are managed by the non-profit Python Software Foundation.
<ImageView
android:layout_width="wrap_content"
android:layout_height="300dp"
android:background="@drawable/bg1" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:gravity="center">
<TextView
android:id="@+id/ProtectionStatus"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Hello World!"
android:textAlignment="center"
android:textColor="@color/black"
android:textSize="30dp"
/>
<Button
android:id="@+id/isEnabled"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Enable"
android:background="@drawable/gradient1"
android:textColor="#FFFFFF"
android:layout_marginTop="10dp"
android:onClick="checkEnabled"/>
<!-- <Button
android:id="@+id/buttonCreateWidget"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:text="Create Floating Widget"
android:onClick="requestPermission"/>-->
</LinearLayout>
<!-- <Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Disable"
android:background="@color/colorAccent"/>-->
</LinearLayout>
layout_floating_widget.xml
<RelativeLayout
android:id="@+id/relativeLayoutParent"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
tools:ignore="UselessParent">
<ImageView
android:id="@+id/collapsed_iv"
android:layout_width="70dp"
android:layout_height="70dp"
android:layout_marginTop="8dp"
android:src="@drawable/ic_launcher_background" />
<ImageView
android:id="@+id/buttonClose"
android:layout_width="25dp"
android:layout_height="25dp"
android:layout_marginLeft="50dp"
android:src="@drawable/ic_close_btn" />
</RelativeLayout>
<ImageView
android:id="@+id/buttonSimplifiedCodingExpanded"
android:layout_width="80dp"
android:layout_height="80dp"
android:src="@drawable/ic_launcher_background"
tools:ignore="ContentDescription" />
<LinearLayout
android:id="@+id/buttonSimplifiedCoding"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingLeft="15dp"
android:paddingRight="15dp"
android:paddingTop="8dp"
android:text="This site is Unsafe!"
android:textAlignment="center"
android:textAppearance="@style/Base.TextAppearance.AppCompat.Large"
android:textColor="#ffffff"
android:textStyle="bold" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Probable Phishing Site!"
android:textAlignment="center"
android:textAppearance="@style/Base.TextAppearance.AppCompat.Mediu
m"
android:textColor="#ffffff"
android:textStyle="bold" />
<TextView
android:id="@+id/url"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="http://www.google.com/shdshgkshk/sgjhsgh.php"
android:textAlignment="center"
android:textAppearance="@style/Base.TextAppearance.AppCompat.Small"
android:textColor="#ffffff"
/>
</LinearLayout>
</LinearLayout>
</RelativeLayout>
</FrameLayout>
MainActivity.java
package com.techglows.rpadml;
import android.accessibilityservice.AccessibilityService;
import android.accessibilityservice.AccessibilityServiceInfo;
import android.content.Context;
import android.content.Intent;
import android.content.pm.ServiceInfo;
import android.net.Uri;
import android.os.Build;
import android.provider.Settings;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.accessibility.AccessibilityManager;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;
import java.util.List;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btn = findViewById(R.id.isEnabled);
status = findViewById(R.id.ProtectionStatus);
accessibilityEnabledStatusCheck();
//findViewById(R.id.buttonCreateWidget).setOnClickListener(this);
}else{
//disabled
//show Enable btn
btn.setText("Enable");
btn.setBackground(getResources().getDrawable(R.drawable.gradient1));
status.setText("You're NOT Protected!");
}
}
return false;
}
@Override
public void onRestart()
{
super.onRestart();
// after resuming the activity
accessibilityEnabledStatusCheck();
}
}
Server Side:
Index.py
# -*- coding: utf-8 -*-
#importing libraries
from sklearn.externals import joblib
import inputScript
#input url
print("enter url")
url = input()
# print(prediction)
# x = prediction.tolist()
#print(type(prediction))
print(prediction)
InputScript.py
# -*- coding: utf-8 -*-
import regex
from tldextract import extract
import ssl
import socket
from bs4 import BeautifulSoup
import urllib.request
import whois
import datetime
def url_having_ip(url):
#using regular function
# symbol = regex.findall(r'(http((s)?)://)((((\d)+).)*)((\w)+)(/((\w)+))?',url)
# if(len(symbol)!=0):
# having_ip = 1 #phishing
# else:
# having_ip = -1 #legitimate
#return(having_ip)
return 0
def url_length(url):
length=len(url)
if(length<54):
return -1
elif(54<=length<=75):
return 0
else:
return 1
def url_short(url):
#ongoing
return 0
def having_at_symbol(url):
symbol=regex.findall(r'@',url)
if(len(symbol)==0):
return -1
else:
return 1
def doubleSlash(url):
#ongoing
return 0
def prefix_suffix(url):
subDomain, domain, suffix = extract(url)
if(domain.count('-')):
return 1
else:
return -1
def sub_domain(url):
subDomain, domain, suffix = extract(url)
if(subDomain.count('.')==0):
return -1
elif(subDomain.count('.')==1):
return 0
else:
return 1
def SSLfinal_State(url):
try:
#check wheather contains https
if(regex.search('^https',url)):
usehttps = 1
else:
usehttps = 0
#getting the certificate issuer to later compare with trusted issuer
#getting host name
subDomain, domain, suffix = extract(url)
host_name = domain + "." + suffix
context = ssl.create_default_context()
sct = context.wrap_socket(socket.socket(), server_hostname = host_name)
sct.connect((host_name, 443))
certificate = sct.getpeercert()
issuer = dict(x[0] for x in certificate['issuer'])
certificate_Auth = str(issuer['commonName'])
certificate_Auth = certificate_Auth.split()
if(certificate_Auth[0] == "Network" or certificate_Auth == "Deutsche"):
certificate_Auth = certificate_Auth[0] + " " + certificate_Auth[1]
else:
certificate_Auth = certificate_Auth[0]
trusted_Auth =
['Comodo','Symantec','GoDaddy','GlobalSign','DigiCert','StartCom','Entrust','Verizon','Tr
ustwave','Unizeto','Buypass','QuoVadis','Deutsche Telekom','Network
Solutions','SwissSign','IdenTrust','Secom','TWCA','GeoTrust','Thawte','Doster','VeriSign']
#getting age of certificate
startingDate = str(certificate['notBefore'])
endingDate = str(certificate['notAfter'])
startingYear = int(startingDate.split()[3])
endingYear = int(endingDate.split()[3])
Age_of_certificate = endingYear-startingYear
except Exception as e:
print(e)
return 1
def domain_registration(url):
try:
w = whois.whois(url)
updated = w.updated_date
exp = w.expiration_date
length = (exp[0]-updated[0]).days
if(length<=365):
return 1
else:
return -1
except:
return 0
def favicon(url):
#ongoing
return 0
def port(url):
#ongoing
return 0
def https_token(url):
subDomain, domain, suffix = extract(url)
host =subDomain +'.' + domain + '.' + suffix
if(host.count('https')): #attacker can trick by putting https in domain part
return 1
else:
return -1
def request_url(url):
try:
subDomain, domain, suffix = extract(url)
websiteDomain = domain
opener = urllib.request.urlopen(url).read()
soup = BeautifulSoup(opener, 'lxml')
imgs = soup.findAll('img', src=True)
total = len(imgs)
linked_to_same = 0
avg =0
for image in imgs:
subDomain, domain, suffix = extract(image['src'])
imageDomain = domain
if(websiteDomain==imageDomain or imageDomain==''):
linked_to_same = linked_to_same + 1
vids = soup.findAll('video', src=True)
total = total + len(vids)
if(avg<0.22):
return -1
elif(0.22<=avg<=0.61):
return 0
else:
return 1
except:
return 0
def url_of_anchor(url):
try:
subDomain, domain, suffix = extract(url)
websiteDomain = domain
opener = urllib.request.urlopen(url).read()
soup = BeautifulSoup(opener, 'lxml')
anchors = soup.findAll('a', href=True)
total = len(anchors)
linked_to_same = 0
avg = 0
for anchor in anchors:
subDomain, domain, suffix = extract(anchor['href'])
anchorDomain = domain
if(websiteDomain==anchorDomain or anchorDomain==''):
linked_to_same = linked_to_same + 1
linked_outside = total-linked_to_same
if(total!=0):
avg = linked_outside/total
if(avg<0.31):
return -1
elif(0.31<=avg<=0.67):
return 0
else:
return 1
except:
return 0
def Links_in_tags(url):
try:
opener = urllib.request.urlopen(url).read()
soup = BeautifulSoup(opener, 'lxml')
no_of_meta =0
no_of_link =0
no_of_script =0
anchors=0
avg =0
for meta in soup.find_all('meta'):
no_of_meta = no_of_meta+1
for link in soup.find_all('link'):
no_of_link = no_of_link +1
for script in soup.find_all('script'):
no_of_script = no_of_script+1
for anchor in soup.find_all('a'):
anchors = anchors+1
total = no_of_meta + no_of_link + no_of_script+anchors
tags = no_of_meta + no_of_link + no_of_script
if(total!=0):
avg = tags/total
if(avg<0.25):
return -1
elif(0.25<=avg<=0.81):
return 0
else:
return 1
except:
return 0
def sfh(url):
#ongoing
return 0
def email_submit(url):
try:
opener = urllib.request.urlopen(url).read()
soup = BeautifulSoup(opener, 'lxml')
if(soup.find('mailto:')):
return 1
else:
return -1
except:
return 0
def abnormal_url(url):
#ongoing
return 0
def redirect(url):
#ongoing
return 0
def on_mouseover(url):
#ongoing
return 0
def rightClick(url):
#ongoing
return 0
def popup(url):
#ongoing
return 0
def iframe(url):
#ongoing
return 0
def age_of_domain(url):
try:
w = whois.whois(url)
start_date = w.creation_date
current_date = datetime.datetime.now()
age =(current_date-start_date[0]).days
if(age>=180):
return -1
else:
return 1
except Exception as e:
#print("Here we go")
print(e)
return 0
def dns(url):
#ongoing
return 0
def web_traffic(url):
#ongoing
return 0
def page_rank(url):
#ongoing
return 0
def google_index(url):
#ongoing
return 0
def links_pointing(url):
#ongoing
return 0
def statistical(url):
#ongoing
return 0
def main(url):
check = [[url_having_ip(url),url_length(url),url_short(url),having_at_symbol(url),
doubleSlash(url),prefix_suffix(url),sub_domain(url),SSLfinal_State(url),
domain_registration(url),favicon(url),port(url),https_token(url),request_url(url),
url_of_anchor(url),Links_in_tags(url),sfh(url),email_submit(url),abnormal_url(u
rl),
redirect(url),on_mouseover(url),rightClick(url),popup(url),iframe(url),
age_of_domain(url),dns(url),web_traffic(url),page_rank(url),google_index(url),
links_pointing(url),statistical(url)]]
print(check)
return check
#main("http://wwww.techglows.com")
5.2.1 RESULT ANALYSIS
Screen No.5.2.1.1 Welcome/Main page
screens to enter data and retrieve the information from the application.
Test levels
Unit testing tests the minimal software component and sub-component or modules by the
programmers.
versions, are released to a limited audience outside of the company. The software
is released to groups of people so that further testing can ensure the product has
few faults or bugs. Sometimes, beta versions are made available to the open public
to increase the feedback field to a maximal number of future users.
A test case is a software testing document, which consists of event, action, input,
output, expected result and actual result. Clinically defined (IEEE 829-1998) a test case is
an input and an expected result. This can be as pragmatic as 'for condition x your derived
result is y', whereas other test cases described in more detail the input scenario and what
results might be expected. It can occasionally be a series of steps (but often steps are
contained in a separate test procedure that can be exercised against multiple test cases, as
a matter of economy) but with one expected result or expected outcome. The optional
fields are a test case ID, test step or order of execution number, related requirement(s),
depth, test category, author, and check boxes for whether the test is automatable and has
been automated. A test case should also contain a place for the actual result. These steps
can be stored in a word processor document, spreadsheet, database or other common
repository. In a database system, you may also be able to see past test results and who
generated the results and the system configuration used to generate those results. These
past results would usually be stored in a separate table.
The term test script is the combination of a test case, test procedure and test data. Initially
the term was derived from the byproduct of work created by automated regression test
tools. Today, test scripts can be manual, automated or a combination of both. The most
common term for a collection of test cases is a test suite. The test suite often also contains
more detailed instructions or goals for each collection of test cases. It definitely contains a
section where the tester identifies the system configuration used during testing. A group
of test cases may also contain prerequisite states or steps, and descriptions of the
following tests.
6.2 TEST CASES:
GUIDELINES FOR TEST CASES:
GUI Test Cases
● Look for Default values if at all any (date & Time, if at all any require) Look
Testcase
Test case name Expected value Actual value Result
description
By testing the software we can know the errors in the software and we can modify
the error occurring area. By doing testing process more than once we can know the rarely
occurring errors.
7. CONCLUSION
By using RPADML system, we solve the problem of detecting phishing sites on mobile
devices in real-time. Now, the users are able to identify phishing sites/links without
performing any activity. RPADML system itself shows floating warning sign before
entering such websites.
As future work, we tend to Adding compiled machine learning model in local devices,
Increasing the efficiency of API i.e., Response Time by leveraging Server Resources,
Ability to report false-positive results, Better garbage management in client device.
8. REFERENCES
www.w3schools.com
https://www.tutorialspoint.com
https://www.quora.com
https://en.wikipedia.org/wiki/Unified_Modeling_Language
https://en.wikipedia.org/wiki/Des
MRIET
sMAJOR PROJECT REPORT
Name:_________________________________ Father Name:
_______________________________
Verified By Verified By