{"id":2628,"date":"2022-03-12T10:14:11","date_gmt":"2022-03-12T09:14:11","guid":{"rendered":"https:\/\/republify.se\/?post_type=product&#038;p=2628"},"modified":"2024-09-03T14:44:18","modified_gmt":"2024-09-03T13:44:18","slug":"web-application-security-in-python","status":"publish","type":"product","link":"https:\/\/republify.se\/index.php\/produkt\/web-application-security-in-python\/","title":{"rendered":"Web application security in Python"},"content":{"rendered":"<p><strong>Your Web application written in Python works as intended, so you are done, right? But did you consider feeding in incorrect values? 16Gbs of data? A null? An apostrophe? Negative numbers, or specifically -1 or -2^<sup>31<\/sup>? Because that\u2019s what the bad guys will do \u2013 and the list is far from complete.<\/strong><\/p>\n<p>Handling security needs a healthy level of paranoia, and this is what this course provides: a strong emotional engagement by lots of hands-on labs and stories from real life, all to substantially improve code hygiene. Mistakes, consequences, and best practices are our blood, sweat and tears.<\/p>\n<p class=\"detail-title\"><strong>Audience<\/strong><\/p>\n<p class=\"detail-text\">Python developers working on Web applications<\/p>\n<p class=\"detail-title\"><strong>Preparedness<\/strong><\/p>\n<p class=\"detail-text\">General Python and Web development<\/p>\n<p class=\"detail-title\"><strong>Outline<\/strong><\/p>\n<div class=\"detail-text\">\n<ul>\n<li>Cyber security basics<\/li>\n<li>The OWASP Top Ten 2021<\/li>\n<li>Wrap up<\/li>\n<\/ul>\n<p class=\"detail-title\"><strong>What you&#8217;ll have learned<\/strong><\/p>\n<div class=\"detail-text\">\n<ul>\n<li>Getting familiar with essential cyber security concepts<\/li>\n<li>Understanding how cryptography supports security<\/li>\n<li>Learning how to use cryptographic APIs correctly in Python<\/li>\n<li>Understanding Web application security issues<\/li>\n<li>Detailed analysis of the OWASP Top Ten elements<\/li>\n<li>Putting Web application security in the context of Python<\/li>\n<li>Going beyond the low hanging fruits<\/li>\n<li>Managing vulnerabilities in third party components<\/li>\n<\/ul>\n<p class=\"detail-title\"><strong>Description<\/strong><\/p>\n<div class=\"detail-text\">\n<p>Your Web application written in Python works as intended, so you are done, right? But did you consider feeding in incorrect values? 16Gbs of data? A null? An apostrophe? Negative numbers, or specifically -1 or -2^<sup>31<\/sup>? Because that\u2019s what the bad guys will do \u2013 and the list is far from complete.<\/p>\n<p>Handling security needs a healthy level of paranoia, and this is what this course provides: a strong emotional engagement by lots of hands-on labs and stories from real life, all to substantially improve code hygiene. Mistakes, consequences, and best practices are our blood, sweat and tears.<\/p>\n<p>The curriculum goes through the common Web application security issues following the OWASP Top Ten but goes far beyond it both in coverage and the details.All this is put in the context of Python, and extended by core programming issues, discussing security pitfalls of the programming language.<\/p>\n<p>So that you are prepared for the forces of the dark side.<\/p>\n<p>So that nothing unexpected happens.<\/p>\n<p>Nothing.<\/p>\n<\/div>\n<h3>Kursen levereras i samarbete med<\/h3>\n<p><img decoding=\"async\" class=\"alignnone size-medium wp-image-1202 lazyload\" data-src=\"https:\/\/republify.se\/wp-content\/uploads\/2022\/02\/cydrill_logo-300x83.jpg\" alt=\"\" width=\"300\" height=\"83\" data-srcset=\"https:\/\/republify.se\/wp-content\/uploads\/2022\/02\/cydrill_logo-300x83.jpg 300w, https:\/\/republify.se\/wp-content\/uploads\/2022\/02\/cydrill_logo.jpg 427w\" data-sizes=\"(max-width: 300px) 100vw, 300px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 300px; --smush-placeholder-aspect-ratio: 300\/83;\" \/><\/p>\n<h2>Kontakta oss om denna kurs<\/h2>\n<div data-test='contact-form'\n\t\t\tid='contact-form-2628'\n\t\t\tclass='jetpack-contact-form-container '\n\t\t\tdata-wp-interactive='jetpack\/form' data-wp-context='{\"formId\":\"2628\",\"formHash\":\"b89ecf2fbe422ae4e1b832326383d8e222a945e9\",\"showErrors\":false,\"errors\":[],\"fields\":[],\"isMultiStep\":false,\"useAjax\":true,\"submissionData\":null,\"formattedSubmissionData\":[],\"submissionSuccess\":false,\"submissionError\":null,\"elementId\":\"jp-form-b89ecf2fbe422ae4e1b832326383d8e222a945e9\",\"isSingleInputForm\":false,\"isForcedHorizontal\":false}'\n\t\t\tdata-wp-watch--scroll-to-wrapper=\"callbacks.scrollToWrapper\"\n\t\t>\n<div class=\"contact-form-submission contact-form-ajax-submission\" data-wp-bind--aria-hidden=\"state.isSuccessMessageAriaHidden\" data-wp-class--submission-success=\"context.submissionSuccess\" id=\"contact-form-success-b89ecf2fbe422ae4e1b832326383d8e222a945e9\" tabindex=\"-1\" aria-labelledby=\"contact-form-success-header-b89ecf2fbe422ae4e1b832326383d8e222a945e9\"><p class=\"go-back-message\"><a class=\"link\" role=\"button\" tabindex=\"0\" data-wp-on--click=\"actions.goBack\" href=\"\/index.php\/wp-json\/wp\/v2\/product\/2628\">\u2190 Tillbaka<\/a><\/p><h4 data-wp-bind--aria-hidden=\"state.isSuccessMessageAriaHidden\" id=\"contact-form-success-header-b89ecf2fbe422ae4e1b832326383d8e222a945e9\">Tack f\u00f6r din respons. \u2728<\/h4>\n\n<template data-wp-each--submission=\"context.formattedSubmissionData\">\n\t\t\t\t\t<div class=\"jetpack_forms_contact-form-success-summary\">\n\t\t\t\t\t\t<div class=\"field-name-wrapper\">\n\t\t\t\t\t\t\t<div class=\"field-type-icon\" data-wp-watch=\"callbacks.watchFieldTypeIcon\"><\/div>\n\t\t\t\t\t\t\t<div class=\"field-name\" data-wp-text=\"context.submission.label\" data-wp-bind--hidden=\"!context.submission.label\"><\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<div class=\"field-value\" data-wp-text=\"context.submission.value\" data-wp-bind--hidden=\"!context.submission.showPlainValue\"><\/div>\n\t\t\t\t\t\t<a class=\"field-url\" data-wp-bind--href=\"context.submission.url\" data-wp-text=\"context.submission.value\" data-wp-bind--hidden=\"!context.submission.url\" target=\"_blank\" rel=\"noopener noreferrer\"><\/a>\n\t\t\t\t\t\t<div class=\"field-rating\" data-wp-bind--hidden=\"!context.submission.rating\" data-wp-watch=\"callbacks.watchRatingIcons\"><\/div>\n\t\t\t\t\t\t<div class=\"field-images\" data-wp-bind--hidden=\"!context.submission.images\">\n\t\t\t\t\t\t\t<template data-wp-each--image=\"context.submission.images\">\n\t\t\t\t\t\t\t\t<div class=\"field-image-option\" data-wp-class--is-empty=\"!context.image.src\">\n\t\t\t\t\t\t\t\t\t<figure class=\"field-image-option__image\" data-wp-class--is-empty=\"!context.image.src\">\n\t\t\t\t\t\t\t\t\t\t<img data-wp-bind--src=\"context.image.src\" data-wp-bind--hidden=\"!context.image.src\" \/>\n\t\t\t\t\t\t\t\t\t\t<img decoding=\"async\" src=\"data:image\/gif;base64,R0lGODlhAQABAAD\/ACwAAAAAAQABAAACADs=\" data-wp-bind--hidden=\"context.image.src\" \/>\n\t\t\t\t\t\t\t\t\t<\/figure>\n\t\t\t\t\t\t\t\t\t<div class=\"field-image-option__label-wrapper\">\n\t\t\t\t\t\t\t\t\t\t<span class=\"field-image-option__label-code\" data-wp-text=\"context.image.letterCode\"><\/span>\n\t\t\t\t\t\t\t\t\t\t<span class=\"field-image-option__label\" data-wp-text=\"context.image.label\" data-wp-bind--hidden=\"!context.image.label\"><\/span>\n\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t<\/template>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<div class=\"field-files\" data-wp-bind--hidden=\"!context.submission.files\">\n\t\t\t\t\t\t\t<template data-wp-each--file=\"context.submission.files\">\n\t\t\t\t\t\t\t\t<div class=\"field-file\">\n\t\t\t\t\t\t\t\t\t<div class=\"field-file__thumbnail\" data-wp-style--background-image=\"context.file.previewUrl\" data-wp-style--mask-image=\"context.file.iconUrl\" data-wp-bind--hidden=\"!context.file.hasPreview\"><\/div>\n\t\t\t\t\t\t\t\t\t<svg class=\"field-file__icon\" data-wp-bind--hidden=\"context.file.hasPreview\" width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" aria-hidden=\"true\">\n\t\t\t\t\t\t\t\t\t\t<path d=\"M14 2H6C4.9 2 4 2.9 4 4V20C4 21.1 4.89 22 5.99 22H18C19.1 22 20 21.1 20 20V8L14 2ZM18 20H6V4H13V9H18V20Z\" fill=\"currentColor\"\/>\n\t\t\t\t\t\t\t\t\t<\/svg>\n\t\t\t\t\t\t\t\t\t<span class=\"field-file__name\" data-wp-text=\"context.file.name\"><\/span>\n\t\t\t\t\t\t\t\t\t<span class=\"field-file__size\" data-wp-text=\"context.file.size\"><\/span>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t<\/template>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/template><\/div><form action='https:\/\/republify.se\/index.php\/produkt\/web-application-security-in-python\/'\n\t\t\t\tid='jp-form-b89ecf2fbe422ae4e1b832326383d8e222a945e9'\n\t\t\t\tmethod='post'\n\t\t\t\tclass='contact-form commentsblock jetpack-contact-form__form has-no-jetpack-form-layout' aria-label=\"Web application security in Python\"\n\t\t\t\tdata-wp-on--submit=\"actions.onFormSubmit\"\n\t\t\t\tdata-wp-on--reset=\"actions.onFormReset\"\n\t\t\t\tdata-wp-class--submission-success=\"context.submissionSuccess\"\n\t\t\t\tdata-wp-class--is-first-step=\"state.isFirstStep\"\n\t\t\t\tdata-wp-class--is-last-step=\"state.isLastStep\"\n\t\t\t\tdata-wp-class--is-ajax-form=\"context.useAjax\"\n\t\t\t\tnovalidate >\n<input type='hidden' name='jetpack_contact_form_jwt' value='eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJlbmNyeXB0ZWRfYXR0cmlidXRlcyI6ImUzclZjTHdtQVdrYWplQk5tRnJ6M0FZTmJGR0JuNkZ5d05oNnJ5SWt2aU5SRXR1Z1ZTcjVjc3IxSzBDeEY5OU9nZmIxTDFGdUNnWHIwVmR4VlgzSXBvRnM0UEYxK25ZS2tQSk1BdHJmdEtSVnlSSnJrZGNpc1MyeE95ajRCa0VkNm9LR1FoQVpIOGlqczBmQktNN2RicjNvK0tQeWlwK01paXFvdkFnWlJ5TW1ibi9nYVluVG53K2x1OXAxejhOT3RqUk1aQkZmZnYwQXRGRDhYMVptSnZwUXJWbWg1bWVZcTdqYkNqRWFRVjhZWXVOQVdLTFYyeUZEZ0lnWGxCaGFDTW5sUDQyVUhDQ2FmSjhnUzRkSm40aTJOc0t2WitmSmRDVWVaWXNjbGVzQ1B3SWV1cDVDRFV6bEJ3MXhxV1VPNmlPT3pCQVJqM2tkVGNIVHBsc2k0cW90cEdob21rUVZGMTRDSEhGL01OclA0YjdyWXo4dXY5VXNQT2R5L1VnVnhKbVVZUTJzOHFsU0VSS2dITXltb01UQjhFNlhIN1FmNlBuakFVby9jVE56aUlwQkFqeTJsUUY3aG94aWdPWEJrZERIMFZkdnRtMWd1MDZ2djVwdzJCZklZc0kwNXBxM3RQQXorMDk1VE1lVWRIMGRJT1h4djBrUk9pOUhpblJWL21VcmpwVlY2Q2hkOVlvb1hCUjJDSDI1ZXVOYzBlMTFhbGkzaTNaQjh4Y2lBNWdDUElmb0U5bExMUjREbHpxSW43SndUUjZTb2E4Y0pnWlMxYjJVSFc5cmZTZHpUekhtUHNwTUxEZDgzek9UdCt1dEZidiswQ0RTNDZjZDhsNktMNDJVbGo3TFdlWWVLTkxNaFhMaHVNL3RiMUFMRGQva2NpZkY0dURhL1FHOC9VL3YyYUgwaHpXUGlZejRLUXNIK2xlTGY0K05Gdkt6T2J4TzJDcFlEeG4zUlF2RzVpR2xsSkp6cWhFYU5yRkpmaWl0VThoYXAxVmVvWElZVWl5ZnE4K2drcEFGU2JkMGIwR2Rjckd0dkVmVTN3R25mOGVVNUYyWnNHTUt5Y3U5OFZuWWJlRzdiQ3o0ejU5aEp6K3BkeDQ3YmEvQjlnNk9ZT0N4eTI1ZlFTbVBCVUVWbHdnUlV1N0VreEhGTzJXOXY5UEluUXlobHd6ZHBteFFBMWZpTGl0aVhzVmluMitFTFpXampJV0VSMlhqIiwiY29udGVudCI6Iltjb250YWN0LWZpZWxkIGxhYmVsPVwiTmFtblwiIHR5cGU9XCJuYW1lXCIgcmVxdWlyZWQ9XCIxXCJdW2NvbnRhY3QtZmllbGQgbGFiZWw9XCJFLXBvc3RcIiB0eXBlPVwiZW1haWxcIiByZXF1aXJlZD1cIjFcIl1bY29udGFjdC1maWVsZCBsYWJlbD1cIk1lZGRlbGFuZGVcIiB0eXBlPVwidGV4dGFyZWFcIl0iLCJoYXNoIjoiYjg5ZWNmMmZiZTQyMmFlNGUxYjgzMjMyNjM4M2Q4ZTIyMmE5NDVlOSIsInNvdXJjZSI6eyJlbnRyeV90aXRsZSI6IldlYiBhcHBsaWNhdGlvbiBzZWN1cml0eSBpbiBQeXRob24iLCJlbnRyeV9wYWdlIjoxLCJzb3VyY2VfaWQiOjI2MjgsInNvdXJjZV90eXBlIjoic2luZ2xlIiwicmVxdWVzdF91cmwiOiJodHRwczovL3JlcHVibGlmeS5zZS93cC1qc29uL3dwL3YyL3Byb2R1Y3QvMjYyOCJ9LCJ2ZXJzaW9uIjoyLCJjaXBoZXIiOiJhZXMtMjU2LWdjbSJ9.6KyDENLrJLCCWVgdQ9MnNAdsBYxcH9tKDnMdf-LAMUE' \/>\n\n<div style=\"\"  data-wp-interactive=\"jetpack\/form\" data-wp-context='{\"fieldId\":\"g2628-namn\",\"fieldType\":\"name\",\"fieldLabel\":\"Namn\",\"fieldValue\":\"\",\"fieldPlaceholder\":\"\",\"fieldIsRequired\":\"1\",\"fieldErrorMessage\":\"\",\"fieldExtra\":[],\"formHash\":\"b89ecf2fbe422ae4e1b832326383d8e222a945e9\"}'  class='grunion-field-name-wrap grunion-field-wrap'  data-wp-init='callbacks.initializeField' data-wp-on--jetpack-form-reset='callbacks.initializeField' >\n<label\n\t\t\t\tfor='g2628-namn' class=\"grunion-field-label name\" >Namn<span class=\"grunion-label-required\" aria-hidden=\"true\">(obligatoriskt)<\/span><\/label>\n<input\n\t\t\t\t\ttype='text'\n\t\t\t\t\tname='g2628-namn'\n\t\t\t\t\tid='g2628-namn'\n\t\t\t\t\tvalue=''\n\n\t\t\t\t\tdata-wp-bind--aria-invalid='state.fieldAriaInvalid'\n\t\t\t\t\tdata-wp-bind--value='state.getFieldValue'\n\t\t\t\t\taria-describedby='g2628-namn-text-error-message'\n\t\t\t\t\tdata-wp-on--input='actions.onFieldChange'\n\t\t\t\t\tdata-wp-on--blur='actions.onFieldBlur'\n\t\t\t\t\tdata-wp-class--has-value='state.hasFieldValue'\n\n\t\t\t\t\tclass='name  grunion-field' \n\t\t\t\t\trequired='true' aria-required='true'  \/>\n \n\t\t\t<div id=\"g2628-namn-text-error\" class=\"contact-form__input-error\" data-wp-class--has-errors=\"state.fieldHasErrors\">\n\t\t\t\t<span class=\"contact-form__warning-icon\" aria-hidden=\"true\">\n\t\t\t\t\t<svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\n\t\t\t\t\t\t<path d=\"M8.50015 11.6402H7.50015V10.6402H8.50015V11.6402Z\" \/>\n\t\t\t\t\t\t<path d=\"M7.50015 9.64018H8.50015V6.30684H7.50015V9.64018Z\" \/>\n\t\t\t\t\t\t<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M6.98331 3.0947C7.42933 2.30177 8.57096 2.30177 9.01698 3.09469L13.8771 11.7349C14.3145 12.5126 13.7525 13.4735 12.8602 13.4735H3.14004C2.24774 13.4735 1.68575 12.5126 2.12321 11.7349L6.98331 3.0947ZM8.14541 3.58496C8.08169 3.47168 7.9186 3.47168 7.85488 3.58496L2.99478 12.2251C2.93229 12.3362 3.01257 12.4735 3.14004 12.4735H12.8602C12.9877 12.4735 13.068 12.3362 13.0055 12.2251L8.14541 3.58496Z\" \/>\n\t\t\t\t\t<\/svg>\n\t\t\t\t<\/span>\n\t\t\t\t<span data-wp-text=\"state.errorMessage\" id=\"g2628-namn-text-error-message\"><\/span>\n\t\t\t<\/div> \n\t<\/div>\n\n<div style=\"\"  data-wp-interactive=\"jetpack\/form\" data-wp-context='{\"fieldId\":\"g2628-epost\",\"fieldType\":\"email\",\"fieldLabel\":\"E-post\",\"fieldValue\":\"\",\"fieldPlaceholder\":\"\",\"fieldIsRequired\":\"1\",\"fieldErrorMessage\":\"\",\"fieldExtra\":[],\"formHash\":\"b89ecf2fbe422ae4e1b832326383d8e222a945e9\"}'  class='grunion-field-email-wrap grunion-field-wrap'  data-wp-init='callbacks.initializeField' data-wp-on--jetpack-form-reset='callbacks.initializeField' >\n<label\n\t\t\t\tfor='g2628-epost' class=\"grunion-field-label email\" >E-post<span class=\"grunion-label-required\" aria-hidden=\"true\">(obligatoriskt)<\/span><\/label>\n<input\n\t\t\t\t\ttype='email'\n\t\t\t\t\tname='g2628-epost'\n\t\t\t\t\tid='g2628-epost'\n\t\t\t\t\tvalue=''\n\n\t\t\t\t\tdata-wp-bind--aria-invalid='state.fieldAriaInvalid'\n\t\t\t\t\tdata-wp-bind--value='state.getFieldValue'\n\t\t\t\t\taria-describedby='g2628-epost-email-error-message'\n\t\t\t\t\tdata-wp-on--input='actions.onFieldChange'\n\t\t\t\t\tdata-wp-on--blur='actions.onFieldBlur'\n\t\t\t\t\tdata-wp-class--has-value='state.hasFieldValue'\n\n\t\t\t\t\tclass='email  grunion-field' \n\t\t\t\t\trequired='true' aria-required='true'  \/>\n \n\t\t\t<div id=\"g2628-epost-email-error\" class=\"contact-form__input-error\" data-wp-class--has-errors=\"state.fieldHasErrors\">\n\t\t\t\t<span class=\"contact-form__warning-icon\" aria-hidden=\"true\">\n\t\t\t\t\t<svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\n\t\t\t\t\t\t<path d=\"M8.50015 11.6402H7.50015V10.6402H8.50015V11.6402Z\" \/>\n\t\t\t\t\t\t<path d=\"M7.50015 9.64018H8.50015V6.30684H7.50015V9.64018Z\" \/>\n\t\t\t\t\t\t<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M6.98331 3.0947C7.42933 2.30177 8.57096 2.30177 9.01698 3.09469L13.8771 11.7349C14.3145 12.5126 13.7525 13.4735 12.8602 13.4735H3.14004C2.24774 13.4735 1.68575 12.5126 2.12321 11.7349L6.98331 3.0947ZM8.14541 3.58496C8.08169 3.47168 7.9186 3.47168 7.85488 3.58496L2.99478 12.2251C2.93229 12.3362 3.01257 12.4735 3.14004 12.4735H12.8602C12.9877 12.4735 13.068 12.3362 13.0055 12.2251L8.14541 3.58496Z\" \/>\n\t\t\t\t\t<\/svg>\n\t\t\t\t<\/span>\n\t\t\t\t<span data-wp-text=\"state.errorMessage\" id=\"g2628-epost-email-error-message\"><\/span>\n\t\t\t<\/div> \n\t<\/div>\n\n<div style=\"\"  data-wp-interactive=\"jetpack\/form\" data-wp-context='{\"fieldId\":\"g2628-meddelande\",\"fieldType\":\"textarea\",\"fieldLabel\":\"Meddelande\",\"fieldValue\":\"\",\"fieldPlaceholder\":\"\",\"fieldIsRequired\":\"\",\"fieldErrorMessage\":\"\",\"fieldExtra\":[],\"formHash\":\"b89ecf2fbe422ae4e1b832326383d8e222a945e9\"}'  class='grunion-field-textarea-wrap grunion-field-wrap'  data-wp-init='callbacks.initializeField' data-wp-on--jetpack-form-reset='callbacks.initializeField' >\n<label\n\t\t\t\tfor='contact-form-comment-g2628-meddelande' class=\"grunion-field-label textarea\" >Meddelande<\/label>\n<textarea\n\t\t                style=''\n\t\t                name='g2628-meddelande'\n\t\t                id='contact-form-comment-g2628-meddelande'\n\t\t                rows='20'\n\t\t\t\t\t\tdata-wp-text='state.getFieldValue'\n\t\t\t\t\t\tdata-wp-on--input='actions.onFieldChange'\n\t\t\t\t\t\tdata-wp-on--blur='actions.onFieldBlur'\n\t\t\t\t\t\tdata-wp-class--has-value='state.hasFieldValue'\n\t\t\t\t\t\taria-describedby='g2628-meddelande-textarea-error-message'\n\t\t\t\t\t\tdata-wp-bind--aria-invalid='state.fieldAriaInvalid'\n\t\t\t\t\t\tclass='textarea  grunion-field'  ><\/textarea>\n \n\t\t\t<div id=\"g2628-meddelande-textarea-error\" class=\"contact-form__input-error\" data-wp-class--has-errors=\"state.fieldHasErrors\">\n\t\t\t\t<span class=\"contact-form__warning-icon\" aria-hidden=\"true\">\n\t\t\t\t\t<svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\n\t\t\t\t\t\t<path d=\"M8.50015 11.6402H7.50015V10.6402H8.50015V11.6402Z\" \/>\n\t\t\t\t\t\t<path d=\"M7.50015 9.64018H8.50015V6.30684H7.50015V9.64018Z\" \/>\n\t\t\t\t\t\t<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M6.98331 3.0947C7.42933 2.30177 8.57096 2.30177 9.01698 3.09469L13.8771 11.7349C14.3145 12.5126 13.7525 13.4735 12.8602 13.4735H3.14004C2.24774 13.4735 1.68575 12.5126 2.12321 11.7349L6.98331 3.0947ZM8.14541 3.58496C8.08169 3.47168 7.9186 3.47168 7.85488 3.58496L2.99478 12.2251C2.93229 12.3362 3.01257 12.4735 3.14004 12.4735H12.8602C12.9877 12.4735 13.068 12.3362 13.0055 12.2251L8.14541 3.58496Z\" \/>\n\t\t\t\t\t<\/svg>\n\t\t\t\t<\/span>\n\t\t\t\t<span data-wp-text=\"state.errorMessage\" id=\"g2628-meddelande-textarea-error-message\"><\/span>\n\t\t\t<\/div>\n\t<\/div>\n\t<p class='contact-submit'>\n<div class=\"contact-form__error\" data-wp-class--show-errors=\"state.showFormErrors\"><span class=\"contact-form__warning-icon\" aria-hidden=\"true\"><i><\/i><\/span><span class=\"contact-form__error-message\" tabindex=\"-1\" data-wp-watch=\"callbacks.focusOnValidationError\" data-wp-text=\"state.getFormErrorMessage\"><\/span><ul aria-label=\"Formul\u00e4rfel\">\n\t\t\t\t<template data-wp-each=\"state.getErrorList\" data-wp-key=\"context.item.id\">\n\t\t\t\t\t<li><a data-wp-bind--href=\"context.item.anchor\" data-wp-on--click=\"actions.scrollIntoView\" data-wp-text=\"context.item.label\"><\/a><\/li>\n\t\t\t\t<\/template>\n\t\t\t\t<\/ul><\/div><div class=\"contact-form__error\" data-wp-class--show-errors=\"state.showSubmissionError\" data-wp-text=\"context.submissionError\" tabindex=\"-1\" data-wp-watch=\"callbacks.focusOnSubmissionError\"><\/div>\t\t<button type='submit' class='pushbutton-wide'>Skicka<\/button>\t\t<input type='hidden' name='contact-form-id' value='2628' \/>\n\t\t<input type='hidden' name='action' value='grunion-contact-form' \/>\n\t\t<input type='hidden' name='contact-form-hash' value='b89ecf2fbe422ae4e1b832326383d8e222a945e9' \/>\n\t<\/p>\n<\/form>\n<\/div>\n<\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p><strong>Your Web application written in Python works as intended, so you are done, right? But did you consider feeding in incorrect values? 16Gbs of data? A null? An apostrophe? Negative numbers, or specifically -1 or -2^<sup>31<\/sup>? Because that\u2019s what the bad guys will do \u2013 and the list is far from complete.<\/strong><\/p>\n<p>Handling security needs a healthy level of paranoia, and this is what this course provides: a strong emotional engagement by lots of hands-on labs and stories from real life, all to substantially improve code hygiene. Mistakes, consequences, and best practices are our blood, sweat and tears.<\/p>\n","protected":false},"featured_media":2629,"comment_status":"open","ping_status":"closed","template":"","meta":{"wds_primary_product_brand":0,"wds_primary_product_cat":0},"product_brand":[],"product_cat":[76,57,31,39],"product_tag":[],"class_list":{"0":"post-2628","1":"product","2":"type-product","3":"status-publish","4":"has-post-thumbnail","6":"product_cat-python","7":"product_cat-secure-coding","8":"product_cat-security","9":"product_cat-systemutveckling","11":"first","12":"instock","13":"taxable","14":"shipping-taxable","15":"purchasable","16":"product-type-simple"},"jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/republify.se\/index.php\/wp-json\/wp\/v2\/product\/2628","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/republify.se\/index.php\/wp-json\/wp\/v2\/product"}],"about":[{"href":"https:\/\/republify.se\/index.php\/wp-json\/wp\/v2\/types\/product"}],"replies":[{"embeddable":true,"href":"https:\/\/republify.se\/index.php\/wp-json\/wp\/v2\/comments?post=2628"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/republify.se\/index.php\/wp-json\/wp\/v2\/media\/2629"}],"wp:attachment":[{"href":"https:\/\/republify.se\/index.php\/wp-json\/wp\/v2\/media?parent=2628"}],"wp:term":[{"taxonomy":"product_brand","embeddable":true,"href":"https:\/\/republify.se\/index.php\/wp-json\/wp\/v2\/product_brand?post=2628"},{"taxonomy":"product_cat","embeddable":true,"href":"https:\/\/republify.se\/index.php\/wp-json\/wp\/v2\/product_cat?post=2628"},{"taxonomy":"product_tag","embeddable":true,"href":"https:\/\/republify.se\/index.php\/wp-json\/wp\/v2\/product_tag?post=2628"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}