sanitizing, validating and escaping in wordpress themes and plugins

35
Sanitizing, Validating and Escaping in WordPress Themes and Plugins by Micah Wood @wpscholar wpscholar.com/wpyall2014

Upload: micah-wood

Post on 15-Jun-2015

1.684 views

Category:

Technology


1 download

DESCRIPTION

How secure is your WordPress theme or plugin? Are you confident that you have protected yourself, your clients or your users against the most common hacks? Validating, sanitizing and escaping are techniques that are foundational to the security of your website, application or software product. Learn how WordPress makes it easy for you to secure your code and start writing better code today!

TRANSCRIPT

Page 1: Sanitizing, Validating and Escaping in WordPress Themes and Plugins

Sanitizing, Validating and Escapingin WordPress Themes and Plugins

by Micah Wood @wpscholar

wpscholar.com/wpyall2014

Page 2: Sanitizing, Validating and Escaping in WordPress Themes and Plugins

SanitizationCleaning user input

Page 3: Sanitizing, Validating and Escaping in WordPress Themes and Plugins

Sanitization Example

Page 4: Sanitizing, Validating and Escaping in WordPress Themes and Plugins

Sanitize Text Fields

Page 5: Sanitizing, Validating and Escaping in WordPress Themes and Plugins

Sanitize URL Slugs

Page 6: Sanitizing, Validating and Escaping in WordPress Themes and Plugins

Sanitize URLs

Page 7: Sanitizing, Validating and Escaping in WordPress Themes and Plugins

Sanitize Emails

Page 8: Sanitizing, Validating and Escaping in WordPress Themes and Plugins

Sanitize HTML Classes

Page 9: Sanitizing, Validating and Escaping in WordPress Themes and Plugins

Sanitize HTML

Page 10: Sanitizing, Validating and Escaping in WordPress Themes and Plugins

Other Sanitization Functions• sanitize_file_name() • sanitize_key() • sanitize_mime_type() • sanitize_sql_orderby() • sanitize_title_for_query() • sanitize_title_with_dashes() • sanitize_user()

Page 11: Sanitizing, Validating and Escaping in WordPress Themes and Plugins

ValidationChecking user input

Page 12: Sanitizing, Validating and Escaping in WordPress Themes and Plugins

Validation Example

Page 13: Sanitizing, Validating and Escaping in WordPress Themes and Plugins

Data Type

Page 14: Sanitizing, Validating and Escaping in WordPress Themes and Plugins

Validate HTML

Page 15: Sanitizing, Validating and Escaping in WordPress Themes and Plugins

Validate Meta

Page 16: Sanitizing, Validating and Escaping in WordPress Themes and Plugins

Validate Capability

Page 17: Sanitizing, Validating and Escaping in WordPress Themes and Plugins

Validate Option

Page 18: Sanitizing, Validating and Escaping in WordPress Themes and Plugins

Validate Intention

Page 19: Sanitizing, Validating and Escaping in WordPress Themes and Plugins

EscapingSecuring output

Page 20: Sanitizing, Validating and Escaping in WordPress Themes and Plugins

Escape HTML Attributes

Page 21: Sanitizing, Validating and Escaping in WordPress Themes and Plugins

Escape HTML Attributes

Page 22: Sanitizing, Validating and Escaping in WordPress Themes and Plugins

Escape HTML

Page 23: Sanitizing, Validating and Escaping in WordPress Themes and Plugins

Escape HTML

Page 24: Sanitizing, Validating and Escaping in WordPress Themes and Plugins

Escape URLs

Page 25: Sanitizing, Validating and Escaping in WordPress Themes and Plugins

Escape Textareas

Page 26: Sanitizing, Validating and Escaping in WordPress Themes and Plugins

Escape Inline JavaScript

Page 27: Sanitizing, Validating and Escaping in WordPress Themes and Plugins

Escape SQL Queries

Permanent link to this comic: http://xkcd.com/327/

Page 28: Sanitizing, Validating and Escaping in WordPress Themes and Plugins

Escape SQL Queries

Page 29: Sanitizing, Validating and Escaping in WordPress Themes and Plugins

Escape SQL Queries

Page 30: Sanitizing, Validating and Escaping in WordPress Themes and Plugins

Escape SQL Queries

Page 31: Sanitizing, Validating and Escaping in WordPress Themes and Plugins

Escape SQL Queries

Page 32: Sanitizing, Validating and Escaping in WordPress Themes and Plugins

Escape SQL Queries

Page 33: Sanitizing, Validating and Escaping in WordPress Themes and Plugins

Tips• Search for echo $ and echo get_ • Use VIP Scanner if you are creating a theme

Page 34: Sanitizing, Validating and Escaping in WordPress Themes and Plugins

Trust WordPress

Page 35: Sanitizing, Validating and Escaping in WordPress Themes and Plugins

Questions?