Secure Coding
the bare minimum – understand the problem
Introduction
• Andi R Djunaedi
• Software Engineer at blibli.com since March 2014
• https://www.linkedin.com/in/andird
• https://github.com/andirdju
• https://github.com/bliblidotcom
Overview – understand the problem
• Theory
• Code
• Web application -> we’ll talk about this
• Operating System
• Network
• Other?
• Importance
• Practice, get your laptop, pc or whatever
• How it works
Theory - Code
• Web Applications
• OWASP Top 10 List - new list every 3 years
• https://www.owasp.org/index.php/Top_10_2013-Top_10
• https://www.owasp.org/index.php/Top_10_2010-Main
• Top 3 - Samples
• SQL Injection
• Arbitrary SQL query execution
• Session Fixation
• Assume other’s Identity
• Cross Site Scripting
• Arbitrary client code (javascript, html) execution
Importance – Non Security
• Performance
• poor user experience
• redesign, refactor, make it faster
• Code coverage
• buggy, spent more time on fixing bug
• stop the leak
• When
• next iteration
Importance – Security
• How to fix security incidents ???
• Personal/Financial data stolen
• Data deleted
• When
• NOW !!!
Practice – Understand the problem
• Run bad web app
• OWASP Top 3 Sample
• SQL Injection
• Session Fixation
• Cross Site Scripting
• Exercise
Run – web app
• Git, Jdk 8, Maven
• https://github.com/bliblidotcom/sample-basic-secure-coding
• In memory H2 database
• Embedded server
• mvn spring-boot:run
• http://localhost:8080
Get your laptop – SQL Injection
• Demo – Valid use case is only find one record by id
• Read all records
• Insert new records
• Delete all records
Get your laptop – Session Fixation
• Demo - session info only known to the user
• Bad person(A) create new session
• Persuade unsuspecting person(B) via phishing
• Bad person(A) get session information of other person(B)
Get your laptop – Cross Site Scripting
• Demo – valid use case only displays list of data
• Can be done via the same SQL injection
• Html
• Add html form
• Javascript
• Add pop up
• Add redirect
What’s Next
• Crack the other API
• it have similar problems
• Fix the exploit
• Don’t repeat yourself by creating custom solutions
• SQL named parameter
• Regenerate session id
• Content escaping

More Related Content

PPTX
Node.js Dublin Meetup April 2014
PDF
Penny coventry fiddler-spsbe23
PPTX
SenchaCon 2016: Being Productive with the New Sencha Fiddle - Mitchell Simoens
PPTX
Getting Started with ASP.NET 5
PPTX
Building rest services using aspnetwebapi
PPTX
10 tips to make your ASP.NET Apps Faster
PPTX
Writing power shell the right tool for the job
PDF
Apply chat automation today - work smarter tomorrow
Node.js Dublin Meetup April 2014
Penny coventry fiddler-spsbe23
SenchaCon 2016: Being Productive with the New Sencha Fiddle - Mitchell Simoens
Getting Started with ASP.NET 5
Building rest services using aspnetwebapi
10 tips to make your ASP.NET Apps Faster
Writing power shell the right tool for the job
Apply chat automation today - work smarter tomorrow

What's hot (20)

PDF
CrossWorlds: Unleash the Power of Domino for Connections Development
PPTX
SenchaCon 2016: Turbocharge your Ext JS App - Per Minborg, Anselm McClain, Jo...
PDF
O365Con19 - Sharing Code Efficiently in your Organisation - Elio Struyf
PDF
Secure your environment by automation
PDF
Automating security with PowerShell
PDF
Paint it blue with PowerShell
PDF
TDD a REST API With Node.js and MongoDB
PDF
Apply chat automation today - work smarter tomorrow
PPTX
Building your own JEA Configuration
PDF
Manage your infrastructure with PowerShell
PDF
Reach the next level with PowerShell
PPTX
Saving Time By Testing With Jest
PPTX
SPSNL17 - Getting started with SharePoint development for the reluctant IT Pr...
PDF
Chat automation in a Modern IT environment
PPT
Next generation frontend tooling
PPTX
Code review and security audit in private cloud - Arief Karfianto
PDF
Planidoo & Zotonic
PPTX
Design for scale
PPTX
Porting ASP.NET applications to Windows Azure
PPTX
From zero to hero – learn how to automate from the gui
CrossWorlds: Unleash the Power of Domino for Connections Development
SenchaCon 2016: Turbocharge your Ext JS App - Per Minborg, Anselm McClain, Jo...
O365Con19 - Sharing Code Efficiently in your Organisation - Elio Struyf
Secure your environment by automation
Automating security with PowerShell
Paint it blue with PowerShell
TDD a REST API With Node.js and MongoDB
Apply chat automation today - work smarter tomorrow
Building your own JEA Configuration
Manage your infrastructure with PowerShell
Reach the next level with PowerShell
Saving Time By Testing With Jest
SPSNL17 - Getting started with SharePoint development for the reluctant IT Pr...
Chat automation in a Modern IT environment
Next generation frontend tooling
Code review and security audit in private cloud - Arief Karfianto
Planidoo & Zotonic
Design for scale
Porting ASP.NET applications to Windows Azure
From zero to hero – learn how to automate from the gui
Ad

Similar to Tech IT Easy x DevTalk : "Secure Your Coding with OWASP" (20)

KEY
Android lessons you won't learn in school
PPTX
Debugging the Web with Fiddler
PDF
Infinum Android Talks #13 - Developing Android Apps Like Navy Seals by Ivan Kušt
PPTX
Introduction to cypress in Angular (Chinese)
PPTX
External JavaScript Widget Development Best Practices (updated) (v.1.1)
PDF
The Python in the Apple
PDF
Practical solutions for connections administrators lite
PDF
Do you lose sleep at night?
PPT
OpenShift Origin: Build a PaaS Just Like Red Hats
PDF
Building RESTful APIs
PPT
Node and Azure
PPTX
External JavaScript Widget Development Best Practices
PPTX
Java scriptwidgetdevelopmentjstanbul2012
PPTX
Creating a Documentation Portal
PDF
How to Contribute to Apache Usergrid
PDF
MEAN Stack WeNode Barcelona Workshop
PPTX
OpenIDM - Flexible Provisioning Platform - April 28 Webinar
PDF
Extending WordPress as a pro
PPTX
Highlights from microsoft ignite 2015
PDF
Node.js to the rescue
Android lessons you won't learn in school
Debugging the Web with Fiddler
Infinum Android Talks #13 - Developing Android Apps Like Navy Seals by Ivan Kušt
Introduction to cypress in Angular (Chinese)
External JavaScript Widget Development Best Practices (updated) (v.1.1)
The Python in the Apple
Practical solutions for connections administrators lite
Do you lose sleep at night?
OpenShift Origin: Build a PaaS Just Like Red Hats
Building RESTful APIs
Node and Azure
External JavaScript Widget Development Best Practices
Java scriptwidgetdevelopmentjstanbul2012
Creating a Documentation Portal
How to Contribute to Apache Usergrid
MEAN Stack WeNode Barcelona Workshop
OpenIDM - Flexible Provisioning Platform - April 28 Webinar
Extending WordPress as a pro
Highlights from microsoft ignite 2015
Node.js to the rescue
Ad

Recently uploaded (20)

PDF
Getting started with AI Agents and Multi-Agent Systems
PDF
A comparative study of natural language inference in Swahili using monolingua...
PDF
A contest of sentiment analysis: k-nearest neighbor versus neural network
PDF
sbt 2.0: go big (Scala Days 2025 edition)
PDF
ENT215_Completing-a-large-scale-migration-and-modernization-with-AWS.pdf
PDF
Abstractive summarization using multilingual text-to-text transfer transforme...
PDF
A proposed approach for plagiarism detection in Myanmar Unicode text
PDF
Convolutional neural network based encoder-decoder for efficient real-time ob...
PPTX
AI IN MARKETING- PRESENTED BY ANWAR KABIR 1st June 2025.pptx
PPTX
Benefits of Physical activity for teenagers.pptx
PDF
How ambidextrous entrepreneurial leaders react to the artificial intelligence...
PDF
The influence of sentiment analysis in enhancing early warning system model f...
PDF
A review of recent deep learning applications in wood surface defect identifi...
PDF
sustainability-14-14877-v2.pddhzftheheeeee
PDF
From MVP to Full-Scale Product A Startup’s Software Journey.pdf
PDF
Consumable AI The What, Why & How for Small Teams.pdf
PDF
Zenith AI: Advanced Artificial Intelligence
PDF
Two-dimensional Klein-Gordon and Sine-Gordon numerical solutions based on dee...
PDF
Five Habits of High-Impact Board Members
PDF
1 - Historical Antecedents, Social Consideration.pdf
Getting started with AI Agents and Multi-Agent Systems
A comparative study of natural language inference in Swahili using monolingua...
A contest of sentiment analysis: k-nearest neighbor versus neural network
sbt 2.0: go big (Scala Days 2025 edition)
ENT215_Completing-a-large-scale-migration-and-modernization-with-AWS.pdf
Abstractive summarization using multilingual text-to-text transfer transforme...
A proposed approach for plagiarism detection in Myanmar Unicode text
Convolutional neural network based encoder-decoder for efficient real-time ob...
AI IN MARKETING- PRESENTED BY ANWAR KABIR 1st June 2025.pptx
Benefits of Physical activity for teenagers.pptx
How ambidextrous entrepreneurial leaders react to the artificial intelligence...
The influence of sentiment analysis in enhancing early warning system model f...
A review of recent deep learning applications in wood surface defect identifi...
sustainability-14-14877-v2.pddhzftheheeeee
From MVP to Full-Scale Product A Startup’s Software Journey.pdf
Consumable AI The What, Why & How for Small Teams.pdf
Zenith AI: Advanced Artificial Intelligence
Two-dimensional Klein-Gordon and Sine-Gordon numerical solutions based on dee...
Five Habits of High-Impact Board Members
1 - Historical Antecedents, Social Consideration.pdf

Tech IT Easy x DevTalk : "Secure Your Coding with OWASP"

  • 1. Secure Coding the bare minimum – understand the problem
  • 2. Introduction • Andi R Djunaedi • Software Engineer at blibli.com since March 2014 • https://www.linkedin.com/in/andird • https://github.com/andirdju • https://github.com/bliblidotcom
  • 3. Overview – understand the problem • Theory • Code • Web application -> we’ll talk about this • Operating System • Network • Other? • Importance • Practice, get your laptop, pc or whatever • How it works
  • 4. Theory - Code • Web Applications • OWASP Top 10 List - new list every 3 years • https://www.owasp.org/index.php/Top_10_2013-Top_10 • https://www.owasp.org/index.php/Top_10_2010-Main • Top 3 - Samples • SQL Injection • Arbitrary SQL query execution • Session Fixation • Assume other’s Identity • Cross Site Scripting • Arbitrary client code (javascript, html) execution
  • 5. Importance – Non Security • Performance • poor user experience • redesign, refactor, make it faster • Code coverage • buggy, spent more time on fixing bug • stop the leak • When • next iteration
  • 6. Importance – Security • How to fix security incidents ??? • Personal/Financial data stolen • Data deleted • When • NOW !!!
  • 7. Practice – Understand the problem • Run bad web app • OWASP Top 3 Sample • SQL Injection • Session Fixation • Cross Site Scripting • Exercise
  • 8. Run – web app • Git, Jdk 8, Maven • https://github.com/bliblidotcom/sample-basic-secure-coding • In memory H2 database • Embedded server • mvn spring-boot:run • http://localhost:8080
  • 9. Get your laptop – SQL Injection • Demo – Valid use case is only find one record by id • Read all records • Insert new records • Delete all records
  • 10. Get your laptop – Session Fixation • Demo - session info only known to the user • Bad person(A) create new session • Persuade unsuspecting person(B) via phishing • Bad person(A) get session information of other person(B)
  • 11. Get your laptop – Cross Site Scripting • Demo – valid use case only displays list of data • Can be done via the same SQL injection • Html • Add html form • Javascript • Add pop up • Add redirect
  • 12. What’s Next • Crack the other API • it have similar problems • Fix the exploit • Don’t repeat yourself by creating custom solutions • SQL named parameter • Regenerate session id • Content escaping