SlideShare a Scribd company logo
CNIT 129S: Securing
Web Applications
Ch 3: Web Application Technologies
HTTP
Hypertext Transfer Protocol
(HTTP)
• Connectionless protocol
• Client sends an HTTP request to a Web
server
• Gets an HTTP response
• No session formed, nothing
remembered--no "state"
HTTP Requests
• Verb: GET (also called "method")
• URL: /css?family=Roboto:400,700
• Portion after ? is the query string containing
parameters
• Version: HTTP/1.1
HTTP Requests
• Referer: URL the request originated from
• User-Agent: browser being used
• Host: Hostname of the server
• Essential when multiple hosts run on the same IP
• Required in HTTP/1.1
HTTP Requests
• Cookie: additional parameters the server has issued
to the client
HTTP Response
• First line
• HTTP version
• Status code (200 in this case)
• Textual "reason phrase" describing the response
• Ignored by browser
HTTP Response
• Server: banner of server software
• Not always accurate
• Set-Cookie used to set cookie values
HTTP Response
• Pragma: tells browser not to store
response in its cache
• Expires: set to a date in the past to ensure
that the content is freshly loaded
HTTP Response
• Message Body after header contains data
of type specified in Content-Type header
HTTP Methods: GET
• GET retrieves resources
• Can send parameters in the URL query string
• Users can bookmark the whole URL
• Whole URL may appear in server logs and in
Referer headers
• Also on the browser's screen
• Don't put sensitive information in the query string
HTTP Methods: POST
• POST performs actions
• Request parameters can be in URL
query strong and in the body of the
message
• Parameters in body aren't saved in
bookmarks or most server logs
• A better place for sensitive data
HTTP Methods: POST
• POST requests perform actions, like
buying something
• Clicking the browser's Back button
displays a box like this
Other HTTP Methods
• HEAD returns only the header, not
the body
• Can be used to check if a resource
is available before GETing it
• OPTIONS shows allowed methods
• PUT uploads to server (usually
disabled)
URL (Uniform Resource
Locator)
• If protocol is absent, it defaults to HTTP
• If port is absent, it uses the default port for the
protocol
• 80 for HTTP, 443 for HTTPS, etc.
REST (Representational
State Transfer)
• RESTful URLs put parameters in the URL, not
the query string
• Becomes
HTTP Headers
Cookies
• Cookies are resubmitted in each request to the
same domain
• Online other request parameters
Set-Cookie Header
• Optional attributes
• expires - date when the cookie stops being valid
• If absent, cookie is used only in the current
browser session
• domain - specified domain for which cookie is
valid
• Must be the same or a parent of the domain
from which the cookie is received
• "Same-Origin Policy"
Set-Cookie Header
• Optional attributes
• path - URL path for which the cookie
is valid
• secure - transmit cookie only via
HTTPS
• HttpOnly - Cookie cannot be directly
accessed via client-side JavaScript
Status Codes Groups
Important Status Codes
• 200 OK - request succeeded, response body
contains result
• 301 Moved Permanently - redirects the browser,
client should use new URL in the future
• 302 Found - redirects browser temporarily.
Client should revert to original URL in
subsequent requests
Important Status Codes
• 304 Not Modified - browser should use cached
copy of resource
• 400 Bad Request - invalid HTTP request
• 401 Unauthorized - Server requires HTTP
authentication.
• WWW-Authenticate header specifies the
type(s) of authentication supported
Important Status Codes
• 403 Forbidden - no one is allowed to access
resource, regardless of authentication
• 404 Not Found - requested resource does not
exist
• 500 Internal Server Error - unhanded exception
in an app, such as a PHP error
HTTPS
• HTTP over SSL (Secure Sockets Layer)
• Actually now TLS (Transaction Layer Security)
• All versions of SSL are deprecated
• Protects data with encryption
• Protects data in motion, but not at rest or in
use
HTTP Proxies
• Browser sends requests to proxy server
• Proxy fetches resource and sends it to browser
• Proxies may provide caching, authentication,
and access control
HTTPS and Man-in-the-
Middle (MITM) Attacks
• HTTPS connections use public-key cryptography
and end-to-end encryption
• Only the endpoints can decrypt traffic
• Companies wishing to restrict HTTPS traffic have
two choices
• Perform complete MITM with fake certificates,
or real root certificates from trusted CA's
• Allow encrypted traffic to trusted domains
without being able to inspect it
HTTPS and Proxies
• Browser sends an HTTP request to the proxy
using the CONNECT method and destination
hostname and port number
• If proxy allows the request, it returns 200 status
and keeps the TCP connection open
• Thereafter acts as a pure TCP-level relay to the
destination web server
HTTP Authentication
• Basic: sends username and password in Base64-
encoding
• NTLM: Uses Windows NTLM protocol (MD4
hashing)
• Digest: Challenge-response using MD5 hashing
• These are generally used in intranets, not on the
Internet
• All are very weak cryptographically, and should
be protected with HTTPS
Web Functionality
Server-Side Functionality
• Static content - HTML pages and images that
are the same for all users
• Dynamic content - response created in the fly,
can be customized for each user
• Created by scripts on the server
• Customized based on parameters in the
request
HTTP Parameters
• May be sent in these ways:
Other Inputs
• Server-side application may use any part of the
HTTP request as an input
• Such as User-Agent
• Often used to display smartphone-friendly
versions of pages
Web Application
Technologies
The Java Platform
• Standard for large-scale enterprise applications
• Lends itself to multitiered and load-balanced
architectures
• Well-suited to modular development and code
reuse
• Runs on Windows, Linux, and Solaris
Java Platform Terms
• Enterprise Java Bean (EJB)
• Heavyweight software component to encapsulate
business logic, such as transactional integrity
• Plain Old Java Object (POJO)
• User-defined, lightweight object, distinct from a special
object such as an EJB
• Java Servlet
• Object on an application server that receives HTTP
requests from client and returns HTTP responses
Java Platform Terms
• Java web container
• Platform or engine that provides
a runtime environment for Java-
based web applications
• Ex: Apache Tomcat, BEA
WebLogic, JBoss
Common Components
• Third-party or open-source components that are
often used alongside custom-built code
ASP.NET
• Microsoft's web application framework
• Competitor to Java platform
• Uses .NET Framework, which provides a virtual
machine (the Common Language Runtime) and
a set of powerful APIs (Application Program
Interfaces)
• Applications can be written in any .NET
language, such as C# or VB.NET
Visual Studio
• Powerful development environment for ASP.NET
applications
• Easy for developers to make a web application,
even with limited programming skills
• ASP.NET helps protect against some common
vulnerabilities, such as cross-site scripting,
without requiring any effort from the developer
PHP
• Originally "Personal Home Page", now "PHP
Hypertext Processor"
• Often used on LAMP servers
• Linux, Apache, MySQL, and PHP
• Free and easy to use, but many security
problems
• Both in PHP itself and in custom code using it
Common PHP Applications
Ruby on Rails
• Allows rapid development of applications
• Can autogenerate much of the code if developer
follows the Rails coding style and naming
conventions
• Has vulnerabilities like PHP
SQL (Structured Query
Language)
• Used to access data in relational databases,
such as Oracle, MS-SQL, and MySQL
• Data stored in tables, each containing rows and
columns
• SQL queries are used to read, add, update, or
delete data
• SQL injection vulnerabilities are very severe
(OWASP #1)
XML (eXtensible Markup
Language)
• A specification to encode data in machine-
readable form
• Markup uses tags
Web Services and SOAP
(Simple Object Access Protocol)
• SOAP uses HTTP and XML to exchange data
• Link Ch 3b
SOAP
• If user-supplied data is incorporated into SOAP
requests, it can have code injection
vulnerabilities
• Server usually publishes available services and
parameters using Web Services Description
Language (WDSL)
• soapUI and other tools can generate requests
based on WDSL file
Client-Side Functionality
(in browser)
HTML
Hypertext Markup Language
• HTML used for formatting "markup"
• XHTML is baed on XML and is stricter than old
versions of HTML
Hyperlinks
• Clickable text that go to URLs
• Clicking this link:
• Makes this request
HTML Forms
HTTP Request
multipart/form-data
• Browser generates random boundary text
• Link Ch 3c
HTTP Request
CSS
Cascading Style Sheets
• Specifies format of document elements
• Separates content from presentation
• Has vulnerabilities, and can be used for attacks
Javascript
• Scripts that run in the client's browser
• Used to validate user-entered data before
submitting it to the server
• Dynamically modify UI in response to user
action, such as in drop-down menus
• Using Document Object Model (DOM) to control
the browser's behavior
VBScript
• Microsoft's alternative to JavaScript
• Only supported in Internet Explorer (now
obsolete)
• Edge does not support VBScript
• Links Ch 3d, 3e
Document Object Model
DOM
• Link Ch 3g
Ajax
Asynchronous JavaScript and XML
• Client-side scripts can fetch data without
reloading the entire page
• Allow you to drag Google Maps around
Ajax
Example
• Google Maps API
• Links Ch 3h, 3i
JSON
JavaScript Object Notation
• Client-side JavaScript uses the
XMLHttpRequest API to request data from a
server
• Data is returned in JSON format:
Updating Data with JSON
Same-Origin Policy
• Prevents content from different origins interfering
with each other in a browser
• Content from one website can only read and modify
data from the same website
• Ex: scripts on Facebook can't read or write to
data on your online banking page
• When this process fails, you get Cross-Site
Scripting, Cross-Site Request Forgery, and other
attacks
Same-Origin Policy
HTML5
Web 2.0
Browser Extensions
• Many security problems
• More and more restricted in modern browsers
State and Sessions
• Stateful data required to supplement stateless
HTTP
• This data is held in a server-side structure
called a session
• The session contains data such as items added
to a shopping cart
• Some state data is stored on the client, often
HTTP cookies or hidden form fields
Encoding Schemes
URL Encoding
• URLs may contain only printable ASCII
characters
• 0x20 to 0x7e, inclusive
• To transfer other characters, or problematic
ASCII characters, over HTTP, they must be URL-
encided
Unicode Encoding
• Supports all the world's writing systems
• 16 bits per character, starting with %u
UTF-8 Encoding
• Variable length
• Uses % character before each byte
• Unicode and UTF-8 are often used to bypass filters in attacks
HTML Encoding
• HTML-encoding user data before sending it to
another user is used to prevent Cross-Site
Scripting attacks
Base64 Encoding
• Represents binary data using 64 ASCII
characters
• Six bits at a time
• Used to encode email attachments so they can
be sent via SMTP
• Uses this character set
Hex Encoding
• Hexadecimal numbers corresponding to each
ASCII character
• ABC encodes to 414243
Remoting and Serialization
Frameworks
• Allows client-side code to use server-side APIs
as if they were local

More Related Content

What's hot

Owasp Top 10 A1: Injection
Owasp Top 10 A1: InjectionOwasp Top 10 A1: Injection
Owasp Top 10 A1: Injection
Michael Hendrickx
 
CNIT 129S - Ch 3: Web Application Technologies
CNIT 129S - Ch 3: Web Application TechnologiesCNIT 129S - Ch 3: Web Application Technologies
CNIT 129S - Ch 3: Web Application Technologies
Sam Bowne
 
Ch 12 Attacking Users - XSS
Ch 12 Attacking Users - XSSCh 12 Attacking Users - XSS
Ch 12 Attacking Users - XSS
Sam Bowne
 
Sql injection
Sql injectionSql injection
Sql injection
Zidh
 
Sql Injection and XSS
Sql Injection and XSSSql Injection and XSS
Sql Injection and XSS
Mike Crabb
 
Cryptography for Java Developers: Nakov jProfessionals (Jan 2019)
Cryptography for Java Developers: Nakov jProfessionals (Jan 2019)Cryptography for Java Developers: Nakov jProfessionals (Jan 2019)
Cryptography for Java Developers: Nakov jProfessionals (Jan 2019)
Svetlin Nakov
 
I hunt sys admins 2.0
I hunt sys admins 2.0I hunt sys admins 2.0
I hunt sys admins 2.0
Will Schroeder
 
CNIT 129S: 10: Attacking Back-End Components
CNIT 129S: 10: Attacking Back-End ComponentsCNIT 129S: 10: Attacking Back-End Components
CNIT 129S: 10: Attacking Back-End Components
Sam Bowne
 
Ch 1: Web Application (In)security & Ch 2: Core Defense Mechanisms
Ch 1: Web Application (In)security & Ch 2: Core Defense Mechanisms Ch 1: Web Application (In)security & Ch 2: Core Defense Mechanisms
Ch 1: Web Application (In)security & Ch 2: Core Defense Mechanisms
Sam Bowne
 
Sql injection - security testing
Sql injection - security testingSql injection - security testing
Sql injection - security testing
Napendra Singh
 
CNIT 126: 10: Kernel Debugging with WinDbg
CNIT 126: 10: Kernel Debugging with WinDbgCNIT 126: 10: Kernel Debugging with WinDbg
CNIT 126: 10: Kernel Debugging with WinDbg
Sam Bowne
 
Identity Theft: How to Avoid It
Identity Theft: How to Avoid ItIdentity Theft: How to Avoid It
Identity Theft: How to Avoid It
hewie
 
Security in NodeJS applications
Security in NodeJS applicationsSecurity in NodeJS applications
Security in NodeJS applications
Daniel Garcia (a.k.a cr0hn)
 
Understanding Cross-site Request Forgery
Understanding Cross-site Request ForgeryUnderstanding Cross-site Request Forgery
Understanding Cross-site Request Forgery
Daniel Miessler
 
Malware Analysis Made Simple
Malware Analysis Made SimpleMalware Analysis Made Simple
Malware Analysis Made Simple
Paul Melson
 
Phishing: Swiming with the sharks
Phishing: Swiming with the sharksPhishing: Swiming with the sharks
Phishing: Swiming with the sharks
Nalneesh Gaur
 
CSRF Basics
CSRF BasicsCSRF Basics
Ch 10: Attacking Back-End Components
Ch 10: Attacking Back-End ComponentsCh 10: Attacking Back-End Components
Ch 10: Attacking Back-End Components
Sam Bowne
 
Cross Site Scripting Defense Presentation
Cross Site Scripting Defense Presentation Cross Site Scripting Defense Presentation
Cross Site Scripting Defense Presentation
Ikhade Maro Igbape
 
Waf bypassing Techniques
Waf bypassing TechniquesWaf bypassing Techniques
Waf bypassing Techniques
Avinash Thapa
 

What's hot (20)

Owasp Top 10 A1: Injection
Owasp Top 10 A1: InjectionOwasp Top 10 A1: Injection
Owasp Top 10 A1: Injection
 
CNIT 129S - Ch 3: Web Application Technologies
CNIT 129S - Ch 3: Web Application TechnologiesCNIT 129S - Ch 3: Web Application Technologies
CNIT 129S - Ch 3: Web Application Technologies
 
Ch 12 Attacking Users - XSS
Ch 12 Attacking Users - XSSCh 12 Attacking Users - XSS
Ch 12 Attacking Users - XSS
 
Sql injection
Sql injectionSql injection
Sql injection
 
Sql Injection and XSS
Sql Injection and XSSSql Injection and XSS
Sql Injection and XSS
 
Cryptography for Java Developers: Nakov jProfessionals (Jan 2019)
Cryptography for Java Developers: Nakov jProfessionals (Jan 2019)Cryptography for Java Developers: Nakov jProfessionals (Jan 2019)
Cryptography for Java Developers: Nakov jProfessionals (Jan 2019)
 
I hunt sys admins 2.0
I hunt sys admins 2.0I hunt sys admins 2.0
I hunt sys admins 2.0
 
CNIT 129S: 10: Attacking Back-End Components
CNIT 129S: 10: Attacking Back-End ComponentsCNIT 129S: 10: Attacking Back-End Components
CNIT 129S: 10: Attacking Back-End Components
 
Ch 1: Web Application (In)security & Ch 2: Core Defense Mechanisms
Ch 1: Web Application (In)security & Ch 2: Core Defense Mechanisms Ch 1: Web Application (In)security & Ch 2: Core Defense Mechanisms
Ch 1: Web Application (In)security & Ch 2: Core Defense Mechanisms
 
Sql injection - security testing
Sql injection - security testingSql injection - security testing
Sql injection - security testing
 
CNIT 126: 10: Kernel Debugging with WinDbg
CNIT 126: 10: Kernel Debugging with WinDbgCNIT 126: 10: Kernel Debugging with WinDbg
CNIT 126: 10: Kernel Debugging with WinDbg
 
Identity Theft: How to Avoid It
Identity Theft: How to Avoid ItIdentity Theft: How to Avoid It
Identity Theft: How to Avoid It
 
Security in NodeJS applications
Security in NodeJS applicationsSecurity in NodeJS applications
Security in NodeJS applications
 
Understanding Cross-site Request Forgery
Understanding Cross-site Request ForgeryUnderstanding Cross-site Request Forgery
Understanding Cross-site Request Forgery
 
Malware Analysis Made Simple
Malware Analysis Made SimpleMalware Analysis Made Simple
Malware Analysis Made Simple
 
Phishing: Swiming with the sharks
Phishing: Swiming with the sharksPhishing: Swiming with the sharks
Phishing: Swiming with the sharks
 
CSRF Basics
CSRF BasicsCSRF Basics
CSRF Basics
 
Ch 10: Attacking Back-End Components
Ch 10: Attacking Back-End ComponentsCh 10: Attacking Back-End Components
Ch 10: Attacking Back-End Components
 
Cross Site Scripting Defense Presentation
Cross Site Scripting Defense Presentation Cross Site Scripting Defense Presentation
Cross Site Scripting Defense Presentation
 
Waf bypassing Techniques
Waf bypassing TechniquesWaf bypassing Techniques
Waf bypassing Techniques
 

Viewers also liked

CNIT 121: 4 Getting the Investigation Started on the Right Foot & 5 Initial D...
CNIT 121: 4 Getting the Investigation Started on the Right Foot & 5 Initial D...CNIT 121: 4 Getting the Investigation Started on the Right Foot & 5 Initial D...
CNIT 121: 4 Getting the Investigation Started on the Right Foot & 5 Initial D...
Sam Bowne
 
CNIT 121: 2 IR Management Handbook
CNIT 121: 2 IR Management HandbookCNIT 121: 2 IR Management Handbook
CNIT 121: 2 IR Management Handbook
Sam Bowne
 
CNIT 121: 12 Investigating Windows Systems (Part 3)
CNIT 121: 12 Investigating Windows Systems (Part 3)CNIT 121: 12 Investigating Windows Systems (Part 3)
CNIT 121: 12 Investigating Windows Systems (Part 3)
Sam Bowne
 
CNIT 129S: 9: Attacking Data Stores (Part 1 of 2)
CNIT 129S: 9: Attacking Data Stores (Part 1 of 2)CNIT 129S: 9: Attacking Data Stores (Part 1 of 2)
CNIT 129S: 9: Attacking Data Stores (Part 1 of 2)
Sam Bowne
 
CNIT 121: 11 Analysis Methodology
CNIT 121: 11 Analysis MethodologyCNIT 121: 11 Analysis Methodology
CNIT 121: 11 Analysis Methodology
Sam Bowne
 
CNIT 129S: Ch 6: Attacking Authentication
CNIT 129S: Ch 6: Attacking AuthenticationCNIT 129S: Ch 6: Attacking Authentication
CNIT 129S: Ch 6: Attacking Authentication
Sam Bowne
 
CNIT 129S: 8: Attacking Access Controls
CNIT 129S: 8: Attacking Access ControlsCNIT 129S: 8: Attacking Access Controls
CNIT 129S: 8: Attacking Access Controls
Sam Bowne
 
CNIT 40: 6: DNSSEC and beyond
CNIT 40: 6: DNSSEC and beyondCNIT 40: 6: DNSSEC and beyond
CNIT 40: 6: DNSSEC and beyond
Sam Bowne
 
CNIT 121: 12 Investigating Windows Systems (Part 2 of 3)
CNIT 121: 12 Investigating Windows Systems (Part 2 of 3)CNIT 121: 12 Investigating Windows Systems (Part 2 of 3)
CNIT 121: 12 Investigating Windows Systems (Part 2 of 3)
Sam Bowne
 
CNIT 129S: Ch 5: Bypassing Client-Side Controls
CNIT 129S: Ch 5: Bypassing Client-Side ControlsCNIT 129S: Ch 5: Bypassing Client-Side Controls
CNIT 129S: Ch 5: Bypassing Client-Side Controls
Sam Bowne
 
CNIT 121: Computer Forensics Ch 1
CNIT 121: Computer Forensics Ch 1CNIT 121: Computer Forensics Ch 1
CNIT 121: Computer Forensics Ch 1
Sam Bowne
 
CNIT 121: 3 Pre-Incident Preparation
CNIT 121: 3 Pre-Incident PreparationCNIT 121: 3 Pre-Incident Preparation
CNIT 121: 3 Pre-Incident Preparation
Sam Bowne
 
CNIT 129S: 13: Attacking Users: Other Techniques (Part 1 of 2)
CNIT 129S: 13: Attacking Users: Other Techniques (Part 1 of 2)CNIT 129S: 13: Attacking Users: Other Techniques (Part 1 of 2)
CNIT 129S: 13: Attacking Users: Other Techniques (Part 1 of 2)
Sam Bowne
 
CNIT 121: 6 Discovering the Scope of the Incident & 7 Live Data Collection
CNIT 121: 6 Discovering the Scope of the Incident & 7 Live Data CollectionCNIT 121: 6 Discovering the Scope of the Incident & 7 Live Data Collection
CNIT 121: 6 Discovering the Scope of the Incident & 7 Live Data Collection
Sam Bowne
 
CNIT 128 Ch 4: Android
CNIT 128 Ch 4: AndroidCNIT 128 Ch 4: Android
CNIT 128 Ch 4: Android
Sam Bowne
 
CNIT 40: 3: DNS vulnerabilities
CNIT 40: 3: DNS vulnerabilitiesCNIT 40: 3: DNS vulnerabilities
CNIT 40: 3: DNS vulnerabilities
Sam Bowne
 
Is Your Mobile App Secure?
Is Your Mobile App Secure?Is Your Mobile App Secure?
Is Your Mobile App Secure?
Sam Bowne
 
CNIT 127 Ch Ch 1: Before you Begin
CNIT 127 Ch Ch 1: Before you BeginCNIT 127 Ch Ch 1: Before you Begin
CNIT 127 Ch Ch 1: Before you Begin
Sam Bowne
 
CNIT 129S: Ch 7: Attacking Session Management
CNIT 129S: Ch 7: Attacking Session Management CNIT 129S: Ch 7: Attacking Session Management
CNIT 129S: Ch 7: Attacking Session Management
Sam Bowne
 
CNIT 128 Ch 3: iOS
CNIT 128 Ch 3: iOSCNIT 128 Ch 3: iOS
CNIT 128 Ch 3: iOS
Sam Bowne
 

Viewers also liked (20)

CNIT 121: 4 Getting the Investigation Started on the Right Foot & 5 Initial D...
CNIT 121: 4 Getting the Investigation Started on the Right Foot & 5 Initial D...CNIT 121: 4 Getting the Investigation Started on the Right Foot & 5 Initial D...
CNIT 121: 4 Getting the Investigation Started on the Right Foot & 5 Initial D...
 
CNIT 121: 2 IR Management Handbook
CNIT 121: 2 IR Management HandbookCNIT 121: 2 IR Management Handbook
CNIT 121: 2 IR Management Handbook
 
CNIT 121: 12 Investigating Windows Systems (Part 3)
CNIT 121: 12 Investigating Windows Systems (Part 3)CNIT 121: 12 Investigating Windows Systems (Part 3)
CNIT 121: 12 Investigating Windows Systems (Part 3)
 
CNIT 129S: 9: Attacking Data Stores (Part 1 of 2)
CNIT 129S: 9: Attacking Data Stores (Part 1 of 2)CNIT 129S: 9: Attacking Data Stores (Part 1 of 2)
CNIT 129S: 9: Attacking Data Stores (Part 1 of 2)
 
CNIT 121: 11 Analysis Methodology
CNIT 121: 11 Analysis MethodologyCNIT 121: 11 Analysis Methodology
CNIT 121: 11 Analysis Methodology
 
CNIT 129S: Ch 6: Attacking Authentication
CNIT 129S: Ch 6: Attacking AuthenticationCNIT 129S: Ch 6: Attacking Authentication
CNIT 129S: Ch 6: Attacking Authentication
 
CNIT 129S: 8: Attacking Access Controls
CNIT 129S: 8: Attacking Access ControlsCNIT 129S: 8: Attacking Access Controls
CNIT 129S: 8: Attacking Access Controls
 
CNIT 40: 6: DNSSEC and beyond
CNIT 40: 6: DNSSEC and beyondCNIT 40: 6: DNSSEC and beyond
CNIT 40: 6: DNSSEC and beyond
 
CNIT 121: 12 Investigating Windows Systems (Part 2 of 3)
CNIT 121: 12 Investigating Windows Systems (Part 2 of 3)CNIT 121: 12 Investigating Windows Systems (Part 2 of 3)
CNIT 121: 12 Investigating Windows Systems (Part 2 of 3)
 
CNIT 129S: Ch 5: Bypassing Client-Side Controls
CNIT 129S: Ch 5: Bypassing Client-Side ControlsCNIT 129S: Ch 5: Bypassing Client-Side Controls
CNIT 129S: Ch 5: Bypassing Client-Side Controls
 
CNIT 121: Computer Forensics Ch 1
CNIT 121: Computer Forensics Ch 1CNIT 121: Computer Forensics Ch 1
CNIT 121: Computer Forensics Ch 1
 
CNIT 121: 3 Pre-Incident Preparation
CNIT 121: 3 Pre-Incident PreparationCNIT 121: 3 Pre-Incident Preparation
CNIT 121: 3 Pre-Incident Preparation
 
CNIT 129S: 13: Attacking Users: Other Techniques (Part 1 of 2)
CNIT 129S: 13: Attacking Users: Other Techniques (Part 1 of 2)CNIT 129S: 13: Attacking Users: Other Techniques (Part 1 of 2)
CNIT 129S: 13: Attacking Users: Other Techniques (Part 1 of 2)
 
CNIT 121: 6 Discovering the Scope of the Incident & 7 Live Data Collection
CNIT 121: 6 Discovering the Scope of the Incident & 7 Live Data CollectionCNIT 121: 6 Discovering the Scope of the Incident & 7 Live Data Collection
CNIT 121: 6 Discovering the Scope of the Incident & 7 Live Data Collection
 
CNIT 128 Ch 4: Android
CNIT 128 Ch 4: AndroidCNIT 128 Ch 4: Android
CNIT 128 Ch 4: Android
 
CNIT 40: 3: DNS vulnerabilities
CNIT 40: 3: DNS vulnerabilitiesCNIT 40: 3: DNS vulnerabilities
CNIT 40: 3: DNS vulnerabilities
 
Is Your Mobile App Secure?
Is Your Mobile App Secure?Is Your Mobile App Secure?
Is Your Mobile App Secure?
 
CNIT 127 Ch Ch 1: Before you Begin
CNIT 127 Ch Ch 1: Before you BeginCNIT 127 Ch Ch 1: Before you Begin
CNIT 127 Ch Ch 1: Before you Begin
 
CNIT 129S: Ch 7: Attacking Session Management
CNIT 129S: Ch 7: Attacking Session Management CNIT 129S: Ch 7: Attacking Session Management
CNIT 129S: Ch 7: Attacking Session Management
 
CNIT 128 Ch 3: iOS
CNIT 128 Ch 3: iOSCNIT 128 Ch 3: iOS
CNIT 128 Ch 3: iOS
 

Similar to CNIT 129S: Ch 3: Web Application Technologies

Ch 3: Web Application Technologies
Ch 3: Web Application TechnologiesCh 3: Web Application Technologies
Ch 3: Web Application Technologies
Sam Bowne
 
Evolution Of The Web Platform & Browser Security
Evolution Of The Web Platform & Browser SecurityEvolution Of The Web Platform & Browser Security
Evolution Of The Web Platform & Browser Security
Sanjeev Verma, PhD
 
Best Practices in Web Service Design
Best Practices in Web Service DesignBest Practices in Web Service Design
Best Practices in Web Service DesignLorna Mitchell
 
Unit v
Unit v Unit v
Unit v
APARNA P
 
Web technology Unit I Part C
Web technology Unit I  Part CWeb technology Unit I  Part C
Web technology Unit I Part C
SSN College of Engineering, Kalavakkam
 
REST API Recommendations
REST API RecommendationsREST API Recommendations
REST API RecommendationsJeelani Shaik
 
www | HTTP | HTML - Tutorial
www | HTTP | HTML - Tutorialwww | HTTP | HTML - Tutorial
www | HTTP | HTML - Tutorial
MSA Technosoft
 
Browser
BrowserBrowser
Browser
Shweta Oza
 
Servlet.ppt
Servlet.pptServlet.ppt
Servlet.ppt
MouDhara1
 
Servlet.ppt
Servlet.pptServlet.ppt
Servlet.ppt
kstalin2
 
Servlet1.ppt
Servlet1.pptServlet1.ppt
Servlet1.ppt
KhushalChoudhary14
 
web-servers3952 (1)qwjelkjqwlkjkqlwe.ppt
web-servers3952 (1)qwjelkjqwlkjkqlwe.pptweb-servers3952 (1)qwjelkjqwlkjkqlwe.ppt
web-servers3952 (1)qwjelkjqwlkjkqlwe.ppt
20521742
 
Ch-1_.ppt
Ch-1_.pptCh-1_.ppt
Ch-1_.ppt
berihunmolla2
 
05.m3 cms list-ofwebserver
05.m3 cms list-ofwebserver05.m3 cms list-ofwebserver
05.m3 cms list-ofwebservertarensi
 
Boost the Performance of SharePoint Today!
Boost the Performance of SharePoint Today!Boost the Performance of SharePoint Today!
Boost the Performance of SharePoint Today!
Brian Culver
 
Rest APIs Training
Rest APIs TrainingRest APIs Training
Rest APIs Training
Shekhar Kumar
 
DEF CON 24 - workshop - Craig Young - brainwashing embedded systems
DEF CON 24 - workshop - Craig Young - brainwashing embedded systemsDEF CON 24 - workshop - Craig Young - brainwashing embedded systems
DEF CON 24 - workshop - Craig Young - brainwashing embedded systems
Felipe Prado
 
Web server
Web serverWeb server
Web server
debasish duarah
 
JavaScript Service Worker Design Patterns for Better User Experience
JavaScript Service Worker Design Patterns for Better User ExperienceJavaScript Service Worker Design Patterns for Better User Experience
JavaScript Service Worker Design Patterns for Better User Experience
reeder29
 

Similar to CNIT 129S: Ch 3: Web Application Technologies (20)

Ch 3: Web Application Technologies
Ch 3: Web Application TechnologiesCh 3: Web Application Technologies
Ch 3: Web Application Technologies
 
Basics of the Web Platform
Basics of the Web PlatformBasics of the Web Platform
Basics of the Web Platform
 
Evolution Of The Web Platform & Browser Security
Evolution Of The Web Platform & Browser SecurityEvolution Of The Web Platform & Browser Security
Evolution Of The Web Platform & Browser Security
 
Best Practices in Web Service Design
Best Practices in Web Service DesignBest Practices in Web Service Design
Best Practices in Web Service Design
 
Unit v
Unit v Unit v
Unit v
 
Web technology Unit I Part C
Web technology Unit I  Part CWeb technology Unit I  Part C
Web technology Unit I Part C
 
REST API Recommendations
REST API RecommendationsREST API Recommendations
REST API Recommendations
 
www | HTTP | HTML - Tutorial
www | HTTP | HTML - Tutorialwww | HTTP | HTML - Tutorial
www | HTTP | HTML - Tutorial
 
Browser
BrowserBrowser
Browser
 
Servlet.ppt
Servlet.pptServlet.ppt
Servlet.ppt
 
Servlet.ppt
Servlet.pptServlet.ppt
Servlet.ppt
 
Servlet1.ppt
Servlet1.pptServlet1.ppt
Servlet1.ppt
 
web-servers3952 (1)qwjelkjqwlkjkqlwe.ppt
web-servers3952 (1)qwjelkjqwlkjkqlwe.pptweb-servers3952 (1)qwjelkjqwlkjkqlwe.ppt
web-servers3952 (1)qwjelkjqwlkjkqlwe.ppt
 
Ch-1_.ppt
Ch-1_.pptCh-1_.ppt
Ch-1_.ppt
 
05.m3 cms list-ofwebserver
05.m3 cms list-ofwebserver05.m3 cms list-ofwebserver
05.m3 cms list-ofwebserver
 
Boost the Performance of SharePoint Today!
Boost the Performance of SharePoint Today!Boost the Performance of SharePoint Today!
Boost the Performance of SharePoint Today!
 
Rest APIs Training
Rest APIs TrainingRest APIs Training
Rest APIs Training
 
DEF CON 24 - workshop - Craig Young - brainwashing embedded systems
DEF CON 24 - workshop - Craig Young - brainwashing embedded systemsDEF CON 24 - workshop - Craig Young - brainwashing embedded systems
DEF CON 24 - workshop - Craig Young - brainwashing embedded systems
 
Web server
Web serverWeb server
Web server
 
JavaScript Service Worker Design Patterns for Better User Experience
JavaScript Service Worker Design Patterns for Better User ExperienceJavaScript Service Worker Design Patterns for Better User Experience
JavaScript Service Worker Design Patterns for Better User Experience
 

More from Sam Bowne

Cyberwar
CyberwarCyberwar
Cyberwar
Sam Bowne
 
3: DNS vulnerabilities
3: DNS vulnerabilities 3: DNS vulnerabilities
3: DNS vulnerabilities
Sam Bowne
 
8. Software Development Security
8. Software Development Security8. Software Development Security
8. Software Development Security
Sam Bowne
 
3. Attacking iOS Applications (Part 2)
 3. Attacking iOS Applications (Part 2) 3. Attacking iOS Applications (Part 2)
3. Attacking iOS Applications (Part 2)
Sam Bowne
 
12 Elliptic Curves
12 Elliptic Curves12 Elliptic Curves
12 Elliptic Curves
Sam Bowne
 
11. Diffie-Hellman
11. Diffie-Hellman11. Diffie-Hellman
11. Diffie-Hellman
Sam Bowne
 
2a Analyzing iOS Apps Part 1
2a Analyzing iOS Apps Part 12a Analyzing iOS Apps Part 1
2a Analyzing iOS Apps Part 1
Sam Bowne
 
9 Writing Secure Android Applications
9 Writing Secure Android Applications9 Writing Secure Android Applications
9 Writing Secure Android Applications
Sam Bowne
 
12 Investigating Windows Systems (Part 2 of 3)
12 Investigating Windows Systems (Part 2 of 3)12 Investigating Windows Systems (Part 2 of 3)
12 Investigating Windows Systems (Part 2 of 3)
Sam Bowne
 
10 RSA
10 RSA10 RSA
10 RSA
Sam Bowne
 
12 Investigating Windows Systems (Part 1 of 3
12 Investigating Windows Systems (Part 1 of 312 Investigating Windows Systems (Part 1 of 3
12 Investigating Windows Systems (Part 1 of 3
Sam Bowne
 
9. Hard Problems
9. Hard Problems9. Hard Problems
9. Hard Problems
Sam Bowne
 
8 Android Implementation Issues (Part 1)
8 Android Implementation Issues (Part 1)8 Android Implementation Issues (Part 1)
8 Android Implementation Issues (Part 1)
Sam Bowne
 
11 Analysis Methodology
11 Analysis Methodology11 Analysis Methodology
11 Analysis Methodology
Sam Bowne
 
8. Authenticated Encryption
8. Authenticated Encryption8. Authenticated Encryption
8. Authenticated Encryption
Sam Bowne
 
7. Attacking Android Applications (Part 2)
7. Attacking Android Applications (Part 2)7. Attacking Android Applications (Part 2)
7. Attacking Android Applications (Part 2)
Sam Bowne
 
7. Attacking Android Applications (Part 1)
7. Attacking Android Applications (Part 1)7. Attacking Android Applications (Part 1)
7. Attacking Android Applications (Part 1)
Sam Bowne
 
5. Stream Ciphers
5. Stream Ciphers5. Stream Ciphers
5. Stream Ciphers
Sam Bowne
 
6 Scope & 7 Live Data Collection
6 Scope & 7 Live Data Collection6 Scope & 7 Live Data Collection
6 Scope & 7 Live Data Collection
Sam Bowne
 
4. Block Ciphers
4. Block Ciphers 4. Block Ciphers
4. Block Ciphers
Sam Bowne
 

More from Sam Bowne (20)

Cyberwar
CyberwarCyberwar
Cyberwar
 
3: DNS vulnerabilities
3: DNS vulnerabilities 3: DNS vulnerabilities
3: DNS vulnerabilities
 
8. Software Development Security
8. Software Development Security8. Software Development Security
8. Software Development Security
 
3. Attacking iOS Applications (Part 2)
 3. Attacking iOS Applications (Part 2) 3. Attacking iOS Applications (Part 2)
3. Attacking iOS Applications (Part 2)
 
12 Elliptic Curves
12 Elliptic Curves12 Elliptic Curves
12 Elliptic Curves
 
11. Diffie-Hellman
11. Diffie-Hellman11. Diffie-Hellman
11. Diffie-Hellman
 
2a Analyzing iOS Apps Part 1
2a Analyzing iOS Apps Part 12a Analyzing iOS Apps Part 1
2a Analyzing iOS Apps Part 1
 
9 Writing Secure Android Applications
9 Writing Secure Android Applications9 Writing Secure Android Applications
9 Writing Secure Android Applications
 
12 Investigating Windows Systems (Part 2 of 3)
12 Investigating Windows Systems (Part 2 of 3)12 Investigating Windows Systems (Part 2 of 3)
12 Investigating Windows Systems (Part 2 of 3)
 
10 RSA
10 RSA10 RSA
10 RSA
 
12 Investigating Windows Systems (Part 1 of 3
12 Investigating Windows Systems (Part 1 of 312 Investigating Windows Systems (Part 1 of 3
12 Investigating Windows Systems (Part 1 of 3
 
9. Hard Problems
9. Hard Problems9. Hard Problems
9. Hard Problems
 
8 Android Implementation Issues (Part 1)
8 Android Implementation Issues (Part 1)8 Android Implementation Issues (Part 1)
8 Android Implementation Issues (Part 1)
 
11 Analysis Methodology
11 Analysis Methodology11 Analysis Methodology
11 Analysis Methodology
 
8. Authenticated Encryption
8. Authenticated Encryption8. Authenticated Encryption
8. Authenticated Encryption
 
7. Attacking Android Applications (Part 2)
7. Attacking Android Applications (Part 2)7. Attacking Android Applications (Part 2)
7. Attacking Android Applications (Part 2)
 
7. Attacking Android Applications (Part 1)
7. Attacking Android Applications (Part 1)7. Attacking Android Applications (Part 1)
7. Attacking Android Applications (Part 1)
 
5. Stream Ciphers
5. Stream Ciphers5. Stream Ciphers
5. Stream Ciphers
 
6 Scope & 7 Live Data Collection
6 Scope & 7 Live Data Collection6 Scope & 7 Live Data Collection
6 Scope & 7 Live Data Collection
 
4. Block Ciphers
4. Block Ciphers 4. Block Ciphers
4. Block Ciphers
 

Recently uploaded

Chapter 3 - Islamic Banking Products and Services.pptx
Chapter 3 - Islamic Banking Products and Services.pptxChapter 3 - Islamic Banking Products and Services.pptx
Chapter 3 - Islamic Banking Products and Services.pptx
Mohd Adib Abd Muin, Senior Lecturer at Universiti Utara Malaysia
 
Biological Screening of Herbal Drugs in detailed.
Biological Screening of Herbal Drugs in detailed.Biological Screening of Herbal Drugs in detailed.
Biological Screening of Herbal Drugs in detailed.
Ashokrao Mane college of Pharmacy Peth-Vadgaon
 
Operation Blue Star - Saka Neela Tara
Operation Blue Star   -  Saka Neela TaraOperation Blue Star   -  Saka Neela Tara
Operation Blue Star - Saka Neela Tara
Balvir Singh
 
Supporting (UKRI) OA monographs at Salford.pptx
Supporting (UKRI) OA monographs at Salford.pptxSupporting (UKRI) OA monographs at Salford.pptx
Supporting (UKRI) OA monographs at Salford.pptx
Jisc
 
The French Revolution Class 9 Study Material pdf free download
The French Revolution Class 9 Study Material pdf free downloadThe French Revolution Class 9 Study Material pdf free download
The French Revolution Class 9 Study Material pdf free download
Vivekanand Anglo Vedic Academy
 
Unit 8 - Information and Communication Technology (Paper I).pdf
Unit 8 - Information and Communication Technology (Paper I).pdfUnit 8 - Information and Communication Technology (Paper I).pdf
Unit 8 - Information and Communication Technology (Paper I).pdf
Thiyagu K
 
Lapbook sobre os Regimes Totalitários.pdf
Lapbook sobre os Regimes Totalitários.pdfLapbook sobre os Regimes Totalitários.pdf
Lapbook sobre os Regimes Totalitários.pdf
Jean Carlos Nunes Paixão
 
The basics of sentences session 5pptx.pptx
The basics of sentences session 5pptx.pptxThe basics of sentences session 5pptx.pptx
The basics of sentences session 5pptx.pptx
heathfieldcps1
 
How libraries can support authors with open access requirements for UKRI fund...
How libraries can support authors with open access requirements for UKRI fund...How libraries can support authors with open access requirements for UKRI fund...
How libraries can support authors with open access requirements for UKRI fund...
Jisc
 
Welcome to TechSoup New Member Orientation and Q&A (May 2024).pdf
Welcome to TechSoup   New Member Orientation and Q&A (May 2024).pdfWelcome to TechSoup   New Member Orientation and Q&A (May 2024).pdf
Welcome to TechSoup New Member Orientation and Q&A (May 2024).pdf
TechSoup
 
2024.06.01 Introducing a competency framework for languag learning materials ...
2024.06.01 Introducing a competency framework for languag learning materials ...2024.06.01 Introducing a competency framework for languag learning materials ...
2024.06.01 Introducing a competency framework for languag learning materials ...
Sandy Millin
 
Model Attribute Check Company Auto Property
Model Attribute  Check Company Auto PropertyModel Attribute  Check Company Auto Property
Model Attribute Check Company Auto Property
Celine George
 
Home assignment II on Spectroscopy 2024 Answers.pdf
Home assignment II on Spectroscopy 2024 Answers.pdfHome assignment II on Spectroscopy 2024 Answers.pdf
Home assignment II on Spectroscopy 2024 Answers.pdf
Tamralipta Mahavidyalaya
 
Sha'Carri Richardson Presentation 202345
Sha'Carri Richardson Presentation 202345Sha'Carri Richardson Presentation 202345
Sha'Carri Richardson Presentation 202345
beazzy04
 
The Challenger.pdf DNHS Official Publication
The Challenger.pdf DNHS Official PublicationThe Challenger.pdf DNHS Official Publication
The Challenger.pdf DNHS Official Publication
Delapenabediema
 
The geography of Taylor Swift - some ideas
The geography of Taylor Swift - some ideasThe geography of Taylor Swift - some ideas
The geography of Taylor Swift - some ideas
GeoBlogs
 
Thesis Statement for students diagnonsed withADHD.ppt
Thesis Statement for students diagnonsed withADHD.pptThesis Statement for students diagnonsed withADHD.ppt
Thesis Statement for students diagnonsed withADHD.ppt
EverAndrsGuerraGuerr
 
Language Across the Curriculm LAC B.Ed.
Language Across the  Curriculm LAC B.Ed.Language Across the  Curriculm LAC B.Ed.
Language Across the Curriculm LAC B.Ed.
Atul Kumar Singh
 
June 3, 2024 Anti-Semitism Letter Sent to MIT President Kornbluth and MIT Cor...
June 3, 2024 Anti-Semitism Letter Sent to MIT President Kornbluth and MIT Cor...June 3, 2024 Anti-Semitism Letter Sent to MIT President Kornbluth and MIT Cor...
June 3, 2024 Anti-Semitism Letter Sent to MIT President Kornbluth and MIT Cor...
Levi Shapiro
 
Palestine last event orientationfvgnh .pptx
Palestine last event orientationfvgnh .pptxPalestine last event orientationfvgnh .pptx
Palestine last event orientationfvgnh .pptx
RaedMohamed3
 

Recently uploaded (20)

Chapter 3 - Islamic Banking Products and Services.pptx
Chapter 3 - Islamic Banking Products and Services.pptxChapter 3 - Islamic Banking Products and Services.pptx
Chapter 3 - Islamic Banking Products and Services.pptx
 
Biological Screening of Herbal Drugs in detailed.
Biological Screening of Herbal Drugs in detailed.Biological Screening of Herbal Drugs in detailed.
Biological Screening of Herbal Drugs in detailed.
 
Operation Blue Star - Saka Neela Tara
Operation Blue Star   -  Saka Neela TaraOperation Blue Star   -  Saka Neela Tara
Operation Blue Star - Saka Neela Tara
 
Supporting (UKRI) OA monographs at Salford.pptx
Supporting (UKRI) OA monographs at Salford.pptxSupporting (UKRI) OA monographs at Salford.pptx
Supporting (UKRI) OA monographs at Salford.pptx
 
The French Revolution Class 9 Study Material pdf free download
The French Revolution Class 9 Study Material pdf free downloadThe French Revolution Class 9 Study Material pdf free download
The French Revolution Class 9 Study Material pdf free download
 
Unit 8 - Information and Communication Technology (Paper I).pdf
Unit 8 - Information and Communication Technology (Paper I).pdfUnit 8 - Information and Communication Technology (Paper I).pdf
Unit 8 - Information and Communication Technology (Paper I).pdf
 
Lapbook sobre os Regimes Totalitários.pdf
Lapbook sobre os Regimes Totalitários.pdfLapbook sobre os Regimes Totalitários.pdf
Lapbook sobre os Regimes Totalitários.pdf
 
The basics of sentences session 5pptx.pptx
The basics of sentences session 5pptx.pptxThe basics of sentences session 5pptx.pptx
The basics of sentences session 5pptx.pptx
 
How libraries can support authors with open access requirements for UKRI fund...
How libraries can support authors with open access requirements for UKRI fund...How libraries can support authors with open access requirements for UKRI fund...
How libraries can support authors with open access requirements for UKRI fund...
 
Welcome to TechSoup New Member Orientation and Q&A (May 2024).pdf
Welcome to TechSoup   New Member Orientation and Q&A (May 2024).pdfWelcome to TechSoup   New Member Orientation and Q&A (May 2024).pdf
Welcome to TechSoup New Member Orientation and Q&A (May 2024).pdf
 
2024.06.01 Introducing a competency framework for languag learning materials ...
2024.06.01 Introducing a competency framework for languag learning materials ...2024.06.01 Introducing a competency framework for languag learning materials ...
2024.06.01 Introducing a competency framework for languag learning materials ...
 
Model Attribute Check Company Auto Property
Model Attribute  Check Company Auto PropertyModel Attribute  Check Company Auto Property
Model Attribute Check Company Auto Property
 
Home assignment II on Spectroscopy 2024 Answers.pdf
Home assignment II on Spectroscopy 2024 Answers.pdfHome assignment II on Spectroscopy 2024 Answers.pdf
Home assignment II on Spectroscopy 2024 Answers.pdf
 
Sha'Carri Richardson Presentation 202345
Sha'Carri Richardson Presentation 202345Sha'Carri Richardson Presentation 202345
Sha'Carri Richardson Presentation 202345
 
The Challenger.pdf DNHS Official Publication
The Challenger.pdf DNHS Official PublicationThe Challenger.pdf DNHS Official Publication
The Challenger.pdf DNHS Official Publication
 
The geography of Taylor Swift - some ideas
The geography of Taylor Swift - some ideasThe geography of Taylor Swift - some ideas
The geography of Taylor Swift - some ideas
 
Thesis Statement for students diagnonsed withADHD.ppt
Thesis Statement for students diagnonsed withADHD.pptThesis Statement for students diagnonsed withADHD.ppt
Thesis Statement for students diagnonsed withADHD.ppt
 
Language Across the Curriculm LAC B.Ed.
Language Across the  Curriculm LAC B.Ed.Language Across the  Curriculm LAC B.Ed.
Language Across the Curriculm LAC B.Ed.
 
June 3, 2024 Anti-Semitism Letter Sent to MIT President Kornbluth and MIT Cor...
June 3, 2024 Anti-Semitism Letter Sent to MIT President Kornbluth and MIT Cor...June 3, 2024 Anti-Semitism Letter Sent to MIT President Kornbluth and MIT Cor...
June 3, 2024 Anti-Semitism Letter Sent to MIT President Kornbluth and MIT Cor...
 
Palestine last event orientationfvgnh .pptx
Palestine last event orientationfvgnh .pptxPalestine last event orientationfvgnh .pptx
Palestine last event orientationfvgnh .pptx
 

CNIT 129S: Ch 3: Web Application Technologies

  • 1. CNIT 129S: Securing Web Applications Ch 3: Web Application Technologies
  • 3. Hypertext Transfer Protocol (HTTP) • Connectionless protocol • Client sends an HTTP request to a Web server • Gets an HTTP response • No session formed, nothing remembered--no "state"
  • 4. HTTP Requests • Verb: GET (also called "method") • URL: /css?family=Roboto:400,700 • Portion after ? is the query string containing parameters • Version: HTTP/1.1
  • 5. HTTP Requests • Referer: URL the request originated from • User-Agent: browser being used • Host: Hostname of the server • Essential when multiple hosts run on the same IP • Required in HTTP/1.1
  • 6. HTTP Requests • Cookie: additional parameters the server has issued to the client
  • 7. HTTP Response • First line • HTTP version • Status code (200 in this case) • Textual "reason phrase" describing the response • Ignored by browser
  • 8. HTTP Response • Server: banner of server software • Not always accurate • Set-Cookie used to set cookie values
  • 9. HTTP Response • Pragma: tells browser not to store response in its cache • Expires: set to a date in the past to ensure that the content is freshly loaded
  • 10. HTTP Response • Message Body after header contains data of type specified in Content-Type header
  • 11. HTTP Methods: GET • GET retrieves resources • Can send parameters in the URL query string • Users can bookmark the whole URL • Whole URL may appear in server logs and in Referer headers • Also on the browser's screen • Don't put sensitive information in the query string
  • 12. HTTP Methods: POST • POST performs actions • Request parameters can be in URL query strong and in the body of the message • Parameters in body aren't saved in bookmarks or most server logs • A better place for sensitive data
  • 13. HTTP Methods: POST • POST requests perform actions, like buying something • Clicking the browser's Back button displays a box like this
  • 14. Other HTTP Methods • HEAD returns only the header, not the body • Can be used to check if a resource is available before GETing it • OPTIONS shows allowed methods • PUT uploads to server (usually disabled)
  • 15. URL (Uniform Resource Locator) • If protocol is absent, it defaults to HTTP • If port is absent, it uses the default port for the protocol • 80 for HTTP, 443 for HTTPS, etc.
  • 16. REST (Representational State Transfer) • RESTful URLs put parameters in the URL, not the query string • Becomes
  • 18.
  • 19.
  • 20.
  • 21. Cookies • Cookies are resubmitted in each request to the same domain • Online other request parameters
  • 22. Set-Cookie Header • Optional attributes • expires - date when the cookie stops being valid • If absent, cookie is used only in the current browser session • domain - specified domain for which cookie is valid • Must be the same or a parent of the domain from which the cookie is received • "Same-Origin Policy"
  • 23. Set-Cookie Header • Optional attributes • path - URL path for which the cookie is valid • secure - transmit cookie only via HTTPS • HttpOnly - Cookie cannot be directly accessed via client-side JavaScript
  • 25. Important Status Codes • 200 OK - request succeeded, response body contains result • 301 Moved Permanently - redirects the browser, client should use new URL in the future • 302 Found - redirects browser temporarily. Client should revert to original URL in subsequent requests
  • 26. Important Status Codes • 304 Not Modified - browser should use cached copy of resource • 400 Bad Request - invalid HTTP request • 401 Unauthorized - Server requires HTTP authentication. • WWW-Authenticate header specifies the type(s) of authentication supported
  • 27. Important Status Codes • 403 Forbidden - no one is allowed to access resource, regardless of authentication • 404 Not Found - requested resource does not exist • 500 Internal Server Error - unhanded exception in an app, such as a PHP error
  • 28. HTTPS • HTTP over SSL (Secure Sockets Layer) • Actually now TLS (Transaction Layer Security) • All versions of SSL are deprecated • Protects data with encryption • Protects data in motion, but not at rest or in use
  • 29. HTTP Proxies • Browser sends requests to proxy server • Proxy fetches resource and sends it to browser • Proxies may provide caching, authentication, and access control
  • 30. HTTPS and Man-in-the- Middle (MITM) Attacks • HTTPS connections use public-key cryptography and end-to-end encryption • Only the endpoints can decrypt traffic • Companies wishing to restrict HTTPS traffic have two choices • Perform complete MITM with fake certificates, or real root certificates from trusted CA's • Allow encrypted traffic to trusted domains without being able to inspect it
  • 31. HTTPS and Proxies • Browser sends an HTTP request to the proxy using the CONNECT method and destination hostname and port number • If proxy allows the request, it returns 200 status and keeps the TCP connection open • Thereafter acts as a pure TCP-level relay to the destination web server
  • 32. HTTP Authentication • Basic: sends username and password in Base64- encoding • NTLM: Uses Windows NTLM protocol (MD4 hashing) • Digest: Challenge-response using MD5 hashing • These are generally used in intranets, not on the Internet • All are very weak cryptographically, and should be protected with HTTPS
  • 34. Server-Side Functionality • Static content - HTML pages and images that are the same for all users • Dynamic content - response created in the fly, can be customized for each user • Created by scripts on the server • Customized based on parameters in the request
  • 35. HTTP Parameters • May be sent in these ways:
  • 36. Other Inputs • Server-side application may use any part of the HTTP request as an input • Such as User-Agent • Often used to display smartphone-friendly versions of pages
  • 38. The Java Platform • Standard for large-scale enterprise applications • Lends itself to multitiered and load-balanced architectures • Well-suited to modular development and code reuse • Runs on Windows, Linux, and Solaris
  • 39. Java Platform Terms • Enterprise Java Bean (EJB) • Heavyweight software component to encapsulate business logic, such as transactional integrity • Plain Old Java Object (POJO) • User-defined, lightweight object, distinct from a special object such as an EJB • Java Servlet • Object on an application server that receives HTTP requests from client and returns HTTP responses
  • 40. Java Platform Terms • Java web container • Platform or engine that provides a runtime environment for Java- based web applications • Ex: Apache Tomcat, BEA WebLogic, JBoss
  • 41. Common Components • Third-party or open-source components that are often used alongside custom-built code
  • 42. ASP.NET • Microsoft's web application framework • Competitor to Java platform • Uses .NET Framework, which provides a virtual machine (the Common Language Runtime) and a set of powerful APIs (Application Program Interfaces) • Applications can be written in any .NET language, such as C# or VB.NET
  • 43. Visual Studio • Powerful development environment for ASP.NET applications • Easy for developers to make a web application, even with limited programming skills • ASP.NET helps protect against some common vulnerabilities, such as cross-site scripting, without requiring any effort from the developer
  • 44. PHP • Originally "Personal Home Page", now "PHP Hypertext Processor" • Often used on LAMP servers • Linux, Apache, MySQL, and PHP • Free and easy to use, but many security problems • Both in PHP itself and in custom code using it
  • 46. Ruby on Rails • Allows rapid development of applications • Can autogenerate much of the code if developer follows the Rails coding style and naming conventions • Has vulnerabilities like PHP
  • 47. SQL (Structured Query Language) • Used to access data in relational databases, such as Oracle, MS-SQL, and MySQL • Data stored in tables, each containing rows and columns • SQL queries are used to read, add, update, or delete data • SQL injection vulnerabilities are very severe (OWASP #1)
  • 48. XML (eXtensible Markup Language) • A specification to encode data in machine- readable form • Markup uses tags
  • 49. Web Services and SOAP (Simple Object Access Protocol) • SOAP uses HTTP and XML to exchange data
  • 51. SOAP • If user-supplied data is incorporated into SOAP requests, it can have code injection vulnerabilities • Server usually publishes available services and parameters using Web Services Description Language (WDSL) • soapUI and other tools can generate requests based on WDSL file
  • 53. HTML Hypertext Markup Language • HTML used for formatting "markup" • XHTML is baed on XML and is stricter than old versions of HTML
  • 54. Hyperlinks • Clickable text that go to URLs • Clicking this link: • Makes this request
  • 57. multipart/form-data • Browser generates random boundary text • Link Ch 3c
  • 59. CSS Cascading Style Sheets • Specifies format of document elements • Separates content from presentation • Has vulnerabilities, and can be used for attacks
  • 60. Javascript • Scripts that run in the client's browser • Used to validate user-entered data before submitting it to the server • Dynamically modify UI in response to user action, such as in drop-down menus • Using Document Object Model (DOM) to control the browser's behavior
  • 61. VBScript • Microsoft's alternative to JavaScript • Only supported in Internet Explorer (now obsolete) • Edge does not support VBScript • Links Ch 3d, 3e
  • 64. Ajax Asynchronous JavaScript and XML • Client-side scripts can fetch data without reloading the entire page • Allow you to drag Google Maps around
  • 65. Ajax Example • Google Maps API • Links Ch 3h, 3i
  • 66. JSON JavaScript Object Notation • Client-side JavaScript uses the XMLHttpRequest API to request data from a server • Data is returned in JSON format:
  • 68. Same-Origin Policy • Prevents content from different origins interfering with each other in a browser • Content from one website can only read and modify data from the same website • Ex: scripts on Facebook can't read or write to data on your online banking page • When this process fails, you get Cross-Site Scripting, Cross-Site Request Forgery, and other attacks
  • 70. HTML5
  • 72. Browser Extensions • Many security problems • More and more restricted in modern browsers
  • 73. State and Sessions • Stateful data required to supplement stateless HTTP • This data is held in a server-side structure called a session • The session contains data such as items added to a shopping cart • Some state data is stored on the client, often HTTP cookies or hidden form fields
  • 75. URL Encoding • URLs may contain only printable ASCII characters • 0x20 to 0x7e, inclusive • To transfer other characters, or problematic ASCII characters, over HTTP, they must be URL- encided
  • 76.
  • 77. Unicode Encoding • Supports all the world's writing systems • 16 bits per character, starting with %u
  • 78. UTF-8 Encoding • Variable length • Uses % character before each byte • Unicode and UTF-8 are often used to bypass filters in attacks
  • 80. • HTML-encoding user data before sending it to another user is used to prevent Cross-Site Scripting attacks
  • 81. Base64 Encoding • Represents binary data using 64 ASCII characters • Six bits at a time • Used to encode email attachments so they can be sent via SMTP • Uses this character set
  • 82. Hex Encoding • Hexadecimal numbers corresponding to each ASCII character • ABC encodes to 414243
  • 83. Remoting and Serialization Frameworks • Allows client-side code to use server-side APIs as if they were local