4377 lines
167 KiB
JSON
4377 lines
167 KiB
JSON
{
|
||
"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"
|
||
} |