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
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
WebDriver BiDi 2025年のふりかえり
yotahada3
1
160
Databricks Free Editionで始めるLakeflow SDP
taka_aki
0
130
20260114_データ横丁 新年LT大会:2026年の抱負
taromatsui_cccmkhd
0
300
製造業から学んだ「本質を守り現場に合わせるアジャイル実践」
kamitokusari
0
750
Data Intelligence on Lakehouse Paradigm
scotthsieh825
0
160
ALB「証明書上限問題」からの脱却
nishiokashinji
0
210
The Engineer with a Three-Year Cycle
e99h2121
0
150
習慣とAIと環境 — 技術探求を続ける3つの鍵
azukiazusa1
2
560
旬のブリと旬の技術で楽しむ AI エージェント設計開発レシピ
chack411
1
290
複雑さを受け入れるか、拒むか? - 事業成長とともに育ったモノリスを前に私が考えたこと #RSGT2026
murabayashi
1
2k
モノタロウ x クリエーションラインで実現する チームトポロジーにおける プラットフォームチーム・ ストリームアラインドチームの 効果的なコラボレーション
creationline
0
950
フルカイテン株式会社 エンジニア向け採用資料
fullkaiten
0
10k
Featured
See All Featured
Sam Torres - BigQuery for SEOs
techseoconnect
PRO
0
170
How To Speak Unicorn (iThemes Webinar)
marktimemedia
1
370
Evolving SEO for Evolving Search Engines
ryanjones
0
99
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
31
3.1k
Jess Joyce - The Pitfalls of Following Frameworks
techseoconnect
PRO
1
48
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
55
3.2k
Darren the Foodie - Storyboard
khoart
PRO
2
2.2k
How GitHub (no longer) Works
holman
316
140k
Bash Introduction
62gerente
615
210k
Navigating the moral maze — ethical principles for Al-driven product design
skipperchong
1
230
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
31
9.8k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
666
130k
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