Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Plugin Security
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Brad Parbs
July 26, 2014
Technology
3
150
Plugin Security
Brad Parbs
July 26, 2014
Tweet
Share
More Decks by Brad Parbs
See All by Brad Parbs
Learn to Love the Terminal
bradp
0
690
Extremely Powerful Local WordPress Development with Vagrant and Friends
bradp
1
170
Extremely Powerful Local WordPress Development with Vagrant and Friends - WordCamp Grand Rapids 2014
bradp
1
310
Web414 - Writing Clean, Clear, & Semantic Markup with HTML5
bradp
0
400
WordCamp Baltimore - Let's Get Sassy!
bradp
2
500
Starter Themes for Appleton WordPress Meetup
bradp
1
180
#WCGR - Getting SASSy
bradp
4
280
#WCPVD - Getting SASSy
bradp
2
280
WordCamp Chicago 2013 - Template Hiearchy
bradp
1
170
Other Decks in Technology
See All in Technology
Models vs Bounded Contexts for Domain Modularizati...
ewolff
0
220
EventBridge API Destination × AgentCore Runtimeで実現するLambdaレスなイベント駆動エージェント
har1101
7
250
AI Agent Standards and Protocols: a Walkthrough of MCP, A2A, and more...
glaforge
1
540
BiDiってなんだ?
tomorrowkey
2
480
GitHub Copilot CLI 現状確認会議
torumakabe
12
4.4k
AWS Devops Agent ~ 自動調査とSlack統合をやってみた! ~
kubomasataka
2
160
JuliaTokaiとしてはこれが最後かもしれない(仮) for NGK2026S
antimon2
0
120
「全社導入」は結果。1人の熱狂が組織に伝播したmikanのn8n活用
sota_mikami
0
460
OCI技術資料 : OS管理ハブ 概要
ocise
2
4.2k
Zephyr RTOS の発表をOpen Source Summit Japan 2025で行った件
iotengineer22
0
250
3リポジトリーを2ヶ月でモノレポ化した話 / How I turned 3 repositories into a monorepo in 2 months
kubode
0
100
持続可能な開発のためのミニマリズム
sansantech
PRO
4
560
Featured
See All Featured
Agile Actions for Facilitating Distributed Teams - ADO2019
mkilby
0
110
Automating Front-end Workflow
addyosmani
1371
200k
ラッコキーワード サービス紹介資料
rakko
1
2.1M
Leo the Paperboy
mayatellez
4
1.3k
Redefining SEO in the New Era of Traffic Generation
szymonslowik
1
200
16th Malabo Montpellier Forum Presentation
akademiya2063
PRO
0
42
The Curious Case for Waylosing
cassininazir
0
220
Discover your Explorer Soul
emna__ayadi
2
1.1k
Embracing the Ebb and Flow
colly
88
5k
Unsuck your backbone
ammeep
671
58k
DevOps and Value Stream Thinking: Enabling flow, efficiency and business value
helenjbeal
1
85
The Hidden Cost of Media on the Web [PixelPalooza 2025]
tammyeverts
2
150
Transcript
Security for Your Plugins
I’m Brad Parbs.
Nathan, you should watch Band of Brothers.
Let’s talk about what sucks in WordPress.
None
None
“20% of the 50 most popular WordPress plugins are vulnerable
to common Web attacks. This amounts to nearly 8 million downloads of vulnerable plugins.” Checkmarx, an application security company
Things that happen when your stuff isn’t secure.
None
How do we make sure this doesn’t happen?
Always develop with debugging ON
define( 'WP_DEBUG', true ); define( 'WP_DEBUG_DISPLAY', false );
define( 'WP_DEBUG_LOG', true ); define( 'SCRIPT_DEBUG', true ); define( 'WP_CACHE', false );
Sanitize all the things
intval(); absint();
wp_kses();
sanitize_title();
sanitize_email() sanitize_file_name() sanitize_html_class() sanitize_key() sanitize_meta()
sanitize_mime_type() sanitize_option() sanitize_sql_orderby() sanitize_post_field() sanitize_text_field() sanitize_title() sanitize_title_for_query() sanitize_title_with_dashes() sanitize_user()
Escape all the things
esc_html();
esc_textarea();
esc_attr();
esc_url();
http://codex.wordpress.org/Data_Validation
Database Queries
$wpdb-‐>insert();
$wpdb-‐>update();
$wpdb-‐>prepare();
Nonces
wp_nonce_url();
wp_nonce_field();
wp_create_nonce();
check_admin_referer();
wp_verify_nonce();
Remote Data
CURL is bad.
For real, CURL is bad.
wp_remote_get();
wp_remote_post();
wp_remote_request();
Check capabilities & roles
current_user_can();
Use native functions
A story about TimThumb
Questions?
None