{"id":37356,"date":"2020-10-23T10:00:59","date_gmt":"2020-10-23T14:00:59","guid":{"rendered":"https:\/\/simpleprogrammer.com\/?p=37356"},"modified":"2020-10-23T09:13:25","modified_gmt":"2020-10-23T13:13:25","slug":"guide-secure-software","status":"publish","type":"post","link":"https:\/\/simpleprogrammer.com\/guide-secure-software\/","title":{"rendered":"A Complete Developer\u2019s Guide to Securing the SDLC"},"content":{"rendered":"<p>The software development life cycle is a set of steps that help developers plan and create software in an organized way. It has six mains steps:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-37360\" src=\"https:\/\/simpleprogrammer.com\/wp-content\/uploads\/2020\/10\/Agile-cycle.png\" alt=\"secure software life cycle\" width=\"1600\" height=\"907\" \/><\/p>\n<p>Each step comes with it\u2019s own security issues that need to be addressed. Failure to address these issues can result in an application full of bugs that, once exploited, can result in downtime, lost revenue, as well as stolen customer information.<\/p>\n<p>This is an extremely common problem, with 90% of the top 100 mobile applications <a href=\"https:\/\/www.helpnetsecurity.com\/2012\/08\/20\/92-of-the-top-100-mobile-apps-have-been-hacked\/\" target=\"_blank\" rel=\"noopener noreferrer\">reporting<\/a> being hacked at least once. Your best chance to prevent these issues is during the development of the application, and that\u2019s precisely where the tips I share in this post can help you.<\/p>\n<p>This guide goes through each individual step of the life cycle and highlights the security practices\/actions that should be completed to ensure a secure application. This includes things like industry tools, techniques, and resources you can use to ensure that your application will be secure by the end of the process.<\/p>\n<h2>Concept and Planning<\/h2>\n<p>This phase is all about defining the application concept and requirements. In other words, it\u2019s important to make sure you have a solid outline of what needs to be done, and that you have a high-level understanding of how you are going to accomplish that.<\/p>\n<p><strong>Outline security and compliance requirements: <\/strong>Outline the technical and regulatory requirements for your application. For technical requirements, this would include making sure you have proper <a href=\"https:\/\/www.securitymadesimple.org\/cybersecurity-blog\/what-is-encryption\" target=\"_blank\" rel=\"noopener noreferrer\">encryption<\/a> for data in storage and data in transit.<\/p>\n<p>The term \u201cregulatory requirements\u201d refers to understanding the type of data that the software will store and transport\u2014for example, financial information, <a href=\"https:\/\/www.securitymadesimple.org\/cybersecurity-blog\/how-to-be-pci-dss-compliant\" target=\"_blank\" rel=\"noopener noreferrer\">payment<\/a> card information, <a href=\"https:\/\/www.securitymadesimple.org\/cybersecurity-blog\/introduction-to-hipaa-compliance\" target=\"_blank\" rel=\"noopener noreferrer\">health<\/a> care, and personally identifiable information.<\/p>\n<p>Each type of data comes with certain regulations on how it needs to be handled, collected, stored, and transported. Therefore, you need to be aware of what information you are collecting and how that information needs to be handled.<\/p>\n<p><strong>Security awareness training:<\/strong> If you are working on a team of developers, you should have time set out to go over security requirements.<\/p>\n<p>If you\u2019re a manager or team lead, you are responsible for organizing this. If you\u2019re just a developer, this is something you should be requesting from your team lead. This ensures both you and everyone on the team understands the requirements set out for the application.<\/p>\n<p><strong>Review third-party software components: <\/strong>Third party components are often used to increase the speed of developing software and add useful functionality. However, they can introduce vulnerabilities in your software, which need to be evaluated before these components are used in your application.<\/p>\n<p>You can begin this evaluation by doing some research into the libraries you are using, which will allow you to see what issues have been reported. For more formal verification, there are companies like <a href=\"https:\/\/www.veracode.com\/security\/what-is-third-party-software-security\" target=\"_blank\" rel=\"noopener noreferrer\">veracode<\/a> that have online guides as well as software solutions for evaluating third-party software for security issues.<\/p>\n<h2>Architecture and Design<\/h2>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignright wp-image-37401\" src=\"https:\/\/simpleprogrammer.com\/wp-content\/uploads\/2020\/10\/Architecture-and-Design.png\" alt=\"secure software\" width=\"280\" height=\"280\" \/>The architecture and design phase is about designing an application that meets all of the requirements set out in the planning phase in detail.<\/p>\n<p><strong>Threat modeling:<\/strong> This is understanding the probable attack scenarios for your application and coming up with controls that will prevent them from being successful. A common example of this would be an SQL injection, which is where an SQL query is submitted into an input form to extract data from the database.<\/p>\n<p><strong>Ensuring secure design:<\/strong> You want to check that the design of your application adheres to common best practices in software development, such as adding protection for sensitive information and ensuring compliance. <a href=\"https:\/\/www.bcs.org\/content-hub\/10-best-practices-for-secure-software-development\/\" target=\"_blank\" rel=\"noopener noreferrer\">Here<\/a> you can find a list of 10 best practices for software development.<\/p>\n<h2>Implementation<\/h2>\n<p>Implementation is the process of creating the application, debugging, and creating the first versions of the application that will be tested. The goal in this stage is to create a stable application.<\/p>\n<p><strong>Use secure coding guidelines:<\/strong> These <a href=\"https:\/\/simpleprogrammer.com\/5-security-concepts\/\" target=\"_blank\" rel=\"noopener noreferrer\">guidelines<\/a> will warn you of common mistakes that programmers make, allowing you to avoid them and save yourself a lot of time down the road. Some common mistakes include things like storing unencrypted passwords. <a href=\"https:\/\/wiki.sei.cmu.edu\/confluence\/display\/seccode\/Top+10+Secure+Coding+Practices\" target=\"_blank\" rel=\"noopener noreferrer\">Here<\/a> you can find a comprehensive list of the top 10 secure coding practices, as offered by CERT.<\/p>\n<p><strong>Static scanning:<\/strong> Static application scanning tools (SAST) can scan newly written code for vulnerabilities without having to run the application. You can use these as you write your code to check for bugs and correct them before the first version. <a href=\"https:\/\/www.g2.com\/categories\/static-application-security-testing-sast\" target=\"_blank\" rel=\"noopener noreferrer\">Here<\/a> are six SAST tools that you can consider using for your software.<\/p>\n<p><strong>Manual code reviews:<\/strong> After completing the first version of your application, it should have a manual code review done by a senior developer who is knowledgeable on security bugs in software development. Automated tools are much faster, but they can still miss some important issues, so it\u2019s still very beneficial to perform manual reviews.<\/p>\n<h2>Testing and Bug Fixing<\/h2>\n<p>The purpose of this phase is to discover and fix bugs in the working application. This stage involves running the application and using different types of inputs to see how the application responds.<\/p>\n<p><strong>Fuzzing and dynamic scanning: <\/strong>Dynamic application scanner tools (DAST) test for vulnerabilities by simulating attacks during runtime. Fuzzing involves using automated tools to generate random inputs based on certain patterns to check if the application can handle them correctly. <a href=\"https:\/\/www.g2.com\/categories\/dynamic-application-security-testing-dast\" target=\"_blank\" rel=\"noopener noreferrer\">Here<\/a> you can find a list of some popular DAST tools.<\/p>\n<p><strong>Penetration testing:<\/strong> Penetration tests involve hiring professional security researchers to try and hack into your application in order to find any vulnerabilities that made it this far into your application. You can hire individual companies\/teams, or you can use a bug bounty program to <a href=\"https:\/\/simpleprogrammer.com\/crowdsourcing-security-with-bug-bounties\/\" target=\"_blank\" rel=\"noopener noreferrer\">crowdsource<\/a> this step.<\/p>\n<p><strong>Test environment decommissioning:<\/strong> Once a test environment is no longer needed, it should be taken offline or deleted, if it\u2019s a virtual machine. Generally, this is overseen by the DevOps or IT team.<\/p>\n<p>It&#8217;s common for test environments to have access to the internet to allow developers to connect and do their work. However, sometimes the system remains online even after the project is completed.<\/p>\n<p>Since that environment is not used by anyone, it will remain unpatched. Being internet-facing, it will understandably represent one big easy target for hackers.<\/p>\n<h2>Release and Maintenance<\/h2>\n<p>This is the phase when the application goes live to its target users. Even though the application is live, this doesn\u2019t mean the work is done. The app needs to be maintained and improved over the course of its life cycle, and possible bugs need to be fixed.<\/p>\n<p><strong>Ongoing security checks and patches:<\/strong> Security checks should be performed on a regular basis by the company\u2019s security team or an independent vendor. Following that, fixes need to be created and released whenever a security issue is found.<\/p>\n<p>These checks don&#8217;t need to go on indefinitely, but they should go on for at least a few years after the app is released. Furthermore, a statement should be given out to users well in advance of when you plan to stop supporting the application.<\/p>\n<h2>End of Life<\/h2>\n<p>End of life refers to software that is no longer supported by its developers. This means there will be no more patches, updates, or bug fixes offered. Applications that contain sensitive data also need to have that removed to prevent a data breach due to an old and non-secure application. Any application that isn\u2019t being updated for security-related bugs shouldn\u2019t be considered secure.<\/p>\n<p><strong>Data retention:<\/strong> Government and regulatory <span style=\"font-weight: 400;\">bodies define retention <\/span>requirements for different types of data. It\u2019s important that you confirm your retention requirements and be sure to store the data appropriately before getting rid of an application.<\/p>\n<p><strong>Data disposal:<\/strong> At the end of an application&#8217;s life, all sensitive information should be securely deleted\u2014including all personal information, encryption keys, or API access keys. The purpose here is to make sure all information is kept confidential and data breaches are prevented. <a href=\"https:\/\/www.informationsecuritybuzz.com\/articles\/8-tips-securely-dispose-end-life-data-assets\/\" target=\"_blank\" rel=\"noopener noreferrer\">Here<\/a> are some tips on properly disposing of data.<\/p>\n<h2>Fixing Security Issues at Each Stage for the Best Product<\/h2>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignright wp-image-37403\" src=\"https:\/\/simpleprogrammer.com\/wp-content\/uploads\/2020\/10\/fixing-security.png\" alt=\"secure software\" width=\"280\" height=\"280\" \/>The software development life cycle is a widely popular template and each step has its own requirements that need to be completed to ensure a secure application.<\/p>\n<p>With over 90% of top applications in the app store being hacked at least once, this shows that the current process for developing applications isn\u2019t very <a href=\"https:\/\/www.amazon.com\/Building-Secure-Software-Security-Documents-ebook\/dp\/B003CW67YQ\" target=\"_blank\" rel=\"noopener noreferrer\">secure<\/a>. In this guide I\u2019ve offered you security tips for activities related to each step of the development cycle. Following these tips, you can make sure your applications are much less likely to have security issues.<\/p>\n<p>First in the planning phase, the goal is to properly plan out your application based on the technical and regulatory requirements. Next, you want to design your application based on <a href=\"https:\/\/www.amazon.ca\/Building-Secure-Software-Security-paperback\/dp\/0321774957\" target=\"_blank\" rel=\"noopener noreferrer\">secure<\/a> best practices. You also need to implement proper manual and automated testing, and have your application reviewed by subject matter experts. If you lack the internal expertise or funding to hire security professionals for testing, you can use the cost-effective method of bug bounty <a href=\"https:\/\/www.securitymadesimple.org\/cybersecurity-blog\/what-is-a-bug-bounty-program\" target=\"_blank\" rel=\"noopener noreferrer\">programs<\/a>.<\/p>\n<p>Once the application is released, it needs to be checked and patched regularly as new bugs are found. And when its life has ended, the information you need to keep must be secured, and all the remaining information needs to be disposed of to prevent a data leak.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>The software development life cycle is a set of steps that help developers plan and create software in an organized way. It has six mains steps: Each step comes with it\u2019s own security issues that need to be addressed. Failure to address these issues can result in an application full of bugs that, once exploited,&#8230;<\/p>\n","protected":false},"author":1308,"featured_media":37400,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_kad_post_transparent":"","_kad_post_title":"","_kad_post_layout":"","_kad_post_sidebar_id":"","_kad_post_content_style":"","_kad_post_vertical_padding":"","_kad_post_feature":"","_kad_post_feature_position":"","_kad_post_header":false,"_kad_post_footer":false,"_kad_post_classname":"","footnotes":""},"categories":[2185,148,415,31679,162229803,801,162229840,162229823,162229253,12],"tags":[],"class_list":["post-37356","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-best-practices","category-design","category-guest-post","category-process-improvement","category-programming","category-security","category-skills","category-software","category-technical","category-testing"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.6 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>A Complete Developer\u2019s Guide to Securing the SDLC - Simple Programmer<\/title>\n<meta name=\"description\" content=\"This all in one guide will provide recommendations for developers to ensure secure software at each phase of the life cycle.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/simpleprogrammer.com\/guide-secure-software\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"A Complete Developer\u2019s Guide to Securing the SDLC - Simple Programmer\" \/>\n<meta property=\"og:description\" content=\"This all in one guide will provide recommendations for developers to ensure secure software at each phase of the life cycle.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/simpleprogrammer.com\/guide-secure-software\/\" \/>\n<meta property=\"og:site_name\" content=\"Simple Programmer\" \/>\n<meta property=\"article:published_time\" content=\"2020-10-23T14:00:59+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/simpleprogrammer.com\/wp-content\/uploads\/2020\/10\/A-Complete-Developers-Guide-to-Securing-the-SDLC.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1280\" \/>\n\t<meta property=\"og:image:height\" content=\"720\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"8 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/simpleprogrammer.com\\\/guide-secure-software\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/simpleprogrammer.com\\\/guide-secure-software\\\/\"},\"author\":{\"name\":\"\",\"@id\":\"\"},\"headline\":\"A Complete Developer\u2019s Guide to Securing the SDLC\",\"datePublished\":\"2020-10-23T14:00:59+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/simpleprogrammer.com\\\/guide-secure-software\\\/\"},\"wordCount\":1557,\"commentCount\":0,\"image\":{\"@id\":\"https:\\\/\\\/simpleprogrammer.com\\\/guide-secure-software\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/simpleprogrammer.com\\\/wp-content\\\/uploads\\\/2020\\\/10\\\/A-Complete-Developers-Guide-to-Securing-the-SDLC.png\",\"articleSection\":[\"Best Practices\",\"Design\",\"Guest Post\",\"Process Improvement\",\"Programming\",\"Security\",\"Skills\",\"Software\",\"Technical\",\"Testing\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/simpleprogrammer.com\\\/guide-secure-software\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/simpleprogrammer.com\\\/guide-secure-software\\\/\",\"url\":\"https:\\\/\\\/simpleprogrammer.com\\\/guide-secure-software\\\/\",\"name\":\"A Complete Developer\u2019s Guide to Securing the SDLC - Simple Programmer\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/simpleprogrammer.com\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/simpleprogrammer.com\\\/guide-secure-software\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/simpleprogrammer.com\\\/guide-secure-software\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/simpleprogrammer.com\\\/wp-content\\\/uploads\\\/2020\\\/10\\\/A-Complete-Developers-Guide-to-Securing-the-SDLC.png\",\"datePublished\":\"2020-10-23T14:00:59+00:00\",\"author\":{\"@id\":\"\"},\"description\":\"This all in one guide will provide recommendations for developers to ensure secure software at each phase of the life cycle.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/simpleprogrammer.com\\\/guide-secure-software\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/simpleprogrammer.com\\\/guide-secure-software\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/simpleprogrammer.com\\\/guide-secure-software\\\/#primaryimage\",\"url\":\"https:\\\/\\\/simpleprogrammer.com\\\/wp-content\\\/uploads\\\/2020\\\/10\\\/A-Complete-Developers-Guide-to-Securing-the-SDLC.png\",\"contentUrl\":\"https:\\\/\\\/simpleprogrammer.com\\\/wp-content\\\/uploads\\\/2020\\\/10\\\/A-Complete-Developers-Guide-to-Securing-the-SDLC.png\",\"width\":1280,\"height\":720},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/simpleprogrammer.com\\\/guide-secure-software\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/simpleprogrammer.com\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"A Complete Developer\u2019s Guide to Securing the SDLC\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/simpleprogrammer.com\\\/#website\",\"url\":\"https:\\\/\\\/simpleprogrammer.com\\\/\",\"name\":\"Simple Programmer\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/simpleprogrammer.com\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"\",\"url\":\"https:\\\/\\\/simpleprogrammer.com\\\/author\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"A Complete Developer\u2019s Guide to Securing the SDLC - Simple Programmer","description":"This all in one guide will provide recommendations for developers to ensure secure software at each phase of the life cycle.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/simpleprogrammer.com\/guide-secure-software\/","og_locale":"en_US","og_type":"article","og_title":"A Complete Developer\u2019s Guide to Securing the SDLC - Simple Programmer","og_description":"This all in one guide will provide recommendations for developers to ensure secure software at each phase of the life cycle.","og_url":"https:\/\/simpleprogrammer.com\/guide-secure-software\/","og_site_name":"Simple Programmer","article_published_time":"2020-10-23T14:00:59+00:00","og_image":[{"width":1280,"height":720,"url":"https:\/\/simpleprogrammer.com\/wp-content\/uploads\/2020\/10\/A-Complete-Developers-Guide-to-Securing-the-SDLC.png","type":"image\/png"}],"twitter_card":"summary_large_image","twitter_misc":{"Written by":"","Est. reading time":"8 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/simpleprogrammer.com\/guide-secure-software\/#article","isPartOf":{"@id":"https:\/\/simpleprogrammer.com\/guide-secure-software\/"},"author":{"name":"","@id":""},"headline":"A Complete Developer\u2019s Guide to Securing the SDLC","datePublished":"2020-10-23T14:00:59+00:00","mainEntityOfPage":{"@id":"https:\/\/simpleprogrammer.com\/guide-secure-software\/"},"wordCount":1557,"commentCount":0,"image":{"@id":"https:\/\/simpleprogrammer.com\/guide-secure-software\/#primaryimage"},"thumbnailUrl":"https:\/\/simpleprogrammer.com\/wp-content\/uploads\/2020\/10\/A-Complete-Developers-Guide-to-Securing-the-SDLC.png","articleSection":["Best Practices","Design","Guest Post","Process Improvement","Programming","Security","Skills","Software","Technical","Testing"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/simpleprogrammer.com\/guide-secure-software\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/simpleprogrammer.com\/guide-secure-software\/","url":"https:\/\/simpleprogrammer.com\/guide-secure-software\/","name":"A Complete Developer\u2019s Guide to Securing the SDLC - Simple Programmer","isPartOf":{"@id":"https:\/\/simpleprogrammer.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/simpleprogrammer.com\/guide-secure-software\/#primaryimage"},"image":{"@id":"https:\/\/simpleprogrammer.com\/guide-secure-software\/#primaryimage"},"thumbnailUrl":"https:\/\/simpleprogrammer.com\/wp-content\/uploads\/2020\/10\/A-Complete-Developers-Guide-to-Securing-the-SDLC.png","datePublished":"2020-10-23T14:00:59+00:00","author":{"@id":""},"description":"This all in one guide will provide recommendations for developers to ensure secure software at each phase of the life cycle.","breadcrumb":{"@id":"https:\/\/simpleprogrammer.com\/guide-secure-software\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/simpleprogrammer.com\/guide-secure-software\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/simpleprogrammer.com\/guide-secure-software\/#primaryimage","url":"https:\/\/simpleprogrammer.com\/wp-content\/uploads\/2020\/10\/A-Complete-Developers-Guide-to-Securing-the-SDLC.png","contentUrl":"https:\/\/simpleprogrammer.com\/wp-content\/uploads\/2020\/10\/A-Complete-Developers-Guide-to-Securing-the-SDLC.png","width":1280,"height":720},{"@type":"BreadcrumbList","@id":"https:\/\/simpleprogrammer.com\/guide-secure-software\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/simpleprogrammer.com\/"},{"@type":"ListItem","position":2,"name":"A Complete Developer\u2019s Guide to Securing the SDLC"}]},{"@type":"WebSite","@id":"https:\/\/simpleprogrammer.com\/#website","url":"https:\/\/simpleprogrammer.com\/","name":"Simple Programmer","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/simpleprogrammer.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"","url":"https:\/\/simpleprogrammer.com\/author\/"}]}},"_links":{"self":[{"href":"https:\/\/simpleprogrammer.com\/wp-json\/wp\/v2\/posts\/37356","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/simpleprogrammer.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/simpleprogrammer.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/simpleprogrammer.com\/wp-json\/wp\/v2\/users\/1308"}],"replies":[{"embeddable":true,"href":"https:\/\/simpleprogrammer.com\/wp-json\/wp\/v2\/comments?post=37356"}],"version-history":[{"count":0,"href":"https:\/\/simpleprogrammer.com\/wp-json\/wp\/v2\/posts\/37356\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/simpleprogrammer.com\/wp-json\/wp\/v2\/media\/37400"}],"wp:attachment":[{"href":"https:\/\/simpleprogrammer.com\/wp-json\/wp\/v2\/media?parent=37356"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/simpleprogrammer.com\/wp-json\/wp\/v2\/categories?post=37356"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/simpleprogrammer.com\/wp-json\/wp\/v2\/tags?post=37356"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}