Files
developer-roadmap/src/data/best-practices/api-security/api-security.json
T

4377 lines
167 KiB
JSON
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
{
"mockup": {
"controls": {
"control": [
{
"ID": "0",
"typeID": "Arrow",
"zOrder": "0",
"w": "1",
"h": "81",
"measuredW": "150",
"measuredH": "100",
"x": "814",
"y": "2213",
"properties": {
"curvature": "0",
"leftArrow": "false",
"rightArrow": "false",
"stroke": "dotted",
"color": "10027263",
"p0": {
"x": 0,
"y": 0
},
"p1": {
"x": 0.49999999999999994,
"y": 0
},
"p2": {
"x": 0,
"y": 81.09090909090901
}
}
},
{
"ID": "1",
"typeID": "Arrow",
"zOrder": "1",
"w": "1",
"h": "90",
"measuredW": "150",
"measuredH": "100",
"x": "1118",
"y": "1856",
"properties": {
"curvature": "0",
"leftArrow": "false",
"rightArrow": "false",
"color": "4273622",
"stroke": "dotted",
"p0": {
"x": 0,
"y": -0.48484848484849863
},
"p1": {
"x": 0.5,
"y": 0
},
"p2": {
"x": 0,
"y": 89.20412121212144
}
}
},
{
"ID": "2",
"typeID": "Arrow",
"zOrder": "2",
"w": "606",
"h": "1",
"measuredW": "150",
"measuredH": "100",
"x": "816",
"y": "1855",
"properties": {
"curvature": "0",
"leftArrow": "false",
"rightArrow": "false",
"p0": {
"x": 0.4393939393939945,
"y": 0
},
"p1": {
"x": 0.499957866859274,
"y": 0.000355669369753909
},
"p2": {
"x": 606.8787878787878,
"y": 0
},
"color": "4273622"
}
},
{
"ID": "3",
"typeID": "Arrow",
"zOrder": "3",
"w": "726",
"h": "1",
"measuredW": "150",
"measuredH": "100",
"x": "816",
"y": "708",
"properties": {
"curvature": "0",
"leftArrow": "false",
"rightArrow": "false",
"color": "4273622",
"p0": {
"x": -0.2686368305519409,
"y": 0
},
"p1": {
"x": 0.5001077701859017,
"y": 0.0003391382343339101
},
"p2": {
"x": 725.5310311167375,
"y": 0
}
}
},
{
"ID": "4",
"typeID": "Arrow",
"zOrder": "4",
"w": "588",
"h": "1",
"measuredW": "150",
"measuredH": "100",
"x": "225",
"y": "413",
"properties": {
"curvature": "0",
"leftArrow": "false",
"rightArrow": "false",
"color": "4273622",
"p0": {
"x": 0,
"y": 0
},
"p1": {
"x": 0.4999449522687746,
"y": 0.0003335799224988863
},
"p2": {
"x": 588,
"y": 0
}
}
},
{
"ID": "5",
"typeID": "Canvas",
"zOrder": "5",
"w": "189",
"h": "50",
"measuredW": "100",
"measuredH": "70",
"x": "394",
"y": "389",
"properties": {
"color": "16776960"
}
},
{
"ID": "6",
"typeID": "__group__",
"zOrder": "6",
"measuredW": "30",
"measuredH": "30",
"w": "30",
"h": "30",
"x": "214",
"y": "471",
"properties": {
"controlName": "check:use-standard-authentication"
},
"children": {
"controls": {
"control": [
{
"ID": "0",
"typeID": "TextArea",
"zOrder": "0",
"w": "30",
"h": "30",
"measuredW": "200",
"measuredH": "140",
"x": "0",
"y": "0"
}
]
}
}
},
{
"ID": "7",
"typeID": "__group__",
"zOrder": "7",
"measuredW": "472",
"measuredH": "28",
"w": "472",
"h": "28",
"x": "260",
"y": "472",
"properties": {
"controlName": "use-standard-authentication"
},
"children": {
"controls": {
"control": [
{
"ID": "0",
"typeID": "Label",
"zOrder": "0",
"measuredW": "472",
"measuredH": "28",
"x": "0",
"y": "0",
"properties": {
"size": "20",
"text": "Avoid ‘Basic Authentication’, use standard (e.g. JWT)"
}
}
]
}
}
},
{
"ID": "8",
"typeID": "Label",
"zOrder": "8",
"measuredW": "175",
"measuredH": "40",
"x": "726",
"y": "226",
"properties": {
"size": "32",
"text": "API Security"
}
},
{
"ID": "9",
"typeID": "Canvas",
"zOrder": "9",
"w": "361",
"h": "150",
"measuredW": "100",
"measuredH": "70",
"x": "1099",
"y": "158"
},
{
"ID": "10",
"typeID": "Label",
"zOrder": "10",
"measuredW": "332",
"measuredH": "26",
"x": "1115",
"y": "176",
"properties": {
"text": "Find the detailed version of this checklist",
"size": "18"
}
},
{
"ID": "11",
"typeID": "Label",
"zOrder": "11",
"measuredW": "318",
"measuredH": "26",
"x": "1115",
"y": "204",
"properties": {
"size": "18",
"text": "With details on how to implement these"
}
},
{
"ID": "12",
"typeID": "__group__",
"zOrder": "12",
"measuredW": "329",
"measuredH": "51",
"w": "329",
"h": "51",
"x": "1115",
"y": "240",
"properties": {
"controlName": "ext_link:roadmap.sh"
},
"children": {
"controls": {
"control": [
{
"ID": "0",
"typeID": "Canvas",
"zOrder": "0",
"w": "329",
"h": "51",
"measuredW": "100",
"measuredH": "70",
"x": "0",
"y": "0",
"properties": {
"color": "4273622",
"borderColor": "4273622"
}
},
{
"ID": "1",
"typeID": "Label",
"zOrder": "1",
"measuredW": "172",
"measuredH": "28",
"x": "79",
"y": "12",
"properties": {
"color": "16777215",
"size": "20",
"text": "https://roadmap.sh"
}
}
]
}
}
},
{
"ID": "13",
"typeID": "Canvas",
"zOrder": "13",
"w": "373",
"h": "169",
"measuredW": "100",
"measuredH": "70",
"x": "216",
"y": "148"
},
{
"ID": "14",
"typeID": "__group__",
"zOrder": "14",
"measuredW": "189",
"measuredH": "27",
"w": "189",
"h": "27",
"x": "246",
"y": "222",
"properties": {
"controlName": "ext_link:roadmap.sh/backend"
},
"children": {
"controls": {
"control": [
{
"ID": "0",
"typeID": "Label",
"zOrder": "0",
"measuredW": "156",
"measuredH": "26",
"x": "33",
"y": "0",
"properties": {
"size": "18",
"text": "Backend Roadmap"
}
},
{
"ID": "1",
"typeID": "__group__",
"zOrder": "1",
"measuredW": "24",
"measuredH": "24",
"w": "24",
"h": "24",
"x": "0",
"y": "3",
"children": {
"controls": {
"control": [
{
"ID": "0",
"typeID": "Icon",
"zOrder": "0",
"measuredW": "24",
"measuredH": "24",
"x": "0",
"y": "0",
"properties": {
"color": "16777215",
"icon": {
"ID": "circle",
"size": "small"
}
}
},
{
"ID": "1",
"typeID": "Icon",
"zOrder": "1",
"measuredW": "24",
"measuredH": "24",
"x": "0",
"y": "0",
"properties": {
"color": "10066329",
"icon": {
"ID": "check-circle",
"size": "small"
}
}
}
]
}
}
}
]
}
}
},
{
"ID": "15",
"typeID": "__group__",
"zOrder": "15",
"measuredW": "183",
"measuredH": "27",
"w": "183",
"h": "27",
"x": "246",
"y": "258",
"properties": {
"controlName": "ext_link:roadmap.sh/devops"
},
"children": {
"controls": {
"control": [
{
"ID": "0",
"typeID": "Label",
"zOrder": "0",
"measuredW": "150",
"measuredH": "26",
"x": "33",
"y": "0",
"properties": {
"size": "18",
"text": "DevOps Roadmap"
}
},
{
"ID": "1",
"typeID": "__group__",
"zOrder": "1",
"measuredW": "24",
"measuredH": "24",
"w": "24",
"h": "24",
"x": "0",
"y": "3",
"children": {
"controls": {
"control": [
{
"ID": "0",
"typeID": "Icon",
"zOrder": "0",
"measuredW": "24",
"measuredH": "24",
"x": "0",
"y": "0",
"properties": {
"color": "16777215",
"icon": {
"ID": "circle",
"size": "small"
}
}
},
{
"ID": "1",
"typeID": "Icon",
"zOrder": "1",
"measuredW": "24",
"measuredH": "24",
"x": "0",
"y": "0",
"properties": {
"color": "10066329",
"icon": {
"ID": "check-circle",
"size": "small"
}
}
}
]
}
}
}
]
}
}
},
{
"ID": "16",
"typeID": "Label",
"zOrder": "16",
"measuredW": "209",
"measuredH": "32",
"x": "246",
"y": "172",
"properties": {
"size": "24",
"text": "Related Roadmaps"
}
},
{
"ID": "17",
"typeID": "Arrow",
"zOrder": "17",
"w": "1",
"h": "76",
"measuredW": "150",
"measuredH": "100",
"x": "812",
"y": "134",
"properties": {
"curvature": "0",
"leftArrow": "false",
"rightArrow": "false",
"p0": {
"x": 0,
"y": 0
},
"p1": {
"x": 0.49999999999999994,
"y": 0
},
"p2": {
"x": 0,
"y": 76.17275043077757
},
"stroke": "dotted",
"color": "10027263"
}
},
{
"ID": "18",
"typeID": "Label",
"zOrder": "18",
"measuredW": "130",
"measuredH": "28",
"x": "424",
"y": "400",
"properties": {
"size": "20",
"text": "Authentication"
}
},
{
"ID": "19",
"typeID": "Arrow",
"zOrder": "19",
"w": "1",
"h": "1929",
"measuredW": "150",
"measuredH": "100",
"x": "814",
"y": "287",
"properties": {
"curvature": "0",
"leftArrow": "false",
"rightArrow": "false",
"color": "4273622",
"p0": {
"x": 0,
"y": -0.48484848484849863
},
"p1": {
"x": 0.4999999999999999,
"y": 0
},
"p2": {
"x": 0,
"y": 1928.151515151515
}
}
},
{
"ID": "20",
"typeID": "Canvas",
"zOrder": "20",
"w": "252",
"h": "50",
"measuredW": "100",
"measuredH": "70",
"x": "1015",
"y": "683",
"properties": {
"color": "16776960"
}
},
{
"ID": "21",
"typeID": "Label",
"zOrder": "21",
"measuredW": "55",
"measuredH": "28",
"x": "1113",
"y": "694",
"properties": {
"size": "20",
"text": "OAuth"
}
},
{
"ID": "22",
"typeID": "Canvas",
"zOrder": "22",
"w": "272",
"h": "50",
"measuredW": "100",
"measuredH": "70",
"x": "995",
"y": "1830",
"properties": {
"color": "4273622",
"borderColor": "4273622"
}
},
{
"ID": "23",
"typeID": "Label",
"zOrder": "23",
"measuredW": "151",
"measuredH": "28",
"x": "1055",
"y": "1841",
"properties": {
"size": "20",
"text": "More Resources",
"color": "16777215"
}
},
{
"ID": "24",
"typeID": "__group__",
"zOrder": "24",
"measuredW": "272",
"measuredH": "44",
"w": "272",
"h": "44",
"x": "995",
"y": "1934",
"properties": {
"controlName": "recommended-resources"
},
"children": {
"controls": {
"control": [
{
"ID": "0",
"typeID": "TextArea",
"zOrder": "0",
"w": "272",
"h": "44",
"measuredW": "200",
"measuredH": "140",
"x": "0",
"y": "0",
"properties": {
"color": "16770457"
}
},
{
"ID": "1",
"typeID": "Label",
"zOrder": "1",
"measuredW": "206",
"measuredH": "25",
"x": "33",
"y": "9",
"properties": {
"size": "17",
"text": "Recommended Resources"
}
}
]
}
}
},
{
"ID": "25",
"typeID": "TextArea",
"zOrder": "25",
"w": "438",
"h": "118",
"measuredW": "200",
"measuredH": "140",
"x": "595",
"y": "2127"
},
{
"ID": "26",
"typeID": "Label",
"zOrder": "26",
"measuredW": "366",
"measuredH": "25",
"x": "631",
"y": "2146",
"properties": {
"size": "17",
"text": "Continue Learning with following relevant tracks"
}
},
{
"ID": "27",
"typeID": "__group__",
"zOrder": "27",
"measuredW": "198",
"measuredH": "44",
"w": "198",
"h": "44",
"x": "818",
"y": "2183",
"properties": {
"controlName": "ext_link:roadmap.sh/devops"
},
"children": {
"controls": {
"control": [
{
"ID": "0",
"typeID": "TextArea",
"zOrder": "0",
"w": "198",
"h": "44",
"measuredW": "200",
"measuredH": "140",
"x": "0",
"y": "0",
"properties": {
"color": "16770457"
}
},
{
"ID": "1",
"typeID": "Label",
"zOrder": "1",
"measuredW": "141",
"measuredH": "25",
"x": "28",
"y": "10",
"properties": {
"size": "17",
"text": "DevOps Roadmap"
}
}
]
}
}
},
{
"ID": "28",
"typeID": "__group__",
"zOrder": "28",
"measuredW": "198",
"measuredH": "44",
"w": "198",
"h": "44",
"x": "610",
"y": "2183",
"properties": {
"controlName": "ext_link:roadmap.sh/backend"
},
"children": {
"controls": {
"control": [
{
"ID": "0",
"typeID": "TextArea",
"zOrder": "0",
"w": "198",
"h": "44",
"measuredW": "200",
"measuredH": "140",
"x": "0",
"y": "0",
"properties": {
"color": "16770457"
}
},
{
"ID": "1",
"typeID": "Label",
"zOrder": "1",
"measuredW": "147",
"measuredH": "25",
"x": "24",
"y": "10",
"properties": {
"size": "17",
"text": "Backend Roadmap"
}
}
]
}
}
},
{
"ID": "29",
"typeID": "__group__",
"zOrder": "29",
"measuredW": "30",
"measuredH": "30",
"w": "30",
"h": "30",
"x": "214",
"y": "513",
"properties": {
"controlName": "check:authentication-mechanisms"
},
"children": {
"controls": {
"control": [
{
"ID": "0",
"typeID": "TextArea",
"zOrder": "0",
"w": "30",
"h": "30",
"measuredW": "200",
"measuredH": "140",
"x": "0",
"y": "0"
}
]
}
}
},
{
"ID": "30",
"typeID": "__group__",
"zOrder": "30",
"measuredW": "510",
"measuredH": "28",
"w": "510",
"h": "28",
"x": "260",
"y": "514",
"properties": {
"controlName": "authentication-mechanisms"
},
"children": {
"controls": {
"control": [
{
"ID": "0",
"typeID": "Label",
"zOrder": "0",
"measuredW": "510",
"measuredH": "28",
"x": "0",
"y": "0",
"properties": {
"size": "20",
"text": "Do not reinvent the wheel in authentication mechanisms."
}
}
]
}
}
},
{
"ID": "31",
"typeID": "__group__",
"zOrder": "31",
"measuredW": "30",
"measuredH": "30",
"w": "30",
"h": "30",
"x": "214",
"y": "554",
"properties": {
"controlName": "check:max-retry-jail"
},
"children": {
"controls": {
"control": [
{
"ID": "0",
"typeID": "TextArea",
"zOrder": "0",
"w": "30",
"h": "30",
"measuredW": "200",
"measuredH": "140",
"x": "0",
"y": "0"
}
]
}
}
},
{
"ID": "32",
"typeID": "__group__",
"zOrder": "32",
"measuredW": "378",
"measuredH": "28",
"w": "378",
"h": "28",
"x": "260",
"y": "555",
"properties": {
"controlName": "max-retry-jail"
},
"children": {
"controls": {
"control": [
{
"ID": "0",
"typeID": "Label",
"zOrder": "0",
"measuredW": "378",
"measuredH": "28",
"x": "0",
"y": "0",
"properties": {
"size": "20",
"text": " Use `Max Retry’ and jail features in Login."
}
}
]
}
}
},
{
"ID": "33",
"typeID": "__group__",
"zOrder": "33",
"measuredW": "30",
"measuredH": "30",
"w": "30",
"h": "30",
"x": "215",
"y": "595",
"properties": {
"controlName": "check:sensitive-data-encryption"
},
"children": {
"controls": {
"control": [
{
"ID": "0",
"typeID": "TextArea",
"zOrder": "0",
"w": "30",
"h": "30",
"measuredW": "200",
"measuredH": "140",
"x": "0",
"y": "0"
}
]
}
}
},
{
"ID": "34",
"typeID": "__group__",
"zOrder": "34",
"measuredW": "325",
"measuredH": "28",
"w": "325",
"h": "28",
"x": "261",
"y": "596",
"properties": {
"controlName": "sensitive-data-encryption"
},
"children": {
"controls": {
"control": [
{
"ID": "0",
"typeID": "Label",
"zOrder": "0",
"measuredW": "325",
"measuredH": "28",
"x": "0",
"y": "0",
"properties": {
"size": "20",
"text": "Use encryption on all sensitive data."
}
}
]
}
}
},
{
"ID": "35",
"typeID": "Arrow",
"zOrder": "35",
"w": "653",
"h": "1",
"measuredW": "150",
"measuredH": "100",
"x": "814",
"y": "413",
"properties": {
"curvature": "0",
"leftArrow": "false",
"rightArrow": "false",
"color": "4273622",
"p0": {
"x": 0,
"y": 0
},
"p1": {
"x": 0.4999449522687745,
"y": 0.0003335799224988863
},
"p2": {
"x": 652.5,
"y": 0
}
}
},
{
"ID": "36",
"typeID": "Canvas",
"zOrder": "36",
"w": "281",
"h": "50",
"measuredW": "100",
"measuredH": "70",
"x": "1000",
"y": "388",
"properties": {
"color": "16776960"
}
},
{
"ID": "37",
"typeID": "Label",
"zOrder": "37",
"measuredW": "218",
"measuredH": "28",
"x": "1032",
"y": "399",
"properties": {
"size": "20",
"text": "JWT (JSON Web Token)"
}
},
{
"ID": "38",
"typeID": "__group__",
"zOrder": "38",
"measuredW": "30",
"measuredH": "30",
"w": "30",
"h": "30",
"x": "860",
"y": "469",
"properties": {
"controlName": "check:good-jwt-secret"
},
"children": {
"controls": {
"control": [
{
"ID": "0",
"typeID": "TextArea",
"zOrder": "0",
"w": "30",
"h": "30",
"measuredW": "200",
"measuredH": "140",
"x": "0",
"y": "0"
}
]
}
}
},
{
"ID": "39",
"typeID": "__group__",
"zOrder": "39",
"measuredW": "527",
"measuredH": "28",
"w": "527",
"h": "28",
"x": "906",
"y": "471",
"properties": {
"controlName": "good-jwt-secret"
},
"children": {
"controls": {
"control": [
{
"ID": "0",
"typeID": "Label",
"zOrder": "0",
"measuredW": "527",
"measuredH": "28",
"x": "0",
"y": "0",
"properties": {
"size": "20",
"text": "Use good `JWT Secret` to make brute force attacks difficult"
}
}
]
}
}
},
{
"ID": "40",
"typeID": "__group__",
"zOrder": "40",
"measuredW": "30",
"measuredH": "30",
"w": "30",
"h": "30",
"x": "861",
"y": "512",
"properties": {
"controlName": "check:jwt-algorithm"
},
"children": {
"controls": {
"control": [
{
"ID": "0",
"typeID": "TextArea",
"zOrder": "0",
"w": "30",
"h": "30",
"measuredW": "200",
"measuredH": "140",
"x": "0",
"y": "0"
}
]
}
}
},
{
"ID": "41",
"typeID": "__group__",
"zOrder": "41",
"measuredW": "526",
"measuredH": "28",
"w": "526",
"h": "28",
"x": "907",
"y": "513",
"properties": {
"controlName": "jwt-algorithm"
},
"children": {
"controls": {
"control": [
{
"ID": "0",
"typeID": "Label",
"zOrder": "0",
"measuredW": "526",
"measuredH": "28",
"x": "0",
"y": "0",
"properties": {
"size": "20",
"text": "Do not extract the algorithm from the header, use backend"
}
}
]
}
}
},
{
"ID": "42",
"typeID": "__group__",
"zOrder": "42",
"measuredW": "30",
"measuredH": "30",
"w": "30",
"h": "30",
"x": "861",
"y": "553",
"properties": {
"controlName": "check:token-expiry"
},
"children": {
"controls": {
"control": [
{
"ID": "0",
"typeID": "TextArea",
"zOrder": "0",
"w": "30",
"h": "30",
"measuredW": "200",
"measuredH": "140",
"x": "0",
"y": "0"
}
]
}
}
},
{
"ID": "43",
"typeID": "__group__",
"zOrder": "43",
"measuredW": "499",
"measuredH": "28",
"w": "499",
"h": "28",
"x": "907",
"y": "554",
"properties": {
"controlName": "token-expiry"
},
"children": {
"controls": {
"control": [
{
"ID": "0",
"typeID": "Label",
"zOrder": "0",
"measuredW": "499",
"measuredH": "28",
"x": "0",
"y": "0",
"properties": {
"size": "20",
"text": "Make token expiration (TTL, RTTL) as short as possible"
}
}
]
}
}
},
{
"ID": "44",
"typeID": "__group__",
"zOrder": "44",
"measuredW": "30",
"measuredH": "30",
"w": "30",
"h": "30",
"x": "861",
"y": "594",
"properties": {
"controlName": "check:jwt-payload"
},
"children": {
"controls": {
"control": [
{
"ID": "0",
"typeID": "TextArea",
"zOrder": "0",
"w": "30",
"h": "30",
"measuredW": "200",
"measuredH": "140",
"x": "0",
"y": "0"
}
]
}
}
},
{
"ID": "45",
"typeID": "__group__",
"zOrder": "45",
"measuredW": "389",
"measuredH": "28",
"w": "389",
"h": "28",
"x": "907",
"y": "595",
"properties": {
"controlName": "jwt-payload"
},
"children": {
"controls": {
"control": [
{
"ID": "0",
"typeID": "Label",
"zOrder": "0",
"measuredW": "389",
"measuredH": "28",
"x": "0",
"y": "0",
"properties": {
"size": "20",
"text": "Avoid storing sensitive data in JWT payload"
}
}
]
}
}
},
{
"ID": "46",
"typeID": "__group__",
"zOrder": "46",
"measuredW": "30",
"measuredH": "30",
"w": "30",
"h": "30",
"x": "861",
"y": "635",
"properties": {
"controlName": "check:payload-size"
},
"children": {
"controls": {
"control": [
{
"ID": "0",
"typeID": "TextArea",
"zOrder": "0",
"w": "30",
"h": "30",
"measuredW": "200",
"measuredH": "140",
"x": "0",
"y": "0"
}
]
}
}
},
{
"ID": "47",
"typeID": "__group__",
"zOrder": "47",
"measuredW": "536",
"measuredH": "28",
"w": "536",
"h": "28",
"x": "907",
"y": "636",
"properties": {
"controlName": "payload-size"
},
"children": {
"controls": {
"control": [
{
"ID": "0",
"typeID": "Label",
"zOrder": "0",
"measuredW": "536",
"measuredH": "28",
"x": "0",
"y": "0",
"properties": {
"size": "20",
"text": "Keep the payload small to reduce the size of the JWT token"
}
}
]
}
}
},
{
"ID": "48",
"typeID": "Arrow",
"zOrder": "48",
"w": "620",
"h": "1",
"measuredW": "150",
"measuredH": "100",
"x": "193",
"y": "708",
"properties": {
"curvature": "0",
"leftArrow": "false",
"rightArrow": "false",
"color": "4273622",
"p0": {
"x": 0.23125640404211367,
"y": 0
},
"p1": {
"x": 0.49994495226877456,
"y": 0.0003335799224988863
},
"p2": {
"x": 620.5,
"y": 0
}
}
},
{
"ID": "49",
"typeID": "Canvas",
"zOrder": "49",
"w": "264",
"h": "50",
"measuredW": "100",
"measuredH": "70",
"x": "357",
"y": "683",
"properties": {
"color": "16776960"
}
},
{
"ID": "50",
"typeID": "Label",
"zOrder": "50",
"measuredW": "136",
"measuredH": "28",
"x": "421",
"y": "694",
"properties": {
"size": "20",
"text": "Access Control"
}
},
{
"ID": "51",
"typeID": "__group__",
"zOrder": "51",
"measuredW": "30",
"measuredH": "30",
"w": "30",
"h": "30",
"x": "216",
"y": "779",
"properties": {
"controlName": "check:throttle-requests"
},
"children": {
"controls": {
"control": [
{
"ID": "0",
"typeID": "TextArea",
"zOrder": "0",
"w": "30",
"h": "30",
"measuredW": "200",
"measuredH": "140",
"x": "0",
"y": "0"
}
]
}
}
},
{
"ID": "52",
"typeID": "__group__",
"zOrder": "52",
"measuredW": "489",
"measuredH": "28",
"w": "489",
"h": "28",
"x": "262",
"y": "781",
"properties": {
"controlName": "throttle-requests"
},
"children": {
"controls": {
"control": [
{
"ID": "0",
"typeID": "Label",
"zOrder": "0",
"measuredW": "489",
"measuredH": "28",
"x": "0",
"y": "0",
"properties": {
"size": "20",
"text": "Limit requests (throttling) to avoid DDoS / Brute Force"
}
}
]
}
}
},
{
"ID": "53",
"typeID": "__group__",
"zOrder": "53",
"measuredW": "30",
"measuredH": "30",
"w": "30",
"h": "30",
"x": "216",
"y": "820",
"properties": {
"controlName": "check:use-https"
},
"children": {
"controls": {
"control": [
{
"ID": "0",
"typeID": "TextArea",
"zOrder": "0",
"w": "30",
"h": "30",
"measuredW": "200",
"measuredH": "140",
"x": "0",
"y": "0"
}
]
}
}
},
{
"ID": "54",
"typeID": "__group__",
"zOrder": "54",
"measuredW": "419",
"measuredH": "28",
"w": "419",
"h": "28",
"x": "262",
"y": "822",
"properties": {
"controlName": "use-https"
},
"children": {
"controls": {
"control": [
{
"ID": "0",
"typeID": "Label",
"zOrder": "0",
"measuredW": "419",
"measuredH": "28",
"x": "0",
"y": "0",
"properties": {
"size": "20",
"text": "Use HTTPS on server side and secure ciphers"
}
}
]
}
}
},
{
"ID": "55",
"typeID": "__group__",
"zOrder": "55",
"measuredW": "30",
"measuredH": "30",
"w": "30",
"h": "30",
"x": "216",
"y": "862",
"properties": {
"controlName": "check:hsts-header"
},
"children": {
"controls": {
"control": [
{
"ID": "0",
"typeID": "TextArea",
"zOrder": "0",
"w": "30",
"h": "30",
"measuredW": "200",
"measuredH": "140",
"x": "0",
"y": "0"
}
]
}
}
},
{
"ID": "56",
"typeID": "__group__",
"zOrder": "56",
"measuredW": "482",
"measuredH": "28",
"w": "482",
"h": "28",
"x": "262",
"y": "864",
"properties": {
"controlName": "hsts-header"
},
"children": {
"controls": {
"control": [
{
"ID": "0",
"typeID": "Label",
"zOrder": "0",
"measuredW": "482",
"measuredH": "28",
"x": "0",
"y": "0",
"properties": {
"size": "20",
"text": "Use HSTS header with SSL to avoid SSL Strip attacks."
}
}
]
}
}
},
{
"ID": "57",
"typeID": "__group__",
"zOrder": "57",
"measuredW": "30",
"measuredH": "30",
"w": "30",
"h": "30",
"x": "216",
"y": "903",
"properties": {
"controlName": "check:directory-listings"
},
"children": {
"controls": {
"control": [
{
"ID": "0",
"typeID": "TextArea",
"zOrder": "0",
"w": "30",
"h": "30",
"measuredW": "200",
"measuredH": "140",
"x": "0",
"y": "0"
}
]
}
}
},
{
"ID": "58",
"typeID": "__group__",
"zOrder": "58",
"measuredW": "220",
"measuredH": "28",
"w": "220",
"h": "28",
"x": "262",
"y": "905",
"properties": {
"controlName": "directory-listings"
},
"children": {
"controls": {
"control": [
{
"ID": "0",
"typeID": "Label",
"zOrder": "0",
"measuredW": "220",
"measuredH": "28",
"x": "0",
"y": "0",
"properties": {
"size": "20",
"text": "Turn off directory listings"
}
}
]
}
}
},
{
"ID": "59",
"typeID": "__group__",
"zOrder": "59",
"measuredW": "30",
"measuredH": "30",
"w": "30",
"h": "30",
"x": "216",
"y": "945",
"properties": {
"controlName": "check:restrict-private-apis"
},
"children": {
"controls": {
"control": [
{
"ID": "0",
"typeID": "TextArea",
"zOrder": "0",
"w": "30",
"h": "30",
"measuredW": "200",
"measuredH": "140",
"x": "0",
"y": "0"
}
]
}
}
},
{
"ID": "60",
"typeID": "__group__",
"zOrder": "60",
"measuredW": "480",
"measuredH": "28",
"w": "480",
"h": "28",
"x": "262",
"y": "947",
"properties": {
"controlName": "restrict-private-apis"
},
"children": {
"controls": {
"control": [
{
"ID": "0",
"typeID": "Label",
"zOrder": "0",
"measuredW": "480",
"measuredH": "28",
"x": "0",
"y": "0",
"properties": {
"size": "20",
"text": "Private APIs to be only accessible from safe listed IPs"
}
}
]
}
}
},
{
"ID": "61",
"typeID": "__group__",
"zOrder": "61",
"measuredW": "30",
"measuredH": "30",
"w": "30",
"h": "30",
"x": "861",
"y": "765",
"properties": {
"controlName": "check:oauth-redirect-ui"
},
"children": {
"controls": {
"control": [
{
"ID": "0",
"typeID": "TextArea",
"zOrder": "0",
"w": "30",
"h": "30",
"measuredW": "200",
"measuredH": "140",
"x": "0",
"y": "0"
}
]
}
}
},
{
"ID": "62",
"typeID": "__group__",
"zOrder": "62",
"measuredW": "391",
"measuredH": "28",
"w": "391",
"h": "28",
"x": "907",
"y": "766",
"properties": {
"controlName": "oauth-redirect-ui"
},
"children": {
"controls": {
"control": [
{
"ID": "0",
"typeID": "Label",
"zOrder": "0",
"measuredW": "391",
"measuredH": "28",
"x": "0",
"y": "0",
"properties": {
"size": "20",
"text": "Always validate `redirect_uri’ on server-side"
}
}
]
}
}
},
{
"ID": "63",
"typeID": "__group__",
"zOrder": "63",
"measuredW": "30",
"measuredH": "30",
"w": "30",
"h": "30",
"x": "861",
"y": "806",
"properties": {
"controlName": "check:response-type-token"
},
"children": {
"controls": {
"control": [
{
"ID": "0",
"typeID": "TextArea",
"zOrder": "0",
"w": "30",
"h": "30",
"measuredW": "200",
"measuredH": "140",
"x": "0",
"y": "0"
}
]
}
}
},
{
"ID": "64",
"typeID": "__group__",
"zOrder": "64",
"measuredW": "524",
"measuredH": "28",
"w": "524",
"h": "28",
"x": "907",
"y": "807",
"properties": {
"controlName": "response-type-token"
},
"children": {
"controls": {
"control": [
{
"ID": "0",
"typeID": "Label",
"zOrder": "0",
"measuredW": "524",
"measuredH": "28",
"x": "0",
"y": "0",
"properties": {
"size": "20",
"text": "Avoid `response_type=token’ and try to exchange for code"
}
}
]
}
}
},
{
"ID": "65",
"typeID": "__group__",
"zOrder": "65",
"measuredW": "30",
"measuredH": "30",
"w": "30",
"h": "30",
"x": "861",
"y": "846",
"properties": {
"controlName": "check:oauth-state"
},
"children": {
"controls": {
"control": [
{
"ID": "0",
"typeID": "TextArea",
"zOrder": "0",
"w": "30",
"h": "30",
"measuredW": "200",
"measuredH": "140",
"x": "0",
"y": "0"
}
]
}
}
},
{
"ID": "66",
"typeID": "__group__",
"zOrder": "66",
"measuredW": "420",
"measuredH": "28",
"w": "420",
"h": "28",
"x": "907",
"y": "847",
"properties": {
"controlName": "oauth-state"
},
"children": {
"controls": {
"control": [
{
"ID": "0",
"typeID": "Label",
"zOrder": "0",
"measuredW": "420",
"measuredH": "28",
"x": "0",
"y": "0",
"properties": {
"size": "20",
"text": "Use `state’ parameter to prevent CSRF attacks"
}
}
]
}
}
},
{
"ID": "67",
"typeID": "__group__",
"zOrder": "67",
"measuredW": "30",
"measuredH": "30",
"w": "30",
"h": "30",
"x": "861",
"y": "886",
"properties": {
"controlName": "check:oauth-validate-scope"
},
"children": {
"controls": {
"control": [
{
"ID": "0",
"typeID": "TextArea",
"zOrder": "0",
"w": "30",
"h": "30",
"measuredW": "200",
"measuredH": "140",
"x": "0",
"y": "0"
}
]
}
}
},
{
"ID": "68",
"typeID": "__group__",
"zOrder": "68",
"measuredW": "539",
"measuredH": "28",
"w": "539",
"h": "28",
"x": "907",
"y": "887",
"properties": {
"controlName": "oauth-validate-scope"
},
"children": {
"controls": {
"control": [
{
"ID": "0",
"typeID": "Label",
"zOrder": "0",
"measuredW": "539",
"measuredH": "28",
"x": "0",
"y": "0",
"properties": {
"size": "20",
"text": "Have default scope, and validate scope for each application"
}
}
]
}
}
},
{
"ID": "69",
"typeID": "Arrow",
"zOrder": "69",
"w": "620",
"h": "1",
"measuredW": "150",
"measuredH": "100",
"x": "193",
"y": "1046",
"properties": {
"curvature": "0",
"leftArrow": "false",
"rightArrow": "false",
"color": "4273622",
"p0": {
"x": 0.23125640404211367,
"y": 0
},
"p1": {
"x": 0.49994495226877456,
"y": 0.0003335799224988863
},
"p2": {
"x": 620.5,
"y": 0
}
}
},
{
"ID": "70",
"typeID": "Canvas",
"zOrder": "70",
"w": "264",
"h": "50",
"measuredW": "100",
"measuredH": "70",
"x": "357",
"y": "1021",
"properties": {
"color": "16776960"
}
},
{
"ID": "71",
"typeID": "Label",
"zOrder": "71",
"measuredW": "47",
"measuredH": "28",
"x": "465",
"y": "1032",
"properties": {
"size": "20",
"text": "Input"
}
},
{
"ID": "72",
"typeID": "__group__",
"zOrder": "72",
"measuredW": "30",
"measuredH": "30",
"w": "30",
"h": "30",
"x": "214",
"y": "1103",
"properties": {
"controlName": "check:proper-http-methods"
},
"children": {
"controls": {
"control": [
{
"ID": "0",
"typeID": "TextArea",
"zOrder": "0",
"w": "30",
"h": "30",
"measuredW": "200",
"measuredH": "140",
"x": "0",
"y": "0"
}
]
}
}
},
{
"ID": "73",
"typeID": "__group__",
"zOrder": "73",
"measuredW": "399",
"measuredH": "28",
"w": "399",
"h": "28",
"x": "261",
"y": "1105",
"properties": {
"controlName": "proper-http-methods"
},
"children": {
"controls": {
"control": [
{
"ID": "0",
"typeID": "Label",
"zOrder": "0",
"measuredW": "399",
"measuredH": "28",
"x": "0",
"y": "0",
"properties": {
"size": "20",
"text": "Use proper HTTP methods for the operation"
}
}
]
}
}
},
{
"ID": "74",
"typeID": "__group__",
"zOrder": "74",
"measuredW": "30",
"measuredH": "30",
"w": "30",
"h": "30",
"x": "214",
"y": "1146",
"properties": {
"controlName": "check:validate-content-type"
},
"children": {
"controls": {
"control": [
{
"ID": "0",
"typeID": "TextArea",
"zOrder": "0",
"w": "30",
"h": "30",
"measuredW": "200",
"measuredH": "140",
"x": "0",
"y": "0"
}
]
}
}
},
{
"ID": "75",
"typeID": "__group__",
"zOrder": "75",
"measuredW": "373",
"measuredH": "28",
"w": "373",
"h": "28",
"x": "261",
"y": "1148",
"properties": {
"controlName": "validate-content-type"
},
"children": {
"controls": {
"control": [
{
"ID": "0",
"typeID": "Label",
"zOrder": "0",
"measuredW": "373",
"measuredH": "28",
"x": "0",
"y": "0",
"properties": {
"size": "20",
"text": "Validate `content-type` on request header"
}
}
]
}
}
},
{
"ID": "76",
"typeID": "__group__",
"zOrder": "76",
"measuredW": "30",
"measuredH": "30",
"w": "30",
"h": "30",
"x": "215",
"y": "1186",
"properties": {
"controlName": "check:validate-user-input"
},
"children": {
"controls": {
"control": [
{
"ID": "0",
"typeID": "TextArea",
"zOrder": "0",
"w": "30",
"h": "30",
"measuredW": "200",
"measuredH": "140",
"x": "0",
"y": "0"
}
]
}
}
},
{
"ID": "77",
"typeID": "__group__",
"zOrder": "77",
"measuredW": "457",
"measuredH": "28",
"w": "457",
"h": "28",
"x": "261",
"y": "1188",
"properties": {
"controlName": "validate-user-input"
},
"children": {
"controls": {
"control": [
{
"ID": "0",
"typeID": "Label",
"zOrder": "0",
"measuredW": "457",
"measuredH": "28",
"x": "0",
"y": "0",
"properties": {
"size": "20",
"text": "Validate user input to avoid common vulnerabilities"
}
}
]
}
}
},
{
"ID": "78",
"typeID": "__group__",
"zOrder": "78",
"measuredW": "30",
"measuredH": "30",
"w": "30",
"h": "30",
"x": "215",
"y": "1224",
"properties": {
"controlName": "check:authorization-header"
},
"children": {
"controls": {
"control": [
{
"ID": "0",
"typeID": "TextArea",
"zOrder": "0",
"w": "30",
"h": "30",
"measuredW": "200",
"measuredH": "140",
"x": "0",
"y": "0"
}
]
}
}
},
{
"ID": "79",
"typeID": "__group__",
"zOrder": "79",
"measuredW": "474",
"measuredH": "28",
"w": "474",
"h": "28",
"x": "261",
"y": "1226",
"properties": {
"controlName": "authorization-header"
},
"children": {
"controls": {
"control": [
{
"ID": "0",
"typeID": "Label",
"zOrder": "0",
"measuredW": "474",
"measuredH": "28",
"x": "0",
"y": "0",
"properties": {
"size": "20",
"text": "Use standard Authorization header for sensitive data"
}
}
]
}
}
},
{
"ID": "80",
"typeID": "__group__",
"zOrder": "80",
"measuredW": "30",
"measuredH": "30",
"w": "30",
"h": "30",
"x": "216",
"y": "1263",
"properties": {
"controlName": "check:only-server-side-encryption"
},
"children": {
"controls": {
"control": [
{
"ID": "0",
"typeID": "TextArea",
"zOrder": "0",
"w": "30",
"h": "30",
"measuredW": "200",
"measuredH": "140",
"x": "0",
"y": "0"
}
]
}
}
},
{
"ID": "81",
"typeID": "__group__",
"zOrder": "81",
"measuredW": "285",
"measuredH": "28",
"w": "285",
"h": "28",
"x": "261",
"y": "1265",
"properties": {
"controlName": "only-server-side-encryption"
},
"children": {
"controls": {
"control": [
{
"ID": "0",
"typeID": "Label",
"zOrder": "0",
"measuredW": "285",
"measuredH": "28",
"x": "0",
"y": "0",
"properties": {
"size": "20",
"text": "Use only server-side encryption"
}
}
]
}
}
},
{
"ID": "82",
"typeID": "__group__",
"zOrder": "82",
"measuredW": "30",
"measuredH": "30",
"w": "30",
"h": "30",
"x": "216",
"y": "1305",
"properties": {
"controlName": "check:api-gateway"
},
"children": {
"controls": {
"control": [
{
"ID": "0",
"typeID": "TextArea",
"zOrder": "0",
"w": "30",
"h": "30",
"measuredW": "200",
"measuredH": "140",
"x": "0",
"y": "0"
}
]
}
}
},
{
"ID": "83",
"typeID": "__group__",
"zOrder": "83",
"measuredW": "499",
"measuredH": "28",
"w": "499",
"h": "28",
"x": "261",
"y": "1307",
"properties": {
"controlName": "api-gateway"
},
"children": {
"controls": {
"control": [
{
"ID": "0",
"typeID": "Label",
"zOrder": "0",
"measuredW": "499",
"measuredH": "28",
"x": "0",
"y": "0",
"properties": {
"size": "20",
"text": "Use an API Gateway for caching, Rate Limit policies etc"
}
}
]
}
}
},
{
"ID": "84",
"typeID": "Arrow",
"zOrder": "84",
"w": "726",
"h": "1",
"measuredW": "150",
"measuredH": "100",
"x": "816",
"y": "978",
"properties": {
"curvature": "0",
"leftArrow": "false",
"rightArrow": "false",
"color": "4273622",
"p0": {
"x": -0.2686368305519409,
"y": 0
},
"p1": {
"x": 0.5001077701859017,
"y": 0.0003391382343339101
},
"p2": {
"x": 725.5310311167375,
"y": 0
}
}
},
{
"ID": "85",
"typeID": "Canvas",
"zOrder": "85",
"w": "252",
"h": "50",
"measuredW": "100",
"measuredH": "70",
"x": "1015",
"y": "953",
"properties": {
"color": "16776960"
}
},
{
"ID": "86",
"typeID": "Label",
"zOrder": "86",
"measuredW": "101",
"measuredH": "28",
"x": "1090",
"y": "964",
"properties": {
"size": "20",
"text": "Processing"
}
},
{
"ID": "87",
"typeID": "__group__",
"zOrder": "87",
"measuredW": "30",
"measuredH": "30",
"w": "30",
"h": "30",
"x": "861",
"y": "1035",
"properties": {
"controlName": "check:endpoint-authentication"
},
"children": {
"controls": {
"control": [
{
"ID": "0",
"typeID": "TextArea",
"zOrder": "0",
"w": "30",
"h": "30",
"measuredW": "200",
"measuredH": "140",
"x": "0",
"y": "0"
}
]
}
}
},
{
"ID": "88",
"typeID": "__group__",
"zOrder": "88",
"measuredW": "559",
"measuredH": "61",
"w": "559",
"h": "61",
"x": "907",
"y": "1036",
"properties": {
"controlName": "endpoint-authentication"
},
"children": {
"controls": {
"control": [
{
"ID": "0",
"typeID": "Label",
"zOrder": "0",
"measuredW": "559",
"measuredH": "28",
"x": "0",
"y": "0",
"properties": {
"size": "20",
"text": "Check if all the endpoints are protected behind authentication"
}
},
{
"ID": "1",
"typeID": "Label",
"zOrder": "1",
"measuredW": "351",
"measuredH": "28",
"x": "0",
"y": "33",
"properties": {
"size": "20",
"text": "to avoid broken authentication process"
}
}
]
}
}
},
{
"ID": "89",
"typeID": "__group__",
"zOrder": "89",
"measuredW": "30",
"measuredH": "30",
"w": "30",
"h": "30",
"x": "861",
"y": "1105",
"properties": {
"controlName": "check:avoid-personal-id-urls"
},
"children": {
"controls": {
"control": [
{
"ID": "0",
"typeID": "TextArea",
"zOrder": "0",
"w": "30",
"h": "30",
"measuredW": "200",
"measuredH": "140",
"x": "0",
"y": "0"
}
]
}
}
},
{
"ID": "90",
"typeID": "__group__",
"zOrder": "90",
"measuredW": "618",
"measuredH": "28",
"w": "618",
"h": "28",
"x": "907",
"y": "1108",
"properties": {
"controlName": "avoid-personal-id-urls"
},
"children": {
"controls": {
"control": [
{
"ID": "0",
"typeID": "Label",
"zOrder": "0",
"measuredW": "618",
"measuredH": "28",
"x": "0",
"y": "0",
"properties": {
"size": "20",
"text": "Avoid user’s personal ID in the resource URLs e.g. {color:blue}users/242/orders{color}"
}
}
]
}
}
},
{
"ID": "91",
"typeID": "__group__",
"zOrder": "91",
"measuredW": "30",
"measuredH": "30",
"w": "30",
"h": "30",
"x": "861",
"y": "1149",
"properties": {
"controlName": "check:prefer-uuid"
},
"children": {
"controls": {
"control": [
{
"ID": "0",
"typeID": "TextArea",
"zOrder": "0",
"w": "30",
"h": "30",
"measuredW": "200",
"measuredH": "140",
"x": "0",
"y": "0"
}
]
}
}
},
{
"ID": "92",
"typeID": "__group__",
"zOrder": "92",
"measuredW": "390",
"measuredH": "28",
"w": "390",
"h": "28",
"x": "907",
"y": "1152",
"properties": {
"controlName": "prefer-uuid"
},
"children": {
"controls": {
"control": [
{
"ID": "0",
"typeID": "Label",
"zOrder": "0",
"measuredW": "390",
"measuredH": "28",
"x": "0",
"y": "0",
"properties": {
"size": "20",
"text": "Prefer using UUID over auto-increment IDs"
}
}
]
}
}
},
{
"ID": "93",
"typeID": "__group__",
"zOrder": "93",
"measuredW": "30",
"measuredH": "30",
"w": "30",
"h": "30",
"x": "861",
"y": "1191",
"properties": {
"controlName": "check:disable-entity-parsing-xml"
},
"children": {
"controls": {
"control": [
{
"ID": "0",
"typeID": "TextArea",
"zOrder": "0",
"w": "30",
"h": "30",
"measuredW": "200",
"measuredH": "140",
"x": "0",
"y": "0"
}
]
}
}
},
{
"ID": "94",
"typeID": "__group__",
"zOrder": "94",
"measuredW": "586",
"measuredH": "28",
"w": "586",
"h": "28",
"x": "907",
"y": "1194",
"properties": {
"controlName": "disable-entity-parsing-xml"
},
"children": {
"controls": {
"control": [
{
"ID": "0",
"typeID": "Label",
"zOrder": "0",
"measuredW": "586",
"measuredH": "28",
"x": "0",
"y": "0",
"properties": {
"size": "20",
"text": "Disable entity parsing if you are parsing XML to avoid XXE attacks"
}
}
]
}
}
},
{
"ID": "95",
"typeID": "__group__",
"zOrder": "95",
"measuredW": "30",
"measuredH": "30",
"w": "30",
"h": "30",
"x": "861",
"y": "1233",
"properties": {
"controlName": "check:disable-entity-expansion"
},
"children": {
"controls": {
"control": [
{
"ID": "0",
"typeID": "TextArea",
"zOrder": "0",
"w": "30",
"h": "30",
"measuredW": "200",
"measuredH": "140",
"x": "0",
"y": "0"
}
]
}
}
},
{
"ID": "96",
"typeID": "__group__",
"zOrder": "96",
"measuredW": "584",
"measuredH": "28",
"w": "584",
"h": "28",
"x": "907",
"y": "1234",
"properties": {
"controlName": "disable-entity-expansion"
},
"children": {
"controls": {
"control": [
{
"ID": "0",
"typeID": "Label",
"zOrder": "0",
"measuredW": "584",
"measuredH": "28",
"x": "0",
"y": "0",
"properties": {
"size": "20",
"text": "Disable entity expansion if using XML, YML or any other language"
}
}
]
}
}
},
{
"ID": "97",
"typeID": "__group__",
"zOrder": "97",
"measuredW": "30",
"measuredH": "30",
"w": "30",
"h": "30",
"x": "861",
"y": "1275",
"properties": {
"controlName": "check:cdn-for-file-uploads"
},
"children": {
"controls": {
"control": [
{
"ID": "0",
"typeID": "TextArea",
"zOrder": "0",
"w": "30",
"h": "30",
"measuredW": "200",
"measuredH": "140",
"x": "0",
"y": "0"
}
]
}
}
},
{
"ID": "98",
"typeID": "__group__",
"zOrder": "98",
"measuredW": "223",
"measuredH": "28",
"w": "223",
"h": "28",
"x": "907",
"y": "1276",
"properties": {
"controlName": "cdn-for-file-uploads"
},
"children": {
"controls": {
"control": [
{
"ID": "0",
"typeID": "Label",
"zOrder": "0",
"measuredW": "223",
"measuredH": "28",
"x": "0",
"y": "0",
"properties": {
"size": "20",
"text": "Use CDN for file uploads"
}
}
]
}
}
},
{
"ID": "99",
"typeID": "__group__",
"zOrder": "99",
"measuredW": "30",
"measuredH": "30",
"w": "30",
"h": "30",
"x": "861",
"y": "1316",
"properties": {
"controlName": "check:avoid-http-blocking"
},
"children": {
"controls": {
"control": [
{
"ID": "0",
"typeID": "TextArea",
"zOrder": "0",
"w": "30",
"h": "30",
"measuredW": "200",
"measuredH": "140",
"x": "0",
"y": "0"
}
]
}
}
},
{
"ID": "100",
"typeID": "__group__",
"zOrder": "100",
"measuredW": "520",
"measuredH": "28",
"w": "520",
"h": "28",
"x": "907",
"y": "1317",
"properties": {
"controlName": "avoid-http-blocking"
},
"children": {
"controls": {
"control": [
{
"ID": "0",
"typeID": "Label",
"zOrder": "0",
"measuredW": "520",
"measuredH": "28",
"x": "0",
"y": "0",
"properties": {
"size": "20",
"text": "Avoid HTTP blocking if you are using huge amount of data"
}
}
]
}
}
},
{
"ID": "101",
"typeID": "__group__",
"zOrder": "101",
"measuredW": "30",
"measuredH": "30",
"w": "30",
"h": "30",
"x": "861",
"y": "1358",
"properties": {
"controlName": "check:debug-mode-off"
},
"children": {
"controls": {
"control": [
{
"ID": "0",
"typeID": "TextArea",
"zOrder": "0",
"w": "30",
"h": "30",
"measuredW": "200",
"measuredH": "140",
"x": "0",
"y": "0"
}
]
}
}
},
{
"ID": "102",
"typeID": "__group__",
"zOrder": "102",
"measuredW": "464",
"measuredH": "28",
"w": "464",
"h": "28",
"x": "907",
"y": "1359",
"properties": {
"controlName": "debug-mode-off"
},
"children": {
"controls": {
"control": [
{
"ID": "0",
"typeID": "Label",
"zOrder": "0",
"measuredW": "464",
"measuredH": "28",
"x": "0",
"y": "0",
"properties": {
"size": "20",
"text": "Make sure to turn the debug mode off in production"
}
}
]
}
}
},
{
"ID": "103",
"typeID": "__group__",
"zOrder": "103",
"measuredW": "30",
"measuredH": "30",
"w": "30",
"h": "30",
"x": "861",
"y": "1400",
"properties": {
"controlName": "check:non-executable-stacks"
},
"children": {
"controls": {
"control": [
{
"ID": "0",
"typeID": "TextArea",
"zOrder": "0",
"w": "30",
"h": "30",
"measuredW": "200",
"measuredH": "140",
"x": "0",
"y": "0"
}
]
}
}
},
{
"ID": "104",
"typeID": "__group__",
"zOrder": "104",
"measuredW": "386",
"measuredH": "28",
"w": "386",
"h": "28",
"x": "907",
"y": "1401",
"properties": {
"controlName": "non-executable-stacks"
},
"children": {
"controls": {
"control": [
{
"ID": "0",
"typeID": "Label",
"zOrder": "0",
"measuredW": "386",
"measuredH": "28",
"x": "0",
"y": "0",
"properties": {
"size": "20",
"text": "Use non-executable stacks when available."
}
}
]
}
}
},
{
"ID": "105",
"typeID": "Arrow",
"zOrder": "105",
"w": "620",
"h": "1",
"measuredW": "150",
"measuredH": "100",
"x": "193",
"y": "1410",
"properties": {
"curvature": "0",
"leftArrow": "false",
"rightArrow": "false",
"color": "4273622",
"p0": {
"x": 0.23125640404211367,
"y": 0
},
"p1": {
"x": 0.49994495226877456,
"y": 0.0003335799224988863
},
"p2": {
"x": 620.5,
"y": 0
}
}
},
{
"ID": "106",
"typeID": "Canvas",
"zOrder": "106",
"w": "264",
"h": "50",
"measuredW": "100",
"measuredH": "70",
"x": "357",
"y": "1385",
"properties": {
"color": "16776960"
}
},
{
"ID": "107",
"typeID": "Label",
"zOrder": "107",
"measuredW": "62",
"measuredH": "28",
"x": "458",
"y": "1396",
"properties": {
"size": "20",
"text": "Output"
}
},
{
"ID": "108",
"typeID": "__group__",
"zOrder": "108",
"measuredW": "30",
"measuredH": "30",
"w": "30",
"h": "30",
"x": "196",
"y": "1467",
"properties": {
"controlName": "check:no-sniff-header"
},
"children": {
"controls": {
"control": [
{
"ID": "0",
"typeID": "TextArea",
"zOrder": "0",
"w": "30",
"h": "30",
"measuredW": "200",
"measuredH": "140",
"x": "0",
"y": "0"
}
]
}
}
},
{
"ID": "109",
"typeID": "__group__",
"zOrder": "109",
"measuredW": "416",
"measuredH": "28",
"w": "416",
"h": "28",
"x": "243",
"y": "1469",
"properties": {
"controlName": "no-sniff-header"
},
"children": {
"controls": {
"control": [
{
"ID": "0",
"typeID": "Label",
"zOrder": "0",
"measuredW": "416",
"measuredH": "28",
"x": "0",
"y": "0",
"properties": {
"size": "20",
"text": "Send `X-Content-Type-Options: nosniff` header"
}
}
]
}
}
},
{
"ID": "110",
"typeID": "__group__",
"zOrder": "110",
"measuredW": "30",
"measuredH": "30",
"w": "30",
"h": "30",
"x": "196",
"y": "1508",
"properties": {
"controlName": "check:x-frame-options-deny"
},
"children": {
"controls": {
"control": [
{
"ID": "0",
"typeID": "TextArea",
"zOrder": "0",
"w": "30",
"h": "30",
"measuredW": "200",
"measuredH": "140",
"x": "0",
"y": "0"
}
]
}
}
},
{
"ID": "111",
"typeID": "__group__",
"zOrder": "111",
"measuredW": "341",
"measuredH": "28",
"w": "341",
"h": "28",
"x": "243",
"y": "1510",
"properties": {
"controlName": "x-frame-options-deny"
},
"children": {
"controls": {
"control": [
{
"ID": "0",
"typeID": "Label",
"zOrder": "0",
"measuredW": "341",
"measuredH": "28",
"x": "0",
"y": "0",
"properties": {
"size": "20",
"text": "Send `X-Frame-Options: deny` header."
}
}
]
}
}
},
{
"ID": "112",
"typeID": "__group__",
"zOrder": "112",
"measuredW": "30",
"measuredH": "30",
"w": "30",
"h": "30",
"x": "196",
"y": "1549",
"properties": {
"controlName": "check:csp-header"
},
"children": {
"controls": {
"control": [
{
"ID": "0",
"typeID": "TextArea",
"zOrder": "0",
"w": "30",
"h": "30",
"measuredW": "200",
"measuredH": "140",
"x": "0",
"y": "0"
}
]
}
}
},
{
"ID": "113",
"typeID": "__group__",
"zOrder": "113",
"measuredW": "511",
"measuredH": "28",
"w": "511",
"h": "28",
"x": "243",
"y": "1551",
"properties": {
"controlName": "csp-header"
},
"children": {
"controls": {
"control": [
{
"ID": "0",
"typeID": "Label",
"zOrder": "0",
"measuredW": "511",
"measuredH": "28",
"x": "0",
"y": "0",
"properties": {
"size": "20",
"text": "Send `Content-Security-Policy: default-src 'none'` header."
}
}
]
}
}
},
{
"ID": "114",
"typeID": "__group__",
"zOrder": "114",
"measuredW": "30",
"measuredH": "30",
"w": "30",
"h": "30",
"x": "196",
"y": "1590",
"properties": {
"controlName": "check:remove-fingerprint-header"
},
"children": {
"controls": {
"control": [
{
"ID": "0",
"typeID": "TextArea",
"zOrder": "0",
"w": "30",
"h": "30",
"measuredW": "200",
"measuredH": "140",
"x": "0",
"y": "0"
}
]
}
}
},
{
"ID": "115",
"typeID": "__group__",
"zOrder": "115",
"measuredW": "485",
"measuredH": "28",
"w": "485",
"h": "28",
"x": "243",
"y": "1592",
"properties": {
"controlName": "remove-fingerprint-header"
},
"children": {
"controls": {
"control": [
{
"ID": "0",
"typeID": "Label",
"zOrder": "0",
"measuredW": "485",
"measuredH": "28",
"x": "0",
"y": "0",
"properties": {
"size": "20",
"text": "Remove fingerprinting headers (i.e. x-powered-by etc)"
}
}
]
}
}
},
{
"ID": "116",
"typeID": "__group__",
"zOrder": "116",
"measuredW": "30",
"measuredH": "30",
"w": "30",
"h": "30",
"x": "196",
"y": "1631",
"properties": {
"controlName": "check:force-content-type"
},
"children": {
"controls": {
"control": [
{
"ID": "0",
"typeID": "TextArea",
"zOrder": "0",
"w": "30",
"h": "30",
"measuredW": "200",
"measuredH": "140",
"x": "0",
"y": "0"
}
]
}
}
},
{
"ID": "117",
"typeID": "__group__",
"zOrder": "117",
"measuredW": "345",
"measuredH": "28",
"w": "345",
"h": "28",
"x": "243",
"y": "1633",
"properties": {
"controlName": "force-content-type"
},
"children": {
"controls": {
"control": [
{
"ID": "0",
"typeID": "Label",
"zOrder": "0",
"measuredW": "345",
"measuredH": "28",
"x": "0",
"y": "0",
"properties": {
"size": "20",
"text": "Force `content-type` for your response."
}
}
]
}
}
},
{
"ID": "118",
"typeID": "__group__",
"zOrder": "118",
"measuredW": "30",
"measuredH": "30",
"w": "30",
"h": "30",
"x": "196",
"y": "1672",
"properties": {
"controlName": "check:avoid-sensitive-data"
},
"children": {
"controls": {
"control": [
{
"ID": "0",
"typeID": "TextArea",
"zOrder": "0",
"w": "30",
"h": "30",
"measuredW": "200",
"measuredH": "140",
"x": "0",
"y": "0"
}
]
}
}
},
{
"ID": "119",
"typeID": "__group__",
"zOrder": "119",
"measuredW": "531",
"measuredH": "28",
"w": "531",
"h": "28",
"x": "243",
"y": "1674",
"properties": {
"controlName": "avoid-sensitive-data"
},
"children": {
"controls": {
"control": [
{
"ID": "0",
"typeID": "Label",
"zOrder": "0",
"measuredW": "531",
"measuredH": "28",
"x": "0",
"y": "0",
"properties": {
"size": "20",
"text": "Avoid returning sensitive data (credentials, sec. tokens etc)"
}
}
]
}
}
},
{
"ID": "120",
"typeID": "__group__",
"zOrder": "120",
"measuredW": "30",
"measuredH": "30",
"w": "30",
"h": "30",
"x": "196",
"y": "1715",
"properties": {
"controlName": "check:proper-response-code"
},
"children": {
"controls": {
"control": [
{
"ID": "0",
"typeID": "TextArea",
"zOrder": "0",
"w": "30",
"h": "30",
"measuredW": "200",
"measuredH": "140",
"x": "0",
"y": "0"
}
]
}
}
},
{
"ID": "121",
"typeID": "__group__",
"zOrder": "121",
"measuredW": "467",
"measuredH": "28",
"w": "467",
"h": "28",
"x": "243",
"y": "1717",
"properties": {
"controlName": "proper-response-code"
},
"children": {
"controls": {
"control": [
{
"ID": "0",
"typeID": "Label",
"zOrder": "0",
"measuredW": "467",
"measuredH": "28",
"x": "0",
"y": "0",
"properties": {
"size": "20",
"text": "Return proper response codes as per the operation"
}
}
]
}
}
},
{
"ID": "122",
"typeID": "Arrow",
"zOrder": "122",
"w": "726",
"h": "1",
"measuredW": "150",
"measuredH": "100",
"x": "816",
"y": "1503",
"properties": {
"curvature": "0",
"leftArrow": "false",
"rightArrow": "false",
"color": "4273622",
"p0": {
"x": -0.2686368305519409,
"y": 0
},
"p1": {
"x": 0.5001077701859017,
"y": 0.0003391382343339101
},
"p2": {
"x": 725.5310311167375,
"y": 0
}
}
},
{
"ID": "123",
"typeID": "Canvas",
"zOrder": "123",
"w": "252",
"h": "50",
"measuredW": "100",
"measuredH": "70",
"x": "1015",
"y": "1478",
"properties": {
"color": "16776960"
}
},
{
"ID": "124",
"typeID": "Label",
"zOrder": "124",
"measuredW": "74",
"measuredH": "28",
"x": "1104",
"y": "1489",
"properties": {
"size": "20",
"text": "CI & CD"
}
},
{
"ID": "125",
"typeID": "__group__",
"zOrder": "125",
"measuredW": "30",
"measuredH": "30",
"w": "30",
"h": "30",
"x": "861",
"y": "1562",
"properties": {
"controlName": "check:unit-integration-tests"
},
"children": {
"controls": {
"control": [
{
"ID": "0",
"typeID": "TextArea",
"zOrder": "0",
"w": "30",
"h": "30",
"measuredW": "200",
"measuredH": "140",
"x": "0",
"y": "0"
}
]
}
}
},
{
"ID": "126",
"typeID": "__group__",
"zOrder": "126",
"measuredW": "578",
"measuredH": "28",
"w": "578",
"h": "28",
"x": "907",
"y": "1563",
"properties": {
"controlName": "unit-integration-tests"
},
"children": {
"controls": {
"control": [
{
"ID": "0",
"typeID": "Label",
"zOrder": "0",
"measuredW": "578",
"measuredH": "28",
"x": "0",
"y": "0",
"properties": {
"size": "20",
"text": "Audit your design and implementation with unit/integration tests."
}
}
]
}
}
},
{
"ID": "127",
"typeID": "__group__",
"zOrder": "127",
"measuredW": "30",
"measuredH": "30",
"w": "30",
"h": "30",
"x": "861",
"y": "1601",
"properties": {
"controlName": "check:code-review-process"
},
"children": {
"controls": {
"control": [
{
"ID": "0",
"typeID": "TextArea",
"zOrder": "0",
"w": "30",
"h": "30",
"measuredW": "200",
"measuredH": "140",
"x": "0",
"y": "0"
}
]
}
}
},
{
"ID": "128",
"typeID": "__group__",
"zOrder": "128",
"measuredW": "503",
"measuredH": "28",
"w": "503",
"h": "28",
"x": "907",
"y": "1602",
"properties": {
"controlName": "code-review-process"
},
"children": {
"controls": {
"control": [
{
"ID": "0",
"typeID": "Label",
"zOrder": "0",
"measuredW": "503",
"measuredH": "28",
"x": "0",
"y": "0",
"properties": {
"size": "20",
"text": "Use a code review process and disregard self-approval."
}
}
]
}
}
},
{
"ID": "129",
"typeID": "__group__",
"zOrder": "129",
"measuredW": "30",
"measuredH": "30",
"w": "30",
"h": "30",
"x": "861",
"y": "1641",
"properties": {
"controlName": "check:run-security-analysis"
},
"children": {
"controls": {
"control": [
{
"ID": "0",
"typeID": "TextArea",
"zOrder": "0",
"w": "30",
"h": "30",
"measuredW": "200",
"measuredH": "140",
"x": "0",
"y": "0"
}
]
}
}
},
{
"ID": "130",
"typeID": "__group__",
"zOrder": "130",
"measuredW": "432",
"measuredH": "28",
"w": "432",
"h": "28",
"x": "907",
"y": "1643",
"properties": {
"controlName": "run-security-analysis"
},
"children": {
"controls": {
"control": [
{
"ID": "0",
"typeID": "Label",
"zOrder": "0",
"measuredW": "432",
"measuredH": "28",
"x": "0",
"y": "0",
"properties": {
"size": "20",
"text": " Continuously run security analysis on your code."
}
}
]
}
}
},
{
"ID": "131",
"typeID": "__group__",
"zOrder": "131",
"measuredW": "30",
"measuredH": "30",
"w": "30",
"h": "30",
"x": "861",
"y": "1682",
"properties": {
"controlName": "check:check-dependencies"
},
"children": {
"controls": {
"control": [
{
"ID": "0",
"typeID": "TextArea",
"zOrder": "0",
"w": "30",
"h": "30",
"measuredW": "200",
"measuredH": "140",
"x": "0",
"y": "0"
}
]
}
}
},
{
"ID": "132",
"typeID": "__group__",
"zOrder": "132",
"measuredW": "461",
"measuredH": "28",
"w": "461",
"h": "28",
"x": "907",
"y": "1684",
"properties": {
"controlName": "check-dependencies"
},
"children": {
"controls": {
"control": [
{
"ID": "0",
"typeID": "Label",
"zOrder": "0",
"measuredW": "461",
"measuredH": "28",
"x": "0",
"y": "0",
"properties": {
"size": "20",
"text": "Check your dependencies for known vulnerabilities."
}
}
]
}
}
},
{
"ID": "133",
"typeID": "__group__",
"zOrder": "133",
"measuredW": "30",
"measuredH": "30",
"w": "30",
"h": "30",
"x": "861",
"y": "1724",
"properties": {
"controlName": "check:rollback-deployments"
},
"children": {
"controls": {
"control": [
{
"ID": "0",
"typeID": "TextArea",
"zOrder": "0",
"w": "30",
"h": "30",
"measuredW": "200",
"measuredH": "140",
"x": "0",
"y": "0"
}
]
}
}
},
{
"ID": "134",
"typeID": "__group__",
"zOrder": "134",
"measuredW": "386",
"measuredH": "28",
"w": "386",
"h": "28",
"x": "907",
"y": "1726",
"properties": {
"controlName": "rollback-deployments"
},
"children": {
"controls": {
"control": [
{
"ID": "0",
"typeID": "Label",
"zOrder": "0",
"measuredW": "386",
"measuredH": "28",
"x": "0",
"y": "0",
"properties": {
"size": "20",
"text": "Design a rollback solution for deployments."
}
}
]
}
}
},
{
"ID": "135",
"typeID": "Arrow",
"zOrder": "135",
"w": "620",
"h": "1",
"measuredW": "150",
"measuredH": "100",
"x": "191",
"y": "1814",
"properties": {
"curvature": "0",
"leftArrow": "false",
"rightArrow": "false",
"color": "4273622",
"p0": {
"x": 0.23125640404211367,
"y": 0
},
"p1": {
"x": 0.49994495226877456,
"y": 0.0003335799224988863
},
"p2": {
"x": 620.5,
"y": 0
}
}
},
{
"ID": "136",
"typeID": "Canvas",
"zOrder": "136",
"w": "264",
"h": "50",
"measuredW": "100",
"measuredH": "70",
"x": "355",
"y": "1789",
"properties": {
"color": "16776960"
}
},
{
"ID": "137",
"typeID": "Label",
"zOrder": "137",
"measuredW": "97",
"measuredH": "28",
"x": "438",
"y": "1800",
"properties": {
"size": "20",
"text": "Monitoring"
}
},
{
"ID": "138",
"typeID": "__group__",
"zOrder": "138",
"measuredW": "30",
"measuredH": "30",
"w": "30",
"h": "30",
"x": "194",
"y": "1871",
"properties": {
"controlName": "check:centralized-logins"
},
"children": {
"controls": {
"control": [
{
"ID": "0",
"typeID": "TextArea",
"zOrder": "0",
"w": "30",
"h": "30",
"measuredW": "200",
"measuredH": "140",
"x": "0",
"y": "0"
}
]
}
}
},
{
"ID": "139",
"typeID": "__group__",
"zOrder": "139",
"measuredW": "497",
"measuredH": "28",
"w": "497",
"h": "28",
"x": "241",
"y": "1873",
"properties": {
"controlName": "centralized-logins"
},
"children": {
"controls": {
"control": [
{
"ID": "0",
"typeID": "Label",
"zOrder": "0",
"measuredW": "497",
"measuredH": "28",
"x": "0",
"y": "0",
"properties": {
"size": "20",
"text": "Use centralized logins for all services and components."
}
}
]
}
}
},
{
"ID": "140",
"typeID": "__group__",
"zOrder": "140",
"measuredW": "30",
"measuredH": "30",
"w": "30",
"h": "30",
"x": "194",
"y": "1912",
"properties": {
"controlName": "check:monitor-everything"
},
"children": {
"controls": {
"control": [
{
"ID": "0",
"typeID": "TextArea",
"zOrder": "0",
"w": "30",
"h": "30",
"measuredW": "200",
"measuredH": "140",
"x": "0",
"y": "0"
}
]
}
}
},
{
"ID": "141",
"typeID": "__group__",
"zOrder": "141",
"measuredW": "518",
"measuredH": "28",
"w": "518",
"h": "28",
"x": "241",
"y": "1914",
"properties": {
"controlName": "monitor-everything"
},
"children": {
"controls": {
"control": [
{
"ID": "0",
"typeID": "Label",
"zOrder": "0",
"measuredW": "518",
"measuredH": "28",
"x": "0",
"y": "0",
"properties": {
"size": "20",
"text": "Use agents to monitor all requests, responses and errors."
}
}
]
}
}
},
{
"ID": "142",
"typeID": "__group__",
"zOrder": "142",
"measuredW": "30",
"measuredH": "30",
"w": "30",
"h": "30",
"x": "194",
"y": "1953",
"properties": {
"controlName": "check:set-alerts"
},
"children": {
"controls": {
"control": [
{
"ID": "0",
"typeID": "TextArea",
"zOrder": "0",
"w": "30",
"h": "30",
"measuredW": "200",
"measuredH": "140",
"x": "0",
"y": "0"
}
]
}
}
},
{
"ID": "143",
"typeID": "__group__",
"zOrder": "143",
"measuredW": "511",
"measuredH": "28",
"w": "511",
"h": "28",
"x": "241",
"y": "1955",
"properties": {
"controlName": "set-alerts"
},
"children": {
"controls": {
"control": [
{
"ID": "0",
"typeID": "Label",
"zOrder": "0",
"measuredW": "511",
"measuredH": "28",
"x": "0",
"y": "0",
"properties": {
"size": "20",
"text": "Use alerts for SMS, Slack, Email, Kibana, Cloudwatch, etc."
}
}
]
}
}
},
{
"ID": "144",
"typeID": "__group__",
"zOrder": "144",
"measuredW": "30",
"measuredH": "30",
"w": "30",
"h": "30",
"x": "194",
"y": "1994",
"properties": {
"controlName": "check:avoid-logging-sensitive-data"
},
"children": {
"controls": {
"control": [
{
"ID": "0",
"typeID": "TextArea",
"zOrder": "0",
"w": "30",
"h": "30",
"measuredW": "200",
"measuredH": "140",
"x": "0",
"y": "0"
}
]
}
}
},
{
"ID": "145",
"typeID": "__group__",
"zOrder": "145",
"measuredW": "438",
"measuredH": "28",
"w": "438",
"h": "28",
"x": "241",
"y": "1996",
"properties": {
"controlName": "avoid-logging-sensitive-data"
},
"children": {
"controls": {
"control": [
{
"ID": "0",
"typeID": "Label",
"zOrder": "0",
"measuredW": "438",
"measuredH": "28",
"x": "0",
"y": "0",
"properties": {
"size": "20",
"text": "Ensure that you aren't logging any sensitive data."
}
}
]
}
}
},
{
"ID": "146",
"typeID": "__group__",
"zOrder": "146",
"measuredW": "30",
"measuredH": "30",
"w": "30",
"h": "30",
"x": "194",
"y": "2035",
"properties": {
"controlName": "check:use-ids-ips-system"
},
"children": {
"controls": {
"control": [
{
"ID": "0",
"typeID": "TextArea",
"zOrder": "0",
"w": "30",
"h": "30",
"measuredW": "200",
"measuredH": "140",
"x": "0",
"y": "0"
}
]
}
}
},
{
"ID": "147",
"typeID": "__group__",
"zOrder": "147",
"measuredW": "474",
"measuredH": "28",
"w": "474",
"h": "28",
"x": "241",
"y": "2037",
"properties": {
"controlName": "use-ids-ips-system"
},
"children": {
"controls": {
"control": [
{
"ID": "0",
"typeID": "Label",
"zOrder": "0",
"measuredW": "474",
"measuredH": "28",
"x": "0",
"y": "0",
"properties": {
"size": "20",
"text": "Use an IDS and/or IPS system to monitor everything."
}
}
]
}
}
}
]
},
"attributes": {
"name": "New Wireframe 1",
"order": 1000000,
"parentID": null,
"notes": ""
},
"branchID": "Master",
"resourceID": "5A30BFEF-684E-429E-9C5D-BAAAC1A8339A",
"mockupH": "2160",
"mockupW": "1351",
"measuredW": "1542",
"measuredH": "2294",
"version": "1.0",
"calloutsOffset": {
"x": 189.2312564040421,
"y": 132
}
},
"groupOffset": {
"x": 0,
"y": 0
},
"dependencies": [],
"projectID": "file:///Users/dan/Library/Application%20Support/Balsamiq%20Wireframes/UnsavedFiles/New%20Project%201.bmpr"
}