{"id":28282,"date":"2017-12-18T15:41:20","date_gmt":"2017-12-18T13:41:20","guid":{"rendered":"https:\/\/mamchenkov.net\/wordpress\/?p=28282"},"modified":"2017-12-18T15:41:20","modified_gmt":"2017-12-18T13:41:20","slug":"the-2018-guide-to-building-secure-php-software","status":"publish","type":"post","link":"https:\/\/mamchenkov.net\/wordpress\/2017\/12\/18\/the-2018-guide-to-building-secure-php-software\/","title":{"rendered":"The 2018 Guide to Building Secure PHP Software"},"content":{"rendered":"<!-- google_ad_section_start -->\n<p><a href=\"https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2017\/12\/php-security-2018.png?ssl=1\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" data-attachment-id=\"28283\" data-permalink=\"https:\/\/mamchenkov.net\/wordpress\/2017\/12\/18\/the-2018-guide-to-building-secure-php-software\/php-security-2018\/\" data-orig-file=\"https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2017\/12\/php-security-2018.png?fit=720%2C294&amp;ssl=1\" data-orig-size=\"720,294\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"php-security-2018\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2017\/12\/php-security-2018.png?fit=660%2C270&amp;ssl=1\" class=\"aligncenter size-medium wp-image-28283\" src=\"https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2017\/12\/php-security-2018-500x204.png?resize=500%2C204&#038;ssl=1\" alt=\"\" width=\"500\" height=\"204\" srcset=\"https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2017\/12\/php-security-2018.png?resize=500%2C204&amp;ssl=1 500w, https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2017\/12\/php-security-2018.png?w=720&amp;ssl=1 720w\" sizes=\"auto, (max-width: 500px) 100vw, 500px\" \/><\/a><\/p>\n<p>&#8220;<a href=\"https:\/\/paragonie.com\/blog\/2017\/12\/2018-guide-building-secure-php-software\">The 2018 Guide to Building Secure PHP Software<\/a>&#8221; is an excellent guide to writing modern PHP applications with security in mind.\u00a0 It covers a bunch of the usual topics, but provides fresher solutions than most other similar guides.<\/p>\n<!-- google_ad_section_end -->\n","protected":false},"excerpt":{"rendered":"<!-- google_ad_section_start -->\n<p>&#8220;The 2018 Guide to Building Secure PHP Software&#8221; is an excellent guide to writing modern PHP applications with security in mind.\u00a0 It covers a bunch of the usual topics, but provides fresher solutions than most other similar guides.<\/p>\n<!-- google_ad_section_end -->\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"The 2018 Guide to Building Secure PHP Software #WebDev #PHP #security #BestPractices","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2},"_links_to":"","_links_to_target":""},"categories":[1,18,62,1334],"tags":[3069,38,200,1330],"keyring_services":[],"class_list":["post-28282","post","type-post","status-publish","format-standard","hentry","category-general","category-programming","category-technology","category-web-work","tag-best-practices","tag-php","tag-security","tag-web-development"],"aioseo_notices":[],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack-related-posts":[{"id":28513,"url":"https:\/\/mamchenkov.net\/wordpress\/2018\/04\/23\/php-preparing-for-the-penetration-testing\/","url_meta":{"origin":28282,"position":0},"title":"PHP : Preparing for the Penetration Testing","author":"Leonid Mamchenkov","date":"April 23, 2018","format":false,"excerpt":"Chris Cornutt wrote \"PREPARING FOR PENTESTING (@ LONGHORN PHP 2018)\" blog post for his upcoming talk at the conference.\u00a0 I'd gladly attend the talk, but the time and place didn't work out for me this time.\u00a0 Here are a few useful links from his blog post that might come in\u2026","rel":"","context":"In &quot;All&quot;","block_context":{"text":"All","link":"https:\/\/mamchenkov.net\/wordpress\/category\/general\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":28350,"url":"https:\/\/mamchenkov.net\/wordpress\/2018\/01\/29\/vim-as-a-php-ide-the-complete-guide\/","url_meta":{"origin":28282,"position":1},"title":"Vim as a PHP IDE &#8211; the complete guide","author":"Leonid Mamchenkov","date":"January 29, 2018","format":false,"excerpt":"\"Vim as a PHP IDE - the complete guide\" is yet another one of those lengthy articles on how to setup Vim as an IDE (Integrated Development Environment), specifically so for PHP developers. Over the years, it's interesting to see how with more powerful Vim, such guides become more and\u2026","rel":"","context":"In &quot;All&quot;","block_context":{"text":"All","link":"https:\/\/mamchenkov.net\/wordpress\/category\/general\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":27879,"url":"https:\/\/mamchenkov.net\/wordpress\/2017\/08\/28\/clean-code-solid-principles-applied-to-php\/","url_meta":{"origin":28282,"position":2},"title":"Clean Code SOLID principles applied to PHP","author":"Leonid Mamchenkov","date":"August 28, 2017","format":false,"excerpt":"clean-code-php is an excellent set of examples for the SOLID principles as applied to PHP programming: Software engineering principles, from Robert C. Martin's book\u00a0Clean Code, adapted for PHP. This is not a style guide. It's a guide to producing readable, reusable, and refactorable software in PHP. Not every principle herein\u2026","rel":"","context":"In &quot;All&quot;","block_context":{"text":"All","link":"https:\/\/mamchenkov.net\/wordpress\/category\/general\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":29030,"url":"https:\/\/mamchenkov.net\/wordpress\/2018\/11\/26\/cms-scanner-scan-wordpress-drupal-joomla-vbulletin-websites-for-security-issues\/","url_meta":{"origin":28282,"position":3},"title":"CMS Scanner: Scan WordPress, Drupal, Joomla, vBulletin websites for Security issues","author":"Leonid Mamchenkov","date":"November 26, 2018","format":false,"excerpt":"CMS Scanner is a security tool from Open Security crew that you can host locally and use for security scans of WordPress, Drupal, Joomla, and vBulletin websites.\u00a0 I think that having an automated tool like that is way better and more productive than a thousand blog posts on how to\u2026","rel":"","context":"In &quot;All&quot;","block_context":{"text":"All","link":"https:\/\/mamchenkov.net\/wordpress\/category\/general\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2018\/11\/csmscan-500x308.png?resize=350%2C200&ssl=1","width":350,"height":200},"classes":[]},{"id":27844,"url":"https:\/\/mamchenkov.net\/wordpress\/2017\/08\/14\/secure-headers-a-php-library-for-easier-management-of-browser-security-features\/","url_meta":{"origin":28282,"position":4},"title":"Secure Headers &#8211; a PHP library for easier management of browser security features","author":"Leonid Mamchenkov","date":"August 14, 2017","format":false,"excerpt":"Modern browsers offer a variety of security mechanisms for web developers. \u00a0Unfortunately, some of these aren't so easy to manage. \u00a0One needs a deep understanding of the functionality as well as theory behind. \u00a0Secure Headers is a library that makes all that work a lot easier for PHP developers. \u00a0Here\u2026","rel":"","context":"In &quot;All&quot;","block_context":{"text":"All","link":"https:\/\/mamchenkov.net\/wordpress\/category\/general\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":28588,"url":"https:\/\/mamchenkov.net\/wordpress\/2018\/05\/19\/pvm-php-process-virtual-machine-for-building-and-executing-workflows\/","url_meta":{"origin":28282,"position":5},"title":"pvm &#8211; PHP Process virtual machine for building and executing workflows","author":"Leonid Mamchenkov","date":"May 19, 2018","format":false,"excerpt":"At some point last year I wrote the blog post titled \"Getting started with workflows in PHP\".\u00a0 I received quite a bit of feedback about it, but, unfortunately, the priorities at work shifted and I haven't done much more with workflows since than. The world, however, hasn't stopped.\u00a0 The tools\u2026","rel":"","context":"In &quot;All&quot;","block_context":{"text":"All","link":"https:\/\/mamchenkov.net\/wordpress\/category\/general\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2018\/05\/pizza-process-500x211.png?resize=350%2C200&ssl=1","width":350,"height":200},"classes":[]}],"jetpack_sharing_enabled":true,"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/posts\/28282","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/comments?post=28282"}],"version-history":[{"count":0,"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/posts\/28282\/revisions"}],"wp:attachment":[{"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/media?parent=28282"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/categories?post=28282"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/tags?post=28282"},{"taxonomy":"keyring_services","embeddable":true,"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/keyring_services?post=28282"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}