SlideShare a Scribd company logo
A Case Study of
              Django
Web Applications that are Secure by Default


         Mohammed ALDOUB

               @Voulnet
Web Security Essentials
• The essentials of web application security are still not
  well understood.

• Most developers have little to no idea about web
  security fundamentals.

• Higher adoption to new web technologies, but no
  accompanying security awareness.
Web Security Essentials
• The basic idea of web security: Never trust
  users, and never trust their data. No exceptions.

• Many layers exist in web technologies, and therefore
  many attack vectors and possibilities.

• Web developers must understand risks and
  mitigations for all web layers.
Problems in Applying Web Security
• Web security cannot be achieved if developers are
  not well trained in security. Education is key.

• Deadlines will almost always result in security
  vulnerabilities. Developers who are too busy and
  under pressure will not focus on security.

• Security is not integrated early in the development
  process, so it gets delayed/forgotten.

Recommended for you

Everything You Need To Know About Ivanti Security Controls
Everything You Need To Know About Ivanti Security ControlsEverything You Need To Know About Ivanti Security Controls
Everything You Need To Know About Ivanti Security Controls

Ivanti Security Controls (ISeC) brings together Ivanti's security products into a single platform. ISeC 2019.1 provides patch management for Windows and Linux, application control, and privilege management. It aims to simplify security workflows, reduce administrative burden, and improve protection against threats. The document discusses new features in ISeC 2019.1 like Linux patching, CVE-to-patch mapping, and REST APIs. It also presents the Ivanti Security Attainment Model for moving beyond only patch management to establish a more comprehensive security foundation.

it securitycybersecuritypatch management
Policy as Code: IT Governance With HashiCorp Sentinel
Policy as Code: IT Governance With HashiCorp SentinelPolicy as Code: IT Governance With HashiCorp Sentinel
Policy as Code: IT Governance With HashiCorp Sentinel

Get an updated 2019 introduction to Sentinel, HashiCorp's policy as code framework. See demos of Sentinel policies inside Terraform, Consul, Nomad, and Vault, and learn about upcoming features.

hashicorphashicorp vaulthashicorp consul
OAuth 2.0 with IBM WebSphere DataPower
OAuth 2.0 with IBM WebSphere DataPowerOAuth 2.0 with IBM WebSphere DataPower
OAuth 2.0 with IBM WebSphere DataPower

OAuth 2.0 allows third party applications to access resources without sharing credentials. It uses grant types like authorization code and implicit grant to obtain an access token. The access token is then used by the client to access resources from the resource server. DataPower supports OAuth 2.0 and provides customization options like additional grant types and extension points to customize the OAuth handshake process.

datapowersecurityoauth
Bad Practices in Web Security
• Developers don’t validate user input.

• Even if they validate it, they do it poorly or out of
  context.

• Developers make wrong assumptions about security:
   – “It’s ok, we use SSL!”
   – “The Firewall will protect us”
   – “Who will think of attacking this function?”

• Most developers copy/paste code from the internet.
  Admit it.
Bad Practices in Web Security
• Session/password management is done poorly:
   – Sessions are easy to forge by attackers.
   – Passwords are stored as plaintext.


• Server & Database configuration/security are not
  understood by web developers.

• Developers don’t realize the threats on end users:
   – Cross Site Scripting (XSS)
   – Cross Site Request Forgery (CSRF)
• Django is a Web Application Framework, written in
  Python

• Allows rapid, secure and agile web development.

• Write better web applications in less time & effort.
• Django is loaded with security features that are used
  by default.

• Security by default provides great protection to
  developers with no security experience

• Django makes it more difficult to write insecure
  code.

Recommended for you

Single Sign On 101
Single Sign On 101Single Sign On 101
Single Sign On 101

These slides are supposed to help you understand the basics of application security, and how the latest technologies come together to enable you to reduce the number of times people at your organization need to authenticate. For more information visit. http://gluu.org

authenticationldapsaml
SSO introduction
SSO introductionSSO introduction
SSO introduction

The Identity management solutions required specific skill to successfully deploy it. This presentation will help you to star build some of them.

securitysingle sign-onidentity and access management
Passwordless auth
Passwordless authPasswordless auth
Passwordless auth

The history of passwords, its vulnerabilities, why the way we authenticate needs to change, potential solutions

securityidentityauthentication
• Django is used by many popular websites/services:
Security Features of Django
• Django provides many default protections against
  web threats, mainly against problems of:
   –   User Management
   –   Authorization
   –   Cookies
   –   SQL Injection
   –   Cross Site Scripting (XSS)
   –   Cross Site Request Forgery (CSRF)
   –   Clickjacking
   –   Files
   –   E-mail Header Injection
   –   Cryptography
   –   Directory Traversal
User Management
• Developers make many mistakes in user
  management.

• Passwords are stored/transferred as plaintext.

• Users are exposed if databases get leaked.

• Weak authentication methods are used by
  inexperienced developers.
User Management
• Django provides a default User model that can be used in
  any website. It comes equipped with correct session
  management, permissions, registration and login.

• Developers don’t need to re-invent the wheel and re-
  introduce user management risks.

• Django provides strong password hashing methods
  (bcrypt, PBKDF2, SHA1), with increasing work factors.
•
• Django makes passwords very hard to crack.

Recommended for you

Microsoft LAPS - Local Administrator Password Solution
Microsoft LAPS - Local Administrator Password SolutionMicrosoft LAPS - Local Administrator Password Solution
Microsoft LAPS - Local Administrator Password Solution

A brief guide to Microsoft LAPS, how it works, what it means for your network security; and how to install and configure it.

microsoftinformation securitypasswords
Privileged Access Management - 2016
Privileged Access Management - 2016Privileged Access Management - 2016
Privileged Access Management - 2016

Privileged access refers to system permissions that allow overriding of controls and accessing sensitive information. Privileged accounts have special permissions that can significantly impact an organization's systems and databases. Proper management of privileged access is needed, including monitoring passwords, logging activity, and ensuring access is traceable to individual users. This is the goal of Privileged Access Management (PAM).

pampimprivileged identity management
Identity and Access Management (IAM): Benefits and Best Practices 
Identity and Access Management (IAM): Benefits and Best Practices Identity and Access Management (IAM): Benefits and Best Practices 
Identity and Access Management (IAM): Benefits and Best Practices 

Identity and access management (IAM) involves streamlining digital identity and access management across an enterprise. IAM provides benefits like improved security, reduced helpdesk workloads, and compliance. Best practices for IAM include treating identity as the primary security defense, enabling multi-factor authentication, using single sign-on, and conducting regular access audits. Veritis is an IAM expert that can help assess an organization's needs, create an IAM strategy and roadmap, and implement IAM solutions and services.

iam solutionsiam servicesveritis
User Management
• Django provides easy methods for user management
  such as is_authenticated(), permission_required(),
  requires_login(), and more, offsetting difficult session
  and permission code away from the developer.

• Django provides secure default password reset and login
  redirection functionality. Developers don’t need to create
  password reset forms and introduce risks.

• By using Django’s user management module, developers
  will not make mistakes such as ‘admin=true’ in cookies!
Clickjacking
• Clickjacking is an attack where an attackers loads an
  invisible page over a visible one. The user thinks he is
  clicking on the visible page, but he’s actually clicking on
  invisible buttons and links.

• Can be used to trick users into buying items, deleting
  content or adding fake friends online.

• Django provides direct protection against Clickjacking
  attacks using the X-Frame-Options header. Only one line
  of code!
Clickjacking Example




Image taken from ‘Busting Frame Busting’ research paper (found in references)
Cross Site Scripting (XSS)
• XSS is one of the most dangerous and popular
  attacks, where users instead of servers are targeted.

• In an XSS attack, an attacker runs evil scripts on the
  user’s browser, through a vulnerable website.

• It can be used to steal cookies, accounts, install
  malware, deface websites and many more uses.

Recommended for you

OneIdentity - A Future-Ready Approach to IAM
OneIdentity - A Future-Ready Approach to IAMOneIdentity - A Future-Ready Approach to IAM
OneIdentity - A Future-Ready Approach to IAM

The material discusses Quest's "future-ready" approach to IAM in the perspective of covering the EU GDPR compliance. We discuss about the five foundational concepts of the One Identity family of solutions, and our advantage and approach on covering the four IAM pillars. With regards to the present audience, we also included an overview of the One Identity platform. The presentation was developed for the RISK 2018 Conference in Lasko, Slovenia

questoneidentityiam
Identity and Access Management
Identity and Access ManagementIdentity and Access Management
Identity and Access Management

Identity and access management (IAM) is a framework that facilitates the management of electronic identities and user access to systems. IAM systems use technologies like single sign-on, multifactor authentication, and privileged access management to securely store identity data and control user access. IAM allows organizations to automate the process of provisioning, managing, and revoking access to ensure appropriate access levels and compliance.

Identity Management
Identity ManagementIdentity Management
Identity Management

This presentation covers topics like identity management, identity lifecycle, JML, identity mapping, orphan accounts, provisioning, workflows, self-service password management, profile management, CIAM etc.,

iamidentityidentity management
Cross Site Scripting (XSS)
• XSS is very easy to introduce by ignorant
  developers, example:
  <?php
  echo "Results for: " . $_GET["query"];
  ?>

• It’s okay if the search query was Car, but what if the
  attacker entered…
  <script>alert(document.cookie)</script>
Case Study of Django: Web Frameworks that are Secure by Default
Cross Site Scripting (XSS)
• Evidently XSS is a critical attack, so Django provides great
  default protections against it.

• HTML output is always escaped by Django to ensure that user
  input cannot execute code.

• Django’s templating engine provides autoescaping.

• HTML Attributes must always be quoted so that Django’s
  protections can be activated.

• For extra XSS protections, use ESAPI, lxml, html5lib, Bleach or
  Markdown
SQL Injection (SQLi)
• SQL Injection is a dangerous attack in which evil data is sent to
  the database to be executed as destructive commands.

• Developers write SQL queries in a wrong way, allowing
  attackers to inject SQL commands into the query, to be
  executed as SQL code. Example:
string sql = “SELECT * FROM USERS WHERE name=‘” +
Request[‘username’] + “’”;

• Looks innocent, but what if the user entered ‘; DROP
  TABLE USERS;-- ?

Recommended for you

Secure Spring Boot Microservices with Keycloak
Secure Spring Boot Microservices with KeycloakSecure Spring Boot Microservices with Keycloak
Secure Spring Boot Microservices with Keycloak

Keycloak is an open source identity and access management solution that can securely authenticate and authorize users for modern applications and services. It supports OpenID Connect, SAML, and Kerberos for single sign-on and includes features like social login, user federation, account management, and authorization. Keycloak provides a standardized JSON web token to represent user identities across systems and services.

devnation livered hat
The Essentials | Privileged Access Management
The Essentials | Privileged Access ManagementThe Essentials | Privileged Access Management
The Essentials | Privileged Access Management

SSH is nearly ubiquitous in today’s enterprises, and is the predominant tool for managing unix and linux servers, and the applications and data that they host. Poor practices around the deployment and management of the SSH infrastructure could easily leave your enterprise vulnerable to a breach. Are you in control?

access controlpamserver security
Wazuh Security Platform
Wazuh Security PlatformWazuh Security Platform
Wazuh Security Platform

The document provides an overview of the Wazuh open source host-based intrusion detection system (HIDS). It describes how Wazuh uses agents installed on endpoints that collect and transmit security data to a central server for analysis. The server analyzes the data, triggers alerts for threats or anomalies, and stores the information in Elasticsearch for visualization and exploration through the Wazuh dashboard user interface. Key components of the Wazuh architecture include the agents, server, indexer cluster for data storage, and dashboard for monitoring, analysis and management.

cyber securitysiemthreat inteligence
Case Study of Django: Web Frameworks that are Secure by Default
SQL Injection (SQLi)
• SQL injection attacks are used to read and corrupt
  databases, take complete control over servers as well as
  modify web pages (and therefore steal user sessions or install
  malware)

• The good news is that Django provides excellent defense
  against SQL Injection!

• Django uses ORM and query sets to make sure all input is
  escaped & validated.
• Developers do not need to write any SQL. Just write Python
  classes and Django will convert them to SQL securely!
SQL Injection (SQLi)
• No matter where input comes from
  (GET,POST,COOKIES), Django will escape all input that goes to
  the database.

• Even if developers needed to write raw SQL, they can use
  placeholders like "Select * from users where id = %s ” which
  will safely validate input.
Cookies
• Django sets cookies to HttpOnly by default, to prevent
  sessions from getting stolen in most browsers.

• Session ID are never used in URLs even if cookies are disabled.

• Django will always give a new session ID if a user tried a non-
  existent one, to protect against session fixation.


• Cookies can be digitally signed and time-stamped, to
  protect against tampering of data.

Recommended for you

Privileged identity management
Privileged identity managementPrivileged identity management
Privileged identity management

The document discusses the risks of uncontrolled privileged access and advocates for implementing strong authentication using smart cards for privileged users. Privileged accounts currently rely on weak password authentication which can enable accidental or intentional data breaches. Smart cards provide multi-factor authentication that is more secure and easy for administrators to use. The document outlines how smart cards can be deployed and managed to control privileged access across an enterprise network.

 
by Nis
authentification fortemfasecurisé les acces
Identity & access management
Identity & access managementIdentity & access management
Identity & access management

This document provides an overview of identity and access management (IAM) concepts. IAM involves managing digital identities and the access provided through them. Key components include establishing unique identities, authorizing access to entitlements through roles, approving access requests, reviewing access through certifications, and provisioning/deprovisioning access. The document also describes how an IAM framework works, including how identities request access, roles and rules are managed, access is aggregated and provisioned to target systems, and certifications are performed to review access. It provides SailPoint as an example of a leading IAM tool.

Django Web Application Security
Django Web Application SecurityDjango Web Application Security
Django Web Application Security

This document discusses security best practices for Django web applications. It begins by introducing the author and their background in Python, Django, and computer security. It then covers common web vulnerabilities and attacks like information disclosure, input validation issues, session hijacking, and denial of service. Throughout, it provides recommendations for how to configure Django and code defensively to mitigate these risks, such as using parameterized queries, input sanitization, secure sessions, and cross-site request forgery protection. It emphasizes adopting a layered security approach and being vigilant about updates and monitoring.

securityweb applicationdjango
Files
• Django provides excellent protection to files.

• No webroot concept in Django. Only the directories and files
  you allow are requested. Even if attackers upload a file, it is
  only downloaded if you allow it in URLConf.

• Django executes Python code from the outside of the web
  root, so attackers cannot retrieve any files not explicitly
  allowed from the web root.
Cross Site Request Forgery (CSRF)
• CSRF is an attack where an attacker can force users of a
  website to perform actions without their permission.

• If a user is logged into website A, an attacker can let a user
  visit website B, which will perform actions on website A on
  behalf of the user.

• This happens because the forms in website A are not
  protected against CSRF.

• Basically CSRF means evil websites can let users of other
  websites perform actions without user permission.
Cross Site Request Forgery (CSRF)
• Example: A form in website A allows a logged in user to delete
  his account. If there is no CSRF protection, website B can force
  visitors to delete their account on website A.

• Example: Suppose website B has this HTML form in its code.
  What happens if a user of website A visits B?

  <form
  action="http://websiteA.com/deleteMyAccount.php”
  method=”post” >
  </form>
Case Study of Django: Web Frameworks that are Secure by Default

Recommended for you

Django & Python Case Studies
  Django & Python Case Studies  Django & Python Case Studies
Django & Python Case Studies

This document provides summaries of 7 case studies for custom software applications developed by Leo Technosoft using Django and Python. The applications include an ERP system for automotive parts retailers, a yoga community website and app, a translation portal, a coupon management system, a construction contract management SaaS, a domain management system, and a trade process management system. Each case study outlines the client's needs, the solution developed, and technologies used such as Django, Python, MySQL and other common web development tools.

django case studypython case study
Two scoops of Django - Security Best Practices
Two scoops of Django - Security Best PracticesTwo scoops of Django - Security Best Practices
Two scoops of Django - Security Best Practices

The presentation is based on the book 「Two scoops of Django : Best Practices for Django 1.5」by Daniel Greenfeld and Audrey Roy.

django security
Django book20 security
Django book20 securityDjango book20 security
Django book20 security

A brief introduction of Django Book ch 20. With basic network security knowledge.

securitydjango book
Cross Site Request Forgery (CSRF)
• The effects of CSRF is that attackers can make users perform
  ANY action on the vulnerable website.
• Django provides CSRF protections for all POST,PUT,DELETE
  requests (according to RFC2616).
• If website A used Django CSRF protection, the form would be:

   <form action=”/deleteMyAccount.php” method=”post”
   >
   <input type='hidden' name='csrfmiddlewaretoken'
   value='Aes4YiAfBQwCS8d4T1ngDAa6jJQiYDFs' />
   </form>
E-mail Header Injection
• E-mail Header injection is a less popular attack that targets
  weak email-sending forms in websites.
• By crafting a special string, attackers can use your email form
  to spend spam through your mail server, resulting in your
  domains/IPs getting blocked and possible worse effects.

• Example email form:

   To: mycustomer@example.com
   Subject: Customer feedback
   <email content here>
E-mail Header Injection
• What if the attacker supplies the following data as the email
  content? They will be able to use your website as a spam
  base.
• “ncc: spamVictim@example.comn<spam content>”
• It would be:
To: mycustomer@example.com
Subject: Customer feedback
cc: spamVictim@example.com
<spam message content, buy drugs, lose weight or something>

• Django provides default protection by using the built-in email
  form.
Final Remarks
• It must be understood that nothing can protect developers if
  they refuse to learn about web security and vulnerabilities.

• The point of Django’s default security features is to make it
  very easy to add security, and very difficult to remove
  security.

• However, developers still need to learn the basics of security
  and risk assessment.

• Knowledge is the best defense against web attacks.

Recommended for you

Comparing web frameworks
Comparing web frameworksComparing web frameworks
Comparing web frameworks

The document compares various web frameworks including PHP frameworks like Zend, CodeIgniter, Symfony, CakePHP, Yii and Kohana as well as Ruby on Rails, Django and others. It evaluates each framework based on factors like licensing, requirements, available console tools, documentation, tutorials and includes performance tests for basic tasks on each framework. Symfony provides the most powerful console tools to automatically generate code including SQL queries from YAML sources and has detailed tutorials covering authentication and security. CakePHP and Yii also provide console tools for code generation. Ruby on Rails and Django integrate database management into their console tools but tutorials lack database authentication examples.

cakephpphpzend
Comparing JVM Web Frameworks - Spring I/O 2012
Comparing JVM Web Frameworks - Spring I/O 2012Comparing JVM Web Frameworks - Spring I/O 2012
Comparing JVM Web Frameworks - Spring I/O 2012

Comparing JVM Web Frameworks Presentation from Spring I/O Conference in Madrid, Spain. Compares many different JVM-based web frameworks, ranks them based on 20 different criteria and compares the Pros, Cons and other stats of the top 5. Also talks about how web developers might need to learn client-side MVC frameworks and Java developers need to learn web technologies (JavaScript and CSS) or become RESTful services developers. See video of this talk at https://www.youtube.com/watch?v=QlQMt3W9fpU.

wicketframeworksjvm
Gateway and secure micro services
Gateway and secure micro servicesGateway and secure micro services
Gateway and secure micro services

- Jordan Valdma from TransferWise gave a talk about gateways, services, and APIs at TransferWise. - The talk covered the history of microservices, designing RESTful APIs, and security considerations for microservices including OAuth 2.0 flows, JSON Web Tokens, and combining JWT with OAuth tokens. - Tips were provided for designing RESTful APIs, gateways, services, and security including focusing on interfaces, getting early feedback, and decoupling from data sources.

techrestfulapi
References
• http://davidbliss.com/sites-built-using-django

• https://docs.djangoproject.com/en/1.4/topics/security/

• http://www.djangobook.com/en/2.0/chapter20/

• http://seclab.stanford.edu/websec/framebusting/framebust.p
  df
Questions?


• Do not hesitate to ask any question!




• Do not hesitate to let your developers try Django in the
  workplace! It could be your road to increased productivity and
  security!

More Related Content

What's hot

Enterprise Single Sign-On - SSO
Enterprise Single Sign-On - SSOEnterprise Single Sign-On - SSO
Enterprise Single Sign-On - SSO
Oliver Mueller
 
SIEM for Beginners: Everything You Wanted to Know About Log Management but We...
SIEM for Beginners: Everything You Wanted to Know About Log Management but We...SIEM for Beginners: Everything You Wanted to Know About Log Management but We...
SIEM for Beginners: Everything You Wanted to Know About Log Management but We...
AlienVault
 
Splunk Cloud and Splunk Enterprise 7.2
Splunk Cloud and Splunk Enterprise 7.2Splunk Cloud and Splunk Enterprise 7.2
Splunk Cloud and Splunk Enterprise 7.2
Splunk
 
Everything You Need To Know About Ivanti Security Controls
Everything You Need To Know About Ivanti Security ControlsEverything You Need To Know About Ivanti Security Controls
Everything You Need To Know About Ivanti Security Controls
Ivanti
 
Policy as Code: IT Governance With HashiCorp Sentinel
Policy as Code: IT Governance With HashiCorp SentinelPolicy as Code: IT Governance With HashiCorp Sentinel
Policy as Code: IT Governance With HashiCorp Sentinel
Mitchell Pronschinske
 
OAuth 2.0 with IBM WebSphere DataPower
OAuth 2.0 with IBM WebSphere DataPowerOAuth 2.0 with IBM WebSphere DataPower
OAuth 2.0 with IBM WebSphere DataPower
Shiu-Fun Poon
 
Single Sign On 101
Single Sign On 101Single Sign On 101
Single Sign On 101
Mike Schwartz
 
SSO introduction
SSO introductionSSO introduction
SSO introduction
Aidy Tificate
 
Passwordless auth
Passwordless authPasswordless auth
Passwordless auth
Lesha Bhansali
 
Microsoft LAPS - Local Administrator Password Solution
Microsoft LAPS - Local Administrator Password SolutionMicrosoft LAPS - Local Administrator Password Solution
Microsoft LAPS - Local Administrator Password Solution
Int64 Software Ltd
 
Privileged Access Management - 2016
Privileged Access Management - 2016Privileged Access Management - 2016
Privileged Access Management - 2016
Lance Peterman
 
Identity and Access Management (IAM): Benefits and Best Practices 
Identity and Access Management (IAM): Benefits and Best Practices Identity and Access Management (IAM): Benefits and Best Practices 
Identity and Access Management (IAM): Benefits and Best Practices 
Veritis Group, Inc
 
OneIdentity - A Future-Ready Approach to IAM
OneIdentity - A Future-Ready Approach to IAMOneIdentity - A Future-Ready Approach to IAM
OneIdentity - A Future-Ready Approach to IAM
Adrian Dumitrescu
 
Identity and Access Management
Identity and Access ManagementIdentity and Access Management
Identity and Access Management
Prashanth BS
 
Identity Management
Identity ManagementIdentity Management
Identity Management
Venkatesh Jambulingam
 
Secure Spring Boot Microservices with Keycloak
Secure Spring Boot Microservices with KeycloakSecure Spring Boot Microservices with Keycloak
Secure Spring Boot Microservices with Keycloak
Red Hat Developers
 
The Essentials | Privileged Access Management
The Essentials | Privileged Access ManagementThe Essentials | Privileged Access Management
The Essentials | Privileged Access Management
Ryan Gallavin
 
Wazuh Security Platform
Wazuh Security PlatformWazuh Security Platform
Wazuh Security Platform
Pituphong Yavirach
 
Privileged identity management
Privileged identity managementPrivileged identity management
Privileged identity management
Nis
 
Identity & access management
Identity & access managementIdentity & access management
Identity & access management
Vandana Verma
 

What's hot (20)

Enterprise Single Sign-On - SSO
Enterprise Single Sign-On - SSOEnterprise Single Sign-On - SSO
Enterprise Single Sign-On - SSO
 
SIEM for Beginners: Everything You Wanted to Know About Log Management but We...
SIEM for Beginners: Everything You Wanted to Know About Log Management but We...SIEM for Beginners: Everything You Wanted to Know About Log Management but We...
SIEM for Beginners: Everything You Wanted to Know About Log Management but We...
 
Splunk Cloud and Splunk Enterprise 7.2
Splunk Cloud and Splunk Enterprise 7.2Splunk Cloud and Splunk Enterprise 7.2
Splunk Cloud and Splunk Enterprise 7.2
 
Everything You Need To Know About Ivanti Security Controls
Everything You Need To Know About Ivanti Security ControlsEverything You Need To Know About Ivanti Security Controls
Everything You Need To Know About Ivanti Security Controls
 
Policy as Code: IT Governance With HashiCorp Sentinel
Policy as Code: IT Governance With HashiCorp SentinelPolicy as Code: IT Governance With HashiCorp Sentinel
Policy as Code: IT Governance With HashiCorp Sentinel
 
OAuth 2.0 with IBM WebSphere DataPower
OAuth 2.0 with IBM WebSphere DataPowerOAuth 2.0 with IBM WebSphere DataPower
OAuth 2.0 with IBM WebSphere DataPower
 
Single Sign On 101
Single Sign On 101Single Sign On 101
Single Sign On 101
 
SSO introduction
SSO introductionSSO introduction
SSO introduction
 
Passwordless auth
Passwordless authPasswordless auth
Passwordless auth
 
Microsoft LAPS - Local Administrator Password Solution
Microsoft LAPS - Local Administrator Password SolutionMicrosoft LAPS - Local Administrator Password Solution
Microsoft LAPS - Local Administrator Password Solution
 
Privileged Access Management - 2016
Privileged Access Management - 2016Privileged Access Management - 2016
Privileged Access Management - 2016
 
Identity and Access Management (IAM): Benefits and Best Practices 
Identity and Access Management (IAM): Benefits and Best Practices Identity and Access Management (IAM): Benefits and Best Practices 
Identity and Access Management (IAM): Benefits and Best Practices 
 
OneIdentity - A Future-Ready Approach to IAM
OneIdentity - A Future-Ready Approach to IAMOneIdentity - A Future-Ready Approach to IAM
OneIdentity - A Future-Ready Approach to IAM
 
Identity and Access Management
Identity and Access ManagementIdentity and Access Management
Identity and Access Management
 
Identity Management
Identity ManagementIdentity Management
Identity Management
 
Secure Spring Boot Microservices with Keycloak
Secure Spring Boot Microservices with KeycloakSecure Spring Boot Microservices with Keycloak
Secure Spring Boot Microservices with Keycloak
 
The Essentials | Privileged Access Management
The Essentials | Privileged Access ManagementThe Essentials | Privileged Access Management
The Essentials | Privileged Access Management
 
Wazuh Security Platform
Wazuh Security PlatformWazuh Security Platform
Wazuh Security Platform
 
Privileged identity management
Privileged identity managementPrivileged identity management
Privileged identity management
 
Identity & access management
Identity & access managementIdentity & access management
Identity & access management
 

Viewers also liked

Django Web Application Security
Django Web Application SecurityDjango Web Application Security
Django Web Application Security
levigross
 
Django & Python Case Studies
  Django & Python Case Studies  Django & Python Case Studies
Django & Python Case Studies
Leo TechnoSoft
 
Two scoops of Django - Security Best Practices
Two scoops of Django - Security Best PracticesTwo scoops of Django - Security Best Practices
Two scoops of Django - Security Best Practices
Spin Lai
 
Django book20 security
Django book20 securityDjango book20 security
Django book20 security
Shih-yi Wei
 
Comparing web frameworks
Comparing web frameworksComparing web frameworks
Comparing web frameworks
Aditya Sengupta
 
Comparing JVM Web Frameworks - Spring I/O 2012
Comparing JVM Web Frameworks - Spring I/O 2012Comparing JVM Web Frameworks - Spring I/O 2012
Comparing JVM Web Frameworks - Spring I/O 2012
Matt Raible
 
Gateway and secure micro services
Gateway and secure micro servicesGateway and secure micro services
Gateway and secure micro services
Jordan Valdma
 
Evil Shell: Hacking Linux Users
Evil Shell: Hacking Linux UsersEvil Shell: Hacking Linux Users
Evil Shell: Hacking Linux Users
Mohammed ALDOUB
 
Ruby on Rails Penetration Testing
Ruby on Rails Penetration TestingRuby on Rails Penetration Testing
Ruby on Rails Penetration Testing
3S Labs
 
JWT Authentication with AngularJS
JWT Authentication with AngularJSJWT Authentication with AngularJS
JWT Authentication with AngularJS
robertjd
 
HTML5のCanvas入門 - Img画像を編集してみよう -
HTML5のCanvas入門 - Img画像を編集してみよう -HTML5のCanvas入門 - Img画像を編集してみよう -
HTML5のCanvas入門 - Img画像を編集してみよう -
Toshio Ehara
 
Json web token api authorization
Json web token api authorizationJson web token api authorization
Json web token api authorization
Giulio De Donato
 
Laravel and Django and Rails, Oh My!
Laravel and Django and Rails, Oh My!Laravel and Django and Rails, Oh My!
Laravel and Django and Rails, Oh My!
Chris Roberts
 
HTML5 Canvasを学びたい人に送る Canvasの超基本とその後の学習方針
HTML5 Canvasを学びたい人に送るCanvasの超基本とその後の学習方針HTML5 Canvasを学びたい人に送るCanvasの超基本とその後の学習方針
HTML5 Canvasを学びたい人に送る Canvasの超基本とその後の学習方針
Nisei Kimura
 
[Dl輪読会]bayesian dark knowledge
[Dl輪読会]bayesian dark knowledge[Dl輪読会]bayesian dark knowledge
[Dl輪読会]bayesian dark knowledge
Deep Learning JP
 
44CON London 2015 - Stegosploit - Drive-by Browser Exploits using only Images
44CON London 2015 - Stegosploit - Drive-by Browser Exploits using only Images44CON London 2015 - Stegosploit - Drive-by Browser Exploits using only Images
44CON London 2015 - Stegosploit - Drive-by Browser Exploits using only Images
44CON
 
The Role of Enterprise Integration in Digital Transformation
The Role of Enterprise Integration in Digital TransformationThe Role of Enterprise Integration in Digital Transformation
The Role of Enterprise Integration in Digital Transformation
Kasun Indrasiri
 
Single-Page-Application & REST security
Single-Page-Application & REST securitySingle-Page-Application & REST security
Single-Page-Application & REST security
Igor Bossenko
 

Viewers also liked (18)

Django Web Application Security
Django Web Application SecurityDjango Web Application Security
Django Web Application Security
 
Django & Python Case Studies
  Django & Python Case Studies  Django & Python Case Studies
Django & Python Case Studies
 
Two scoops of Django - Security Best Practices
Two scoops of Django - Security Best PracticesTwo scoops of Django - Security Best Practices
Two scoops of Django - Security Best Practices
 
Django book20 security
Django book20 securityDjango book20 security
Django book20 security
 
Comparing web frameworks
Comparing web frameworksComparing web frameworks
Comparing web frameworks
 
Comparing JVM Web Frameworks - Spring I/O 2012
Comparing JVM Web Frameworks - Spring I/O 2012Comparing JVM Web Frameworks - Spring I/O 2012
Comparing JVM Web Frameworks - Spring I/O 2012
 
Gateway and secure micro services
Gateway and secure micro servicesGateway and secure micro services
Gateway and secure micro services
 
Evil Shell: Hacking Linux Users
Evil Shell: Hacking Linux UsersEvil Shell: Hacking Linux Users
Evil Shell: Hacking Linux Users
 
Ruby on Rails Penetration Testing
Ruby on Rails Penetration TestingRuby on Rails Penetration Testing
Ruby on Rails Penetration Testing
 
JWT Authentication with AngularJS
JWT Authentication with AngularJSJWT Authentication with AngularJS
JWT Authentication with AngularJS
 
HTML5のCanvas入門 - Img画像を編集してみよう -
HTML5のCanvas入門 - Img画像を編集してみよう -HTML5のCanvas入門 - Img画像を編集してみよう -
HTML5のCanvas入門 - Img画像を編集してみよう -
 
Json web token api authorization
Json web token api authorizationJson web token api authorization
Json web token api authorization
 
Laravel and Django and Rails, Oh My!
Laravel and Django and Rails, Oh My!Laravel and Django and Rails, Oh My!
Laravel and Django and Rails, Oh My!
 
HTML5 Canvasを学びたい人に送る Canvasの超基本とその後の学習方針
HTML5 Canvasを学びたい人に送るCanvasの超基本とその後の学習方針HTML5 Canvasを学びたい人に送るCanvasの超基本とその後の学習方針
HTML5 Canvasを学びたい人に送る Canvasの超基本とその後の学習方針
 
[Dl輪読会]bayesian dark knowledge
[Dl輪読会]bayesian dark knowledge[Dl輪読会]bayesian dark knowledge
[Dl輪読会]bayesian dark knowledge
 
44CON London 2015 - Stegosploit - Drive-by Browser Exploits using only Images
44CON London 2015 - Stegosploit - Drive-by Browser Exploits using only Images44CON London 2015 - Stegosploit - Drive-by Browser Exploits using only Images
44CON London 2015 - Stegosploit - Drive-by Browser Exploits using only Images
 
The Role of Enterprise Integration in Digital Transformation
The Role of Enterprise Integration in Digital TransformationThe Role of Enterprise Integration in Digital Transformation
The Role of Enterprise Integration in Digital Transformation
 
Single-Page-Application & REST security
Single-Page-Application & REST securitySingle-Page-Application & REST security
Single-Page-Application & REST security
 

Similar to Case Study of Django: Web Frameworks that are Secure by Default

Django (Web Applications that are Secure by Default)
Django �(Web Applications that are Secure by Default�)Django �(Web Applications that are Secure by Default�)
Django (Web Applications that are Secure by Default)
Kishor Kumar
 
Security testing
Security testingSecurity testing
Security testing
Khizra Sammad
 
2013 OWASP Top 10
2013 OWASP Top 102013 OWASP Top 10
2013 OWASP Top 10
bilcorry
 
Secure coding guidelines
Secure coding guidelinesSecure coding guidelines
Secure coding guidelines
Zakaria SMAHI
 
Owasp top 10 2013
Owasp top 10 2013Owasp top 10 2013
Owasp top 10 2013
Edouard de Lansalut
 
Avoiding Application Attacks: A Guide to Preventing the OWASP Top 10 from Hap...
Avoiding Application Attacks: A Guide to Preventing the OWASP Top 10 from Hap...Avoiding Application Attacks: A Guide to Preventing the OWASP Top 10 from Hap...
Avoiding Application Attacks: A Guide to Preventing the OWASP Top 10 from Hap...
IBM Security
 
Owasp top 10 2017
Owasp top 10 2017Owasp top 10 2017
Owasp top 10 2017
ibrahimumer2
 
Presentation on Top 10 Vulnerabilities in Web Application
Presentation on Top 10 Vulnerabilities in Web ApplicationPresentation on Top 10 Vulnerabilities in Web Application
Presentation on Top 10 Vulnerabilities in Web Application
Md Mahfuzur Rahman
 
Joomla web application development vulnerabilities
Joomla web application development vulnerabilitiesJoomla web application development vulnerabilities
Joomla web application development vulnerabilities
BlazeDream Technologies Pvt Ltd
 
Andrews whitakrer lecture18-security.ppt
Andrews whitakrer lecture18-security.pptAndrews whitakrer lecture18-security.ppt
Andrews whitakrer lecture18-security.ppt
SilverGold16
 
How to Test for The OWASP Top Ten
 How to Test for The OWASP Top Ten How to Test for The OWASP Top Ten
How to Test for The OWASP Top Ten
Security Innovation
 
Web Hacking Series Part 4
Web Hacking Series Part 4Web Hacking Series Part 4
Web Hacking Series Part 4
Aditya Kamat
 
How to Destroy a Database
How to Destroy a DatabaseHow to Destroy a Database
How to Destroy a Database
John Ashmead
 
Shiny, Let’s Be Bad Guys: Exploiting and Mitigating the Top 10 Web App Vulner...
Shiny, Let’s Be Bad Guys: Exploiting and Mitigating the Top 10 Web App Vulner...Shiny, Let’s Be Bad Guys: Exploiting and Mitigating the Top 10 Web App Vulner...
Shiny, Let’s Be Bad Guys: Exploiting and Mitigating the Top 10 Web App Vulner...
Michael Pirnat
 
Web Application Security
Web Application SecurityWeb Application Security
Web Application Security
n|u - The Open Security Community
 
OWASP Top 10 vs Drupal - OWASP Benelux 2012
OWASP Top 10 vs Drupal - OWASP Benelux 2012OWASP Top 10 vs Drupal - OWASP Benelux 2012
OWASP Top 10 vs Drupal - OWASP Benelux 2012
ZIONSECURITY
 
OWASP Top 10 Security Vulnerabilities, and Securing them with Oracle ADF
OWASP Top 10 Security Vulnerabilities, and Securing them with Oracle ADFOWASP Top 10 Security Vulnerabilities, and Securing them with Oracle ADF
OWASP Top 10 Security Vulnerabilities, and Securing them with Oracle ADF
Brian Huff
 
Become a Security Ninja
Become a Security NinjaBecome a Security Ninja
Become a Security Ninja
Paul Gilzow
 
Xss talk, attack and defense
Xss talk, attack and defenseXss talk, attack and defense
Xss talk, attack and defense
Prakashchand Suthar
 
CNIT 129S: Ch 12: Attacking Users: Cross-Site Scripting
CNIT 129S: Ch 12: Attacking Users: Cross-Site ScriptingCNIT 129S: Ch 12: Attacking Users: Cross-Site Scripting
CNIT 129S: Ch 12: Attacking Users: Cross-Site Scripting
Sam Bowne
 

Similar to Case Study of Django: Web Frameworks that are Secure by Default (20)

Django (Web Applications that are Secure by Default)
Django �(Web Applications that are Secure by Default�)Django �(Web Applications that are Secure by Default�)
Django (Web Applications that are Secure by Default)
 
Security testing
Security testingSecurity testing
Security testing
 
2013 OWASP Top 10
2013 OWASP Top 102013 OWASP Top 10
2013 OWASP Top 10
 
Secure coding guidelines
Secure coding guidelinesSecure coding guidelines
Secure coding guidelines
 
Owasp top 10 2013
Owasp top 10 2013Owasp top 10 2013
Owasp top 10 2013
 
Avoiding Application Attacks: A Guide to Preventing the OWASP Top 10 from Hap...
Avoiding Application Attacks: A Guide to Preventing the OWASP Top 10 from Hap...Avoiding Application Attacks: A Guide to Preventing the OWASP Top 10 from Hap...
Avoiding Application Attacks: A Guide to Preventing the OWASP Top 10 from Hap...
 
Owasp top 10 2017
Owasp top 10 2017Owasp top 10 2017
Owasp top 10 2017
 
Presentation on Top 10 Vulnerabilities in Web Application
Presentation on Top 10 Vulnerabilities in Web ApplicationPresentation on Top 10 Vulnerabilities in Web Application
Presentation on Top 10 Vulnerabilities in Web Application
 
Joomla web application development vulnerabilities
Joomla web application development vulnerabilitiesJoomla web application development vulnerabilities
Joomla web application development vulnerabilities
 
Andrews whitakrer lecture18-security.ppt
Andrews whitakrer lecture18-security.pptAndrews whitakrer lecture18-security.ppt
Andrews whitakrer lecture18-security.ppt
 
How to Test for The OWASP Top Ten
 How to Test for The OWASP Top Ten How to Test for The OWASP Top Ten
How to Test for The OWASP Top Ten
 
Web Hacking Series Part 4
Web Hacking Series Part 4Web Hacking Series Part 4
Web Hacking Series Part 4
 
How to Destroy a Database
How to Destroy a DatabaseHow to Destroy a Database
How to Destroy a Database
 
Shiny, Let’s Be Bad Guys: Exploiting and Mitigating the Top 10 Web App Vulner...
Shiny, Let’s Be Bad Guys: Exploiting and Mitigating the Top 10 Web App Vulner...Shiny, Let’s Be Bad Guys: Exploiting and Mitigating the Top 10 Web App Vulner...
Shiny, Let’s Be Bad Guys: Exploiting and Mitigating the Top 10 Web App Vulner...
 
Web Application Security
Web Application SecurityWeb Application Security
Web Application Security
 
OWASP Top 10 vs Drupal - OWASP Benelux 2012
OWASP Top 10 vs Drupal - OWASP Benelux 2012OWASP Top 10 vs Drupal - OWASP Benelux 2012
OWASP Top 10 vs Drupal - OWASP Benelux 2012
 
OWASP Top 10 Security Vulnerabilities, and Securing them with Oracle ADF
OWASP Top 10 Security Vulnerabilities, and Securing them with Oracle ADFOWASP Top 10 Security Vulnerabilities, and Securing them with Oracle ADF
OWASP Top 10 Security Vulnerabilities, and Securing them with Oracle ADF
 
Become a Security Ninja
Become a Security NinjaBecome a Security Ninja
Become a Security Ninja
 
Xss talk, attack and defense
Xss talk, attack and defenseXss talk, attack and defense
Xss talk, attack and defense
 
CNIT 129S: Ch 12: Attacking Users: Cross-Site Scripting
CNIT 129S: Ch 12: Attacking Users: Cross-Site ScriptingCNIT 129S: Ch 12: Attacking Users: Cross-Site Scripting
CNIT 129S: Ch 12: Attacking Users: Cross-Site Scripting
 

Recently uploaded

[Talk] Moving Beyond Spaghetti Infrastructure [AOTB] 2024-07-04.pdf
[Talk] Moving Beyond Spaghetti Infrastructure [AOTB] 2024-07-04.pdf[Talk] Moving Beyond Spaghetti Infrastructure [AOTB] 2024-07-04.pdf
[Talk] Moving Beyond Spaghetti Infrastructure [AOTB] 2024-07-04.pdf
Kief Morris
 
UiPath Community Day Kraków: Devs4Devs Conference
UiPath Community Day Kraków: Devs4Devs ConferenceUiPath Community Day Kraków: Devs4Devs Conference
UiPath Community Day Kraków: Devs4Devs Conference
UiPathCommunity
 
INDIAN AIR FORCE FIGHTER PLANES LIST.pdf
INDIAN AIR FORCE FIGHTER PLANES LIST.pdfINDIAN AIR FORCE FIGHTER PLANES LIST.pdf
INDIAN AIR FORCE FIGHTER PLANES LIST.pdf
jackson110191
 
Implementations of Fused Deposition Modeling in real world
Implementations of Fused Deposition Modeling  in real worldImplementations of Fused Deposition Modeling  in real world
Implementations of Fused Deposition Modeling in real world
Emerging Tech
 
Transcript: Details of description part II: Describing images in practice - T...
Transcript: Details of description part II: Describing images in practice - T...Transcript: Details of description part II: Describing images in practice - T...
Transcript: Details of description part II: Describing images in practice - T...
BookNet Canada
 
Advanced Techniques for Cyber Security Analysis and Anomaly Detection
Advanced Techniques for Cyber Security Analysis and Anomaly DetectionAdvanced Techniques for Cyber Security Analysis and Anomaly Detection
Advanced Techniques for Cyber Security Analysis and Anomaly Detection
Bert Blevins
 
Paradigm Shifts in User Modeling: A Journey from Historical Foundations to Em...
Paradigm Shifts in User Modeling: A Journey from Historical Foundations to Em...Paradigm Shifts in User Modeling: A Journey from Historical Foundations to Em...
Paradigm Shifts in User Modeling: A Journey from Historical Foundations to Em...
Erasmo Purificato
 
Observability For You and Me with OpenTelemetry
Observability For You and Me with OpenTelemetryObservability For You and Me with OpenTelemetry
Observability For You and Me with OpenTelemetry
Eric D. Schabell
 
Quantum Communications Q&A with Gemini LLM
Quantum Communications Q&A with Gemini LLMQuantum Communications Q&A with Gemini LLM
Quantum Communications Q&A with Gemini LLM
Vijayananda Mohire
 
WPRiders Company Presentation Slide Deck
WPRiders Company Presentation Slide DeckWPRiders Company Presentation Slide Deck
WPRiders Company Presentation Slide Deck
Lidia A.
 
RPA In Healthcare Benefits, Use Case, Trend And Challenges 2024.pptx
RPA In Healthcare Benefits, Use Case, Trend And Challenges 2024.pptxRPA In Healthcare Benefits, Use Case, Trend And Challenges 2024.pptx
RPA In Healthcare Benefits, Use Case, Trend And Challenges 2024.pptx
SynapseIndia
 
TrustArc Webinar - 2024 Data Privacy Trends: A Mid-Year Check-In
TrustArc Webinar - 2024 Data Privacy Trends: A Mid-Year Check-InTrustArc Webinar - 2024 Data Privacy Trends: A Mid-Year Check-In
TrustArc Webinar - 2024 Data Privacy Trends: A Mid-Year Check-In
TrustArc
 
Calgary MuleSoft Meetup APM and IDP .pptx
Calgary MuleSoft Meetup APM and IDP .pptxCalgary MuleSoft Meetup APM and IDP .pptx
Calgary MuleSoft Meetup APM and IDP .pptx
ishalveerrandhawa1
 
The Rise of Supernetwork Data Intensive Computing
The Rise of Supernetwork Data Intensive ComputingThe Rise of Supernetwork Data Intensive Computing
The Rise of Supernetwork Data Intensive Computing
Larry Smarr
 
Best Practices for Effectively Running dbt in Airflow.pdf
Best Practices for Effectively Running dbt in Airflow.pdfBest Practices for Effectively Running dbt in Airflow.pdf
Best Practices for Effectively Running dbt in Airflow.pdf
Tatiana Al-Chueyr
 
How to Build a Profitable IoT Product.pptx
How to Build a Profitable IoT Product.pptxHow to Build a Profitable IoT Product.pptx
How to Build a Profitable IoT Product.pptx
Adam Dunkels
 
Comparison Table of DiskWarrior Alternatives.pdf
Comparison Table of DiskWarrior Alternatives.pdfComparison Table of DiskWarrior Alternatives.pdf
Comparison Table of DiskWarrior Alternatives.pdf
Andrey Yasko
 
Active Inference is a veryyyyyyyyyyyyyyyyyyyyyyyy
Active Inference is a veryyyyyyyyyyyyyyyyyyyyyyyyActive Inference is a veryyyyyyyyyyyyyyyyyyyyyyyy
Active Inference is a veryyyyyyyyyyyyyyyyyyyyyyyy
RaminGhanbari2
 
DealBook of Ukraine: 2024 edition
DealBook of Ukraine: 2024 editionDealBook of Ukraine: 2024 edition
DealBook of Ukraine: 2024 edition
Yevgen Sysoyev
 
The Increasing Use of the National Research Platform by the CSU Campuses
The Increasing Use of the National Research Platform by the CSU CampusesThe Increasing Use of the National Research Platform by the CSU Campuses
The Increasing Use of the National Research Platform by the CSU Campuses
Larry Smarr
 

Recently uploaded (20)

[Talk] Moving Beyond Spaghetti Infrastructure [AOTB] 2024-07-04.pdf
[Talk] Moving Beyond Spaghetti Infrastructure [AOTB] 2024-07-04.pdf[Talk] Moving Beyond Spaghetti Infrastructure [AOTB] 2024-07-04.pdf
[Talk] Moving Beyond Spaghetti Infrastructure [AOTB] 2024-07-04.pdf
 
UiPath Community Day Kraków: Devs4Devs Conference
UiPath Community Day Kraków: Devs4Devs ConferenceUiPath Community Day Kraków: Devs4Devs Conference
UiPath Community Day Kraków: Devs4Devs Conference
 
INDIAN AIR FORCE FIGHTER PLANES LIST.pdf
INDIAN AIR FORCE FIGHTER PLANES LIST.pdfINDIAN AIR FORCE FIGHTER PLANES LIST.pdf
INDIAN AIR FORCE FIGHTER PLANES LIST.pdf
 
Implementations of Fused Deposition Modeling in real world
Implementations of Fused Deposition Modeling  in real worldImplementations of Fused Deposition Modeling  in real world
Implementations of Fused Deposition Modeling in real world
 
Transcript: Details of description part II: Describing images in practice - T...
Transcript: Details of description part II: Describing images in practice - T...Transcript: Details of description part II: Describing images in practice - T...
Transcript: Details of description part II: Describing images in practice - T...
 
Advanced Techniques for Cyber Security Analysis and Anomaly Detection
Advanced Techniques for Cyber Security Analysis and Anomaly DetectionAdvanced Techniques for Cyber Security Analysis and Anomaly Detection
Advanced Techniques for Cyber Security Analysis and Anomaly Detection
 
Paradigm Shifts in User Modeling: A Journey from Historical Foundations to Em...
Paradigm Shifts in User Modeling: A Journey from Historical Foundations to Em...Paradigm Shifts in User Modeling: A Journey from Historical Foundations to Em...
Paradigm Shifts in User Modeling: A Journey from Historical Foundations to Em...
 
Observability For You and Me with OpenTelemetry
Observability For You and Me with OpenTelemetryObservability For You and Me with OpenTelemetry
Observability For You and Me with OpenTelemetry
 
Quantum Communications Q&A with Gemini LLM
Quantum Communications Q&A with Gemini LLMQuantum Communications Q&A with Gemini LLM
Quantum Communications Q&A with Gemini LLM
 
WPRiders Company Presentation Slide Deck
WPRiders Company Presentation Slide DeckWPRiders Company Presentation Slide Deck
WPRiders Company Presentation Slide Deck
 
RPA In Healthcare Benefits, Use Case, Trend And Challenges 2024.pptx
RPA In Healthcare Benefits, Use Case, Trend And Challenges 2024.pptxRPA In Healthcare Benefits, Use Case, Trend And Challenges 2024.pptx
RPA In Healthcare Benefits, Use Case, Trend And Challenges 2024.pptx
 
TrustArc Webinar - 2024 Data Privacy Trends: A Mid-Year Check-In
TrustArc Webinar - 2024 Data Privacy Trends: A Mid-Year Check-InTrustArc Webinar - 2024 Data Privacy Trends: A Mid-Year Check-In
TrustArc Webinar - 2024 Data Privacy Trends: A Mid-Year Check-In
 
Calgary MuleSoft Meetup APM and IDP .pptx
Calgary MuleSoft Meetup APM and IDP .pptxCalgary MuleSoft Meetup APM and IDP .pptx
Calgary MuleSoft Meetup APM and IDP .pptx
 
The Rise of Supernetwork Data Intensive Computing
The Rise of Supernetwork Data Intensive ComputingThe Rise of Supernetwork Data Intensive Computing
The Rise of Supernetwork Data Intensive Computing
 
Best Practices for Effectively Running dbt in Airflow.pdf
Best Practices for Effectively Running dbt in Airflow.pdfBest Practices for Effectively Running dbt in Airflow.pdf
Best Practices for Effectively Running dbt in Airflow.pdf
 
How to Build a Profitable IoT Product.pptx
How to Build a Profitable IoT Product.pptxHow to Build a Profitable IoT Product.pptx
How to Build a Profitable IoT Product.pptx
 
Comparison Table of DiskWarrior Alternatives.pdf
Comparison Table of DiskWarrior Alternatives.pdfComparison Table of DiskWarrior Alternatives.pdf
Comparison Table of DiskWarrior Alternatives.pdf
 
Active Inference is a veryyyyyyyyyyyyyyyyyyyyyyyy
Active Inference is a veryyyyyyyyyyyyyyyyyyyyyyyyActive Inference is a veryyyyyyyyyyyyyyyyyyyyyyyy
Active Inference is a veryyyyyyyyyyyyyyyyyyyyyyyy
 
DealBook of Ukraine: 2024 edition
DealBook of Ukraine: 2024 editionDealBook of Ukraine: 2024 edition
DealBook of Ukraine: 2024 edition
 
The Increasing Use of the National Research Platform by the CSU Campuses
The Increasing Use of the National Research Platform by the CSU CampusesThe Increasing Use of the National Research Platform by the CSU Campuses
The Increasing Use of the National Research Platform by the CSU Campuses
 

Case Study of Django: Web Frameworks that are Secure by Default

  • 1. A Case Study of Django Web Applications that are Secure by Default Mohammed ALDOUB @Voulnet
  • 2. Web Security Essentials • The essentials of web application security are still not well understood. • Most developers have little to no idea about web security fundamentals. • Higher adoption to new web technologies, but no accompanying security awareness.
  • 3. Web Security Essentials • The basic idea of web security: Never trust users, and never trust their data. No exceptions. • Many layers exist in web technologies, and therefore many attack vectors and possibilities. • Web developers must understand risks and mitigations for all web layers.
  • 4. Problems in Applying Web Security • Web security cannot be achieved if developers are not well trained in security. Education is key. • Deadlines will almost always result in security vulnerabilities. Developers who are too busy and under pressure will not focus on security. • Security is not integrated early in the development process, so it gets delayed/forgotten.
  • 5. Bad Practices in Web Security • Developers don’t validate user input. • Even if they validate it, they do it poorly or out of context. • Developers make wrong assumptions about security: – “It’s ok, we use SSL!” – “The Firewall will protect us” – “Who will think of attacking this function?” • Most developers copy/paste code from the internet. Admit it.
  • 6. Bad Practices in Web Security • Session/password management is done poorly: – Sessions are easy to forge by attackers. – Passwords are stored as plaintext. • Server & Database configuration/security are not understood by web developers. • Developers don’t realize the threats on end users: – Cross Site Scripting (XSS) – Cross Site Request Forgery (CSRF)
  • 7. • Django is a Web Application Framework, written in Python • Allows rapid, secure and agile web development. • Write better web applications in less time & effort.
  • 8. • Django is loaded with security features that are used by default. • Security by default provides great protection to developers with no security experience • Django makes it more difficult to write insecure code.
  • 9. • Django is used by many popular websites/services:
  • 10. Security Features of Django • Django provides many default protections against web threats, mainly against problems of: – User Management – Authorization – Cookies – SQL Injection – Cross Site Scripting (XSS) – Cross Site Request Forgery (CSRF) – Clickjacking – Files – E-mail Header Injection – Cryptography – Directory Traversal
  • 11. User Management • Developers make many mistakes in user management. • Passwords are stored/transferred as plaintext. • Users are exposed if databases get leaked. • Weak authentication methods are used by inexperienced developers.
  • 12. User Management • Django provides a default User model that can be used in any website. It comes equipped with correct session management, permissions, registration and login. • Developers don’t need to re-invent the wheel and re- introduce user management risks. • Django provides strong password hashing methods (bcrypt, PBKDF2, SHA1), with increasing work factors. • • Django makes passwords very hard to crack.
  • 13. User Management • Django provides easy methods for user management such as is_authenticated(), permission_required(), requires_login(), and more, offsetting difficult session and permission code away from the developer. • Django provides secure default password reset and login redirection functionality. Developers don’t need to create password reset forms and introduce risks. • By using Django’s user management module, developers will not make mistakes such as ‘admin=true’ in cookies!
  • 14. Clickjacking • Clickjacking is an attack where an attackers loads an invisible page over a visible one. The user thinks he is clicking on the visible page, but he’s actually clicking on invisible buttons and links. • Can be used to trick users into buying items, deleting content or adding fake friends online. • Django provides direct protection against Clickjacking attacks using the X-Frame-Options header. Only one line of code!
  • 15. Clickjacking Example Image taken from ‘Busting Frame Busting’ research paper (found in references)
  • 16. Cross Site Scripting (XSS) • XSS is one of the most dangerous and popular attacks, where users instead of servers are targeted. • In an XSS attack, an attacker runs evil scripts on the user’s browser, through a vulnerable website. • It can be used to steal cookies, accounts, install malware, deface websites and many more uses.
  • 17. Cross Site Scripting (XSS) • XSS is very easy to introduce by ignorant developers, example: <?php echo "Results for: " . $_GET["query"]; ?> • It’s okay if the search query was Car, but what if the attacker entered… <script>alert(document.cookie)</script>
  • 19. Cross Site Scripting (XSS) • Evidently XSS is a critical attack, so Django provides great default protections against it. • HTML output is always escaped by Django to ensure that user input cannot execute code. • Django’s templating engine provides autoescaping. • HTML Attributes must always be quoted so that Django’s protections can be activated. • For extra XSS protections, use ESAPI, lxml, html5lib, Bleach or Markdown
  • 20. SQL Injection (SQLi) • SQL Injection is a dangerous attack in which evil data is sent to the database to be executed as destructive commands. • Developers write SQL queries in a wrong way, allowing attackers to inject SQL commands into the query, to be executed as SQL code. Example: string sql = “SELECT * FROM USERS WHERE name=‘” + Request[‘username’] + “’”; • Looks innocent, but what if the user entered ‘; DROP TABLE USERS;-- ?
  • 22. SQL Injection (SQLi) • SQL injection attacks are used to read and corrupt databases, take complete control over servers as well as modify web pages (and therefore steal user sessions or install malware) • The good news is that Django provides excellent defense against SQL Injection! • Django uses ORM and query sets to make sure all input is escaped & validated. • Developers do not need to write any SQL. Just write Python classes and Django will convert them to SQL securely!
  • 23. SQL Injection (SQLi) • No matter where input comes from (GET,POST,COOKIES), Django will escape all input that goes to the database. • Even if developers needed to write raw SQL, they can use placeholders like "Select * from users where id = %s ” which will safely validate input.
  • 24. Cookies • Django sets cookies to HttpOnly by default, to prevent sessions from getting stolen in most browsers. • Session ID are never used in URLs even if cookies are disabled. • Django will always give a new session ID if a user tried a non- existent one, to protect against session fixation. • Cookies can be digitally signed and time-stamped, to protect against tampering of data.
  • 25. Files • Django provides excellent protection to files. • No webroot concept in Django. Only the directories and files you allow are requested. Even if attackers upload a file, it is only downloaded if you allow it in URLConf. • Django executes Python code from the outside of the web root, so attackers cannot retrieve any files not explicitly allowed from the web root.
  • 26. Cross Site Request Forgery (CSRF) • CSRF is an attack where an attacker can force users of a website to perform actions without their permission. • If a user is logged into website A, an attacker can let a user visit website B, which will perform actions on website A on behalf of the user. • This happens because the forms in website A are not protected against CSRF. • Basically CSRF means evil websites can let users of other websites perform actions without user permission.
  • 27. Cross Site Request Forgery (CSRF) • Example: A form in website A allows a logged in user to delete his account. If there is no CSRF protection, website B can force visitors to delete their account on website A. • Example: Suppose website B has this HTML form in its code. What happens if a user of website A visits B? <form action="http://websiteA.com/deleteMyAccount.php” method=”post” > </form>
  • 29. Cross Site Request Forgery (CSRF) • The effects of CSRF is that attackers can make users perform ANY action on the vulnerable website. • Django provides CSRF protections for all POST,PUT,DELETE requests (according to RFC2616). • If website A used Django CSRF protection, the form would be: <form action=”/deleteMyAccount.php” method=”post” > <input type='hidden' name='csrfmiddlewaretoken' value='Aes4YiAfBQwCS8d4T1ngDAa6jJQiYDFs' /> </form>
  • 30. E-mail Header Injection • E-mail Header injection is a less popular attack that targets weak email-sending forms in websites. • By crafting a special string, attackers can use your email form to spend spam through your mail server, resulting in your domains/IPs getting blocked and possible worse effects. • Example email form: To: mycustomer@example.com Subject: Customer feedback <email content here>
  • 31. E-mail Header Injection • What if the attacker supplies the following data as the email content? They will be able to use your website as a spam base. • “ncc: spamVictim@example.comn<spam content>” • It would be: To: mycustomer@example.com Subject: Customer feedback cc: spamVictim@example.com <spam message content, buy drugs, lose weight or something> • Django provides default protection by using the built-in email form.
  • 32. Final Remarks • It must be understood that nothing can protect developers if they refuse to learn about web security and vulnerabilities. • The point of Django’s default security features is to make it very easy to add security, and very difficult to remove security. • However, developers still need to learn the basics of security and risk assessment. • Knowledge is the best defense against web attacks.
  • 33. References • http://davidbliss.com/sites-built-using-django • https://docs.djangoproject.com/en/1.4/topics/security/ • http://www.djangobook.com/en/2.0/chapter20/ • http://seclab.stanford.edu/websec/framebusting/framebust.p df
  • 34. Questions? • Do not hesitate to ask any question! • Do not hesitate to let your developers try Django in the workplace! It could be your road to increased productivity and security!