{"id":411929,"date":"2014-02-05T04:28:29","date_gmt":"2014-02-05T04:28:29","guid":{"rendered":"https:\/\/2014.stlouis.wordcamp.org\/?post_type=wcb_session&#038;p=411929"},"modified":"2014-03-07T02:38:58","modified_gmt":"2014-03-07T02:38:58","slug":"developer-session-x","status":"publish","type":"wcb_session","link":"https:\/\/stlouis.wordcamp.org\/2014\/session\/developer-session-x\/","title":{"rendered":"Code with Care: Write Secure Plugins and Themes"},"content":{"rendered":"<p>Learn how to protect sites from XSS (cross-site scripting), MySQL injection and unfiltered input attacks during common WordPress development practices. I will provide the security best-practices &#8220;how and why&#8221; for each of the following:<\/p>\n<p>-saving post and post meta input.<br \/>\n-displaying post and post meta values.<br \/>\n-responding to an AJAX request.<br \/>\n-parsing query strings.<br \/>\n-querying the WordPress database.<br \/>\n-saving theme or plugin options with the Settings API.<br \/>\n-retrieving theme or plugin options from the Settings API.<\/p>\n<p>Speaker slides can be found here:\u00a0<a href=\"https:\/\/speakerdeck.com\/rachelbaker\/code-with-care-write-secure-themes-and-plugins\">https:\/\/speakerdeck.com\/rachelbaker\/code-with-care-write-secure-themes-and-plugins<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Learn how to protect sites from XSS (cross-site scripting), MySQL injection and unfiltered input attacks during common WordPress development practices. I will provide the security best-practices &#8220;how and why&#8221; for each of the following: -saving post and post meta input. &hellip; <a href=\"https:\/\/stlouis.wordcamp.org\/2014\/session\/developer-session-x\/\">Continue reading <span class=\"screen-reader-text\">Code with Care: Write Secure Plugins and Themes<\/span>  <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":6695565,"featured_media":0,"template":"","meta":{"jetpack_post_was_ever_published":false,"_wcpt_session_time":1393689600,"_wcpt_session_duration":3000,"_wcpt_session_type":"session","_wcpt_session_slides":"","_wcpt_session_video":"","_wcpt_speaker_id":[445198],"footnotes":""},"session_track":[254471],"session_category":[],"class_list":["post-411929","wcb_session","type-wcb_session","status-publish","hentry","wcb_track-developer-ii"],"jetpack_sharing_enabled":true,"session_date_time":{"date":"March 1, 2014","time":"4:00 pm"},"session_speakers":[{"id":"445198","slug":"rachel-baker","name":"Rachel Baker","link":"https:\/\/stlouis.wordcamp.org\/2014\/speaker\/rachel-baker\/"}],"session_cats_rendered":null,"_links":{"self":[{"href":"https:\/\/stlouis.wordcamp.org\/2014\/wp-json\/wp\/v2\/sessions\/411929","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/stlouis.wordcamp.org\/2014\/wp-json\/wp\/v2\/sessions"}],"about":[{"href":"https:\/\/stlouis.wordcamp.org\/2014\/wp-json\/wp\/v2\/types\/wcb_session"}],"version-history":[{"count":6,"href":"https:\/\/stlouis.wordcamp.org\/2014\/wp-json\/wp\/v2\/sessions\/411929\/revisions"}],"predecessor-version":[{"id":570261,"href":"https:\/\/stlouis.wordcamp.org\/2014\/wp-json\/wp\/v2\/sessions\/411929\/revisions\/570261"}],"speakers":[{"embeddable":true,"href":"https:\/\/stlouis.wordcamp.org\/2014\/wp-json\/wp\/v2\/speakers\/445198"}],"author":[{"embeddable":true,"href":"https:\/\/stlouis.wordcamp.org\/2014\/wp-json\/wporg\/v1\/users\/rachelbaker"}],"wp:attachment":[{"href":"https:\/\/stlouis.wordcamp.org\/2014\/wp-json\/wp\/v2\/media?parent=411929"}],"wp:term":[{"taxonomy":"wcb_track","embeddable":true,"href":"https:\/\/stlouis.wordcamp.org\/2014\/wp-json\/wp\/v2\/session_track?post=411929"},{"taxonomy":"wcb_session_category","embeddable":true,"href":"https:\/\/stlouis.wordcamp.org\/2014\/wp-json\/wp\/v2\/session_category?post=411929"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}