{"id":205,"date":"2015-05-05T21:05:15","date_gmt":"2015-05-05T21:05:15","guid":{"rendered":"https:\/\/2015.winnipeg.wordcamp.org\/?post_type=wcb_session&#038;p=205"},"modified":"2015-05-27T21:00:25","modified_gmt":"2015-05-27T21:00:25","slug":"introduction-to-writing-secure-wordpress-code","status":"publish","type":"wcb_session","link":"https:\/\/winnipeg.wordcamp.org\/2015\/session\/introduction-to-writing-secure-wordpress-code\/","title":{"rendered":"Introduction to writing secure WordPress code"},"content":{"rendered":"<p>We will go over some of the most common attack vectors in code and how to protect against them while you write or edit a theme or plugin.<\/p>\n<ul class=\"alignleft\">\n<li>Escaping, Escaping again, Escaping a third time\n<li>SQL sanitization (or don&#8217;t do direct db queries)\n<li>General Sanitization \/ Validation\n<li>XSS in JS (or don&#8217;t concat those strings)\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>We will go over some of the most common attack vectors in code and how to protect against them while you write or edit a theme or plugin. Escaping, Escaping again, Escaping a third time SQL sanitization (or don&#8217;t do direct db queries) General Sanitization \/ Validation XSS in JS (or don&#8217;t concat those strings)<\/p>\n","protected":false},"author":5754806,"featured_media":0,"template":"","meta":{"jetpack_post_was_ever_published":false,"_wcpt_session_time":1434208500,"_wcpt_session_duration":3000,"_wcpt_session_type":"session","_wcpt_session_slides":"","_wcpt_session_video":"","_wcpt_speaker_id":[125],"footnotes":""},"session_track":[],"session_category":[],"class_list":["post-205","wcb_session","type-wcb_session","status-publish","hentry"],"jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p5rSgU-3j","session_date_time":{"date":"June 13, 2015","time":"3:15 pm"},"session_speakers":[{"id":"125","slug":"stephane-boisvert","name":"St\u00e9phane Boisvert","link":"https:\/\/winnipeg.wordcamp.org\/2015\/speaker\/stephane-boisvert\/"}],"session_cats_rendered":null,"_links":{"self":[{"href":"https:\/\/winnipeg.wordcamp.org\/2015\/wp-json\/wp\/v2\/sessions\/205","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/winnipeg.wordcamp.org\/2015\/wp-json\/wp\/v2\/sessions"}],"about":[{"href":"https:\/\/winnipeg.wordcamp.org\/2015\/wp-json\/wp\/v2\/types\/wcb_session"}],"version-history":[{"count":4,"href":"https:\/\/winnipeg.wordcamp.org\/2015\/wp-json\/wp\/v2\/sessions\/205\/revisions"}],"predecessor-version":[{"id":363,"href":"https:\/\/winnipeg.wordcamp.org\/2015\/wp-json\/wp\/v2\/sessions\/205\/revisions\/363"}],"speakers":[{"embeddable":true,"href":"https:\/\/winnipeg.wordcamp.org\/2015\/wp-json\/wp\/v2\/speakers\/125"}],"author":[{"embeddable":true,"href":"https:\/\/winnipeg.wordcamp.org\/2015\/wp-json\/wporg\/v1\/users\/sboisvert"}],"wp:attachment":[{"href":"https:\/\/winnipeg.wordcamp.org\/2015\/wp-json\/wp\/v2\/media?parent=205"}],"wp:term":[{"taxonomy":"wcb_track","embeddable":true,"href":"https:\/\/winnipeg.wordcamp.org\/2015\/wp-json\/wp\/v2\/session_track?post=205"},{"taxonomy":"wcb_session_category","embeddable":true,"href":"https:\/\/winnipeg.wordcamp.org\/2015\/wp-json\/wp\/v2\/session_category?post=205"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}