SlideShare ist ein Scribd-Unternehmen logo
1 von 83
Downloaden Sie, um offline zu lesen
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

Weitere ähnliche Inhalte

Was ist angesagt?

Cross Site Scripting ( XSS)
Cross Site Scripting ( XSS)Cross Site Scripting ( XSS)
Cross Site Scripting ( XSS)Amit Tyagi
 
Privilege escalation from 1 to 0 Workshop
Privilege escalation from 1 to 0 Workshop Privilege escalation from 1 to 0 Workshop
Privilege escalation from 1 to 0 Workshop Hossam .M Hamed
 
F5 ASM v12 DDoS best practices
F5 ASM v12 DDoS best practices F5 ASM v12 DDoS best practices
F5 ASM v12 DDoS best practices Lior Rotkovitch
 
CNIT 129S: 13: Attacking Users: Other Techniques (Part 2 of 2)
CNIT 129S: 13: Attacking Users: Other Techniques (Part 2 of 2)CNIT 129S: 13: Attacking Users: Other Techniques (Part 2 of 2)
CNIT 129S: 13: Attacking Users: Other Techniques (Part 2 of 2)Sam Bowne
 
Ch 9 Attacking Data Stores (Part 2)
Ch 9 Attacking Data Stores (Part 2)Ch 9 Attacking Data Stores (Part 2)
Ch 9 Attacking Data Stores (Part 2)Sam Bowne
 
OWASP Top 10 API Security Risks
OWASP Top 10 API Security RisksOWASP Top 10 API Security Risks
OWASP Top 10 API Security RisksIndusfacePvtLtd
 
Going Beyond Microsoft IIS Short File Name Disclosure - NahamCon 2023 Edition
Going Beyond Microsoft IIS Short File Name Disclosure - NahamCon 2023 EditionGoing Beyond Microsoft IIS Short File Name Disclosure - NahamCon 2023 Edition
Going Beyond Microsoft IIS Short File Name Disclosure - NahamCon 2023 EditionSoroush Dalili
 
DDoS Attack Preparation and Mitigation
DDoS Attack Preparation and MitigationDDoS Attack Preparation and Mitigation
DDoS Attack Preparation and MitigationJerod Brennen
 
Cross-domain requests with CORS
Cross-domain requests with CORSCross-domain requests with CORS
Cross-domain requests with CORSVladimir Dzhuvinov
 
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 WinDbgSam Bowne
 
Cross Origin Resource Sharing
Cross Origin Resource SharingCross Origin Resource Sharing
Cross Origin Resource SharingLuke Weerasooriya
 
Ch 10: Hacking Web Servers
Ch 10: Hacking Web ServersCh 10: Hacking Web Servers
Ch 10: Hacking Web ServersSam Bowne
 
4 Mapping the Application
4 Mapping the Application4 Mapping the Application
4 Mapping the ApplicationSam Bowne
 
CNIT 129S: Ch 4: Mapping the Application
CNIT 129S: Ch 4: Mapping the ApplicationCNIT 129S: Ch 4: Mapping the Application
CNIT 129S: Ch 4: Mapping the ApplicationSam Bowne
 
Insecure direct object reference (null delhi meet)
Insecure direct object reference (null delhi meet)Insecure direct object reference (null delhi meet)
Insecure direct object reference (null delhi meet)Abhinav Mishra
 
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
 

Was ist angesagt? (20)

Cross Site Scripting ( XSS)
Cross Site Scripting ( XSS)Cross Site Scripting ( XSS)
Cross Site Scripting ( XSS)
 
DDOS Attack
DDOS Attack DDOS Attack
DDOS Attack
 
Privilege escalation from 1 to 0 Workshop
Privilege escalation from 1 to 0 Workshop Privilege escalation from 1 to 0 Workshop
Privilege escalation from 1 to 0 Workshop
 
F5 ASM v12 DDoS best practices
F5 ASM v12 DDoS best practices F5 ASM v12 DDoS best practices
F5 ASM v12 DDoS best practices
 
CNIT 129S: 13: Attacking Users: Other Techniques (Part 2 of 2)
CNIT 129S: 13: Attacking Users: Other Techniques (Part 2 of 2)CNIT 129S: 13: Attacking Users: Other Techniques (Part 2 of 2)
CNIT 129S: 13: Attacking Users: Other Techniques (Part 2 of 2)
 
Ch 9 Attacking Data Stores (Part 2)
Ch 9 Attacking Data Stores (Part 2)Ch 9 Attacking Data Stores (Part 2)
Ch 9 Attacking Data Stores (Part 2)
 
OWASP Top 10 API Security Risks
OWASP Top 10 API Security RisksOWASP Top 10 API Security Risks
OWASP Top 10 API Security Risks
 
Going Beyond Microsoft IIS Short File Name Disclosure - NahamCon 2023 Edition
Going Beyond Microsoft IIS Short File Name Disclosure - NahamCon 2023 EditionGoing Beyond Microsoft IIS Short File Name Disclosure - NahamCon 2023 Edition
Going Beyond Microsoft IIS Short File Name Disclosure - NahamCon 2023 Edition
 
DDoS Attack Preparation and Mitigation
DDoS Attack Preparation and MitigationDDoS Attack Preparation and Mitigation
DDoS Attack Preparation and Mitigation
 
Introduction to shodan
Introduction to shodanIntroduction to shodan
Introduction to shodan
 
Cross-domain requests with CORS
Cross-domain requests with CORSCross-domain requests with CORS
Cross-domain requests with CORS
 
Bug Bounty 101
Bug Bounty 101Bug Bounty 101
Bug Bounty 101
 
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
 
Cross Origin Resource Sharing
Cross Origin Resource SharingCross Origin Resource Sharing
Cross Origin Resource Sharing
 
Xss ppt
Xss pptXss ppt
Xss ppt
 
Ch 10: Hacking Web Servers
Ch 10: Hacking Web ServersCh 10: Hacking Web Servers
Ch 10: Hacking Web Servers
 
4 Mapping the Application
4 Mapping the Application4 Mapping the Application
4 Mapping the Application
 
CNIT 129S: Ch 4: Mapping the Application
CNIT 129S: Ch 4: Mapping the ApplicationCNIT 129S: Ch 4: Mapping the Application
CNIT 129S: Ch 4: Mapping the Application
 
Insecure direct object reference (null delhi meet)
Insecure direct object reference (null delhi meet)Insecure direct object reference (null delhi meet)
Insecure direct object reference (null delhi meet)
 
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)
 

Andere mochten auch

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 HandbookSam 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 MethodologySam Bowne
 
CNIT 129S: Ch 6: Attacking Authentication
CNIT 129S: Ch 6: Attacking AuthenticationCNIT 129S: Ch 6: Attacking Authentication
CNIT 129S: Ch 6: Attacking AuthenticationSam Bowne
 
CNIT 129S: 8: Attacking Access Controls
CNIT 129S: 8: Attacking Access ControlsCNIT 129S: 8: Attacking Access Controls
CNIT 129S: 8: Attacking Access ControlsSam Bowne
 
CNIT 40: 6: DNSSEC and beyond
CNIT 40: 6: DNSSEC and beyondCNIT 40: 6: DNSSEC and beyond
CNIT 40: 6: DNSSEC and beyondSam 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 ControlsSam Bowne
 
CNIT 121: Computer Forensics Ch 1
CNIT 121: Computer Forensics Ch 1CNIT 121: Computer Forensics Ch 1
CNIT 121: Computer Forensics Ch 1Sam Bowne
 
CNIT 121: 3 Pre-Incident Preparation
CNIT 121: 3 Pre-Incident PreparationCNIT 121: 3 Pre-Incident Preparation
CNIT 121: 3 Pre-Incident PreparationSam 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 CollectionSam Bowne
 
CNIT 128 Ch 4: Android
CNIT 128 Ch 4: AndroidCNIT 128 Ch 4: Android
CNIT 128 Ch 4: AndroidSam Bowne
 
CNIT 40: 3: DNS vulnerabilities
CNIT 40: 3: DNS vulnerabilitiesCNIT 40: 3: DNS vulnerabilities
CNIT 40: 3: DNS vulnerabilitiesSam Bowne
 
CNIT 129S: 11: Attacking Application Logic
CNIT 129S: 11: Attacking Application LogicCNIT 129S: 11: Attacking Application Logic
CNIT 129S: 11: Attacking Application LogicSam 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 BeginSam 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: iOSSam Bowne
 

Andere mochten auch (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 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
 
CNIT 129S: 11: Attacking Application Logic
CNIT 129S: 11: Attacking Application LogicCNIT 129S: 11: Attacking Application Logic
CNIT 129S: 11: Attacking Application Logic
 
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
 

Ähnlich wie CNIT 129S: Ch 3: Web Application Technologies

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 TechnologiesSam Bowne
 
Ch 3: Web Application Technologies
Ch 3: Web Application TechnologiesCh 3: Web Application Technologies
Ch 3: Web Application TechnologiesSam 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 SecuritySanjeev 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
 
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 - TutorialMSA Technosoft
 
Servlet.ppt
Servlet.pptServlet.ppt
Servlet.pptkstalin2
 
web-servers3952 (1)qwjelkjqwlkjkqlwe.ppt
web-servers3952 (1)qwjelkjqwlkjkqlwe.pptweb-servers3952 (1)qwjelkjqwlkjkqlwe.ppt
web-servers3952 (1)qwjelkjqwlkjkqlwe.ppt20521742
 
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
 
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 systemsFelipe Prado
 

Ähnlich wie CNIT 129S: Ch 3: Web Application Technologies (20)

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 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
 

Mehr von 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 SecuritySam 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 CurvesSam Bowne
 
11. Diffie-Hellman
11. Diffie-Hellman11. Diffie-Hellman
11. Diffie-HellmanSam Bowne
 
2a Analyzing iOS Apps Part 1
2a Analyzing iOS Apps Part 12a Analyzing iOS Apps Part 1
2a Analyzing iOS Apps Part 1Sam Bowne
 
9 Writing Secure Android Applications
9 Writing Secure Android Applications9 Writing Secure Android Applications
9 Writing Secure Android ApplicationsSam 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
 
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 3Sam Bowne
 
9. Hard Problems
9. Hard Problems9. Hard Problems
9. Hard ProblemsSam 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 MethodologySam Bowne
 
8. Authenticated Encryption
8. Authenticated Encryption8. Authenticated Encryption
8. Authenticated EncryptionSam 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 CiphersSam Bowne
 
6 Scope & 7 Live Data Collection
6 Scope & 7 Live Data Collection6 Scope & 7 Live Data Collection
6 Scope & 7 Live Data CollectionSam Bowne
 
4. Block Ciphers
4. Block Ciphers 4. Block Ciphers
4. Block Ciphers Sam Bowne
 

Mehr von 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
 

Kürzlich hochgeladen

Z Score,T Score, Percential Rank and Box Plot Graph
Z Score,T Score, Percential Rank and Box Plot GraphZ Score,T Score, Percential Rank and Box Plot Graph
Z Score,T Score, Percential Rank and Box Plot GraphThiyagu K
 
Industrial Policy - 1948, 1956, 1973, 1977, 1980, 1991
Industrial Policy - 1948, 1956, 1973, 1977, 1980, 1991Industrial Policy - 1948, 1956, 1973, 1977, 1980, 1991
Industrial Policy - 1948, 1956, 1973, 1977, 1980, 1991RKavithamani
 
mini mental status format.docx
mini    mental       status     format.docxmini    mental       status     format.docx
mini mental status format.docxPoojaSen20
 
Call Girls in Dwarka Mor Delhi Contact Us 9654467111
Call Girls in Dwarka Mor Delhi Contact Us 9654467111Call Girls in Dwarka Mor Delhi Contact Us 9654467111
Call Girls in Dwarka Mor Delhi Contact Us 9654467111Sapana Sha
 
Introduction to AI in Higher Education_draft.pptx
Introduction to AI in Higher Education_draft.pptxIntroduction to AI in Higher Education_draft.pptx
Introduction to AI in Higher Education_draft.pptxpboyjonauth
 
BASLIQ CURRENT LOOKBOOK LOOKBOOK(1) (1).pdf
BASLIQ CURRENT LOOKBOOK  LOOKBOOK(1) (1).pdfBASLIQ CURRENT LOOKBOOK  LOOKBOOK(1) (1).pdf
BASLIQ CURRENT LOOKBOOK LOOKBOOK(1) (1).pdfSoniaTolstoy
 
Paris 2024 Olympic Geographies - an activity
Paris 2024 Olympic Geographies - an activityParis 2024 Olympic Geographies - an activity
Paris 2024 Olympic Geographies - an activityGeoBlogs
 
“Oh GOSH! Reflecting on Hackteria's Collaborative Practices in a Global Do-It...
“Oh GOSH! Reflecting on Hackteria's Collaborative Practices in a Global Do-It...“Oh GOSH! Reflecting on Hackteria's Collaborative Practices in a Global Do-It...
“Oh GOSH! Reflecting on Hackteria's Collaborative Practices in a Global Do-It...Marc Dusseiller Dusjagr
 
Student login on Anyboli platform.helpin
Student login on Anyboli platform.helpinStudent login on Anyboli platform.helpin
Student login on Anyboli platform.helpinRaunakKeshri1
 
1029 - Danh muc Sach Giao Khoa 10 . pdf
1029 -  Danh muc Sach Giao Khoa 10 . pdf1029 -  Danh muc Sach Giao Khoa 10 . pdf
1029 - Danh muc Sach Giao Khoa 10 . pdfQucHHunhnh
 
Separation of Lanthanides/ Lanthanides and Actinides
Separation of Lanthanides/ Lanthanides and ActinidesSeparation of Lanthanides/ Lanthanides and Actinides
Separation of Lanthanides/ Lanthanides and ActinidesFatimaKhan178732
 
Interactive Powerpoint_How to Master effective communication
Interactive Powerpoint_How to Master effective communicationInteractive Powerpoint_How to Master effective communication
Interactive Powerpoint_How to Master effective communicationnomboosow
 
18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23-1-final-eng.pdf
18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23-1-final-eng.pdf18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23-1-final-eng.pdf
18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23-1-final-eng.pdfssuser54595a
 
The basics of sentences session 2pptx copy.pptx
The basics of sentences session 2pptx copy.pptxThe basics of sentences session 2pptx copy.pptx
The basics of sentences session 2pptx copy.pptxheathfieldcps1
 
Nutritional Needs Presentation - HLTH 104
Nutritional Needs Presentation - HLTH 104Nutritional Needs Presentation - HLTH 104
Nutritional Needs Presentation - HLTH 104misteraugie
 
A Critique of the Proposed National Education Policy Reform
A Critique of the Proposed National Education Policy ReformA Critique of the Proposed National Education Policy Reform
A Critique of the Proposed National Education Policy ReformChameera Dedduwage
 
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptxSOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptxiammrhaywood
 

Kürzlich hochgeladen (20)

Z Score,T Score, Percential Rank and Box Plot Graph
Z Score,T Score, Percential Rank and Box Plot GraphZ Score,T Score, Percential Rank and Box Plot Graph
Z Score,T Score, Percential Rank and Box Plot Graph
 
Industrial Policy - 1948, 1956, 1973, 1977, 1980, 1991
Industrial Policy - 1948, 1956, 1973, 1977, 1980, 1991Industrial Policy - 1948, 1956, 1973, 1977, 1980, 1991
Industrial Policy - 1948, 1956, 1973, 1977, 1980, 1991
 
mini mental status format.docx
mini    mental       status     format.docxmini    mental       status     format.docx
mini mental status format.docx
 
Mattingly "AI & Prompt Design: Structured Data, Assistants, & RAG"
Mattingly "AI & Prompt Design: Structured Data, Assistants, & RAG"Mattingly "AI & Prompt Design: Structured Data, Assistants, & RAG"
Mattingly "AI & Prompt Design: Structured Data, Assistants, & RAG"
 
Call Girls in Dwarka Mor Delhi Contact Us 9654467111
Call Girls in Dwarka Mor Delhi Contact Us 9654467111Call Girls in Dwarka Mor Delhi Contact Us 9654467111
Call Girls in Dwarka Mor Delhi Contact Us 9654467111
 
Introduction to AI in Higher Education_draft.pptx
Introduction to AI in Higher Education_draft.pptxIntroduction to AI in Higher Education_draft.pptx
Introduction to AI in Higher Education_draft.pptx
 
BASLIQ CURRENT LOOKBOOK LOOKBOOK(1) (1).pdf
BASLIQ CURRENT LOOKBOOK  LOOKBOOK(1) (1).pdfBASLIQ CURRENT LOOKBOOK  LOOKBOOK(1) (1).pdf
BASLIQ CURRENT LOOKBOOK LOOKBOOK(1) (1).pdf
 
Paris 2024 Olympic Geographies - an activity
Paris 2024 Olympic Geographies - an activityParis 2024 Olympic Geographies - an activity
Paris 2024 Olympic Geographies - an activity
 
INDIA QUIZ 2024 RLAC DELHI UNIVERSITY.pptx
INDIA QUIZ 2024 RLAC DELHI UNIVERSITY.pptxINDIA QUIZ 2024 RLAC DELHI UNIVERSITY.pptx
INDIA QUIZ 2024 RLAC DELHI UNIVERSITY.pptx
 
“Oh GOSH! Reflecting on Hackteria's Collaborative Practices in a Global Do-It...
“Oh GOSH! Reflecting on Hackteria's Collaborative Practices in a Global Do-It...“Oh GOSH! Reflecting on Hackteria's Collaborative Practices in a Global Do-It...
“Oh GOSH! Reflecting on Hackteria's Collaborative Practices in a Global Do-It...
 
Student login on Anyboli platform.helpin
Student login on Anyboli platform.helpinStudent login on Anyboli platform.helpin
Student login on Anyboli platform.helpin
 
1029 - Danh muc Sach Giao Khoa 10 . pdf
1029 -  Danh muc Sach Giao Khoa 10 . pdf1029 -  Danh muc Sach Giao Khoa 10 . pdf
1029 - Danh muc Sach Giao Khoa 10 . pdf
 
Separation of Lanthanides/ Lanthanides and Actinides
Separation of Lanthanides/ Lanthanides and ActinidesSeparation of Lanthanides/ Lanthanides and Actinides
Separation of Lanthanides/ Lanthanides and Actinides
 
Interactive Powerpoint_How to Master effective communication
Interactive Powerpoint_How to Master effective communicationInteractive Powerpoint_How to Master effective communication
Interactive Powerpoint_How to Master effective communication
 
18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23-1-final-eng.pdf
18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23-1-final-eng.pdf18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23-1-final-eng.pdf
18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23-1-final-eng.pdf
 
Código Creativo y Arte de Software | Unidad 1
Código Creativo y Arte de Software | Unidad 1Código Creativo y Arte de Software | Unidad 1
Código Creativo y Arte de Software | Unidad 1
 
The basics of sentences session 2pptx copy.pptx
The basics of sentences session 2pptx copy.pptxThe basics of sentences session 2pptx copy.pptx
The basics of sentences session 2pptx copy.pptx
 
Nutritional Needs Presentation - HLTH 104
Nutritional Needs Presentation - HLTH 104Nutritional Needs Presentation - HLTH 104
Nutritional Needs Presentation - HLTH 104
 
A Critique of the Proposed National Education Policy Reform
A Critique of the Proposed National Education Policy ReformA Critique of the Proposed National Education Policy Reform
A Critique of the Proposed National Education Policy Reform
 
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptxSOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
SOCIAL AND HISTORICAL CONTEXT - LFTVD.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