예제 #1
0
def download_report():
    if request.args.get("proj") != None:
        project_id = request.args.get("proj")
        if Project.getProject(project_id) != False:
            project = Project.getProject(project_id)
            options = {
                'page-size': 'A4',
                'margin-top': '0in',
                'margin-right': '0in',
                'margin-bottom': '0.2in',
                'margin-left': '0in',
                'footer-center': '[page] of [topage]',


            }
            url = str(request.url_root)+"/report?project_id="+str(project_id)
            pdf = pdfkit.from_url(url, False, options=options)
            response = make_response(pdf)
            response.headers["Content-Type"] = "application/pdf"
            projectName = str(project['projectName'])
            projectName = projectName.replace(" ","-")
            reportName = projectName+"-Report_"+str(date.today())
            response.headers["Content-Disposition"] = "inline; filename="+reportName+".pdf"
            return response

    else:
        return "Missing project ID"
예제 #2
0
def get_report():
    project_id = request.args.get("project_id")
    project = Project.getProject(id=project_id)
    vulnerabilities = Vulnerability.getVulnerabilities(report_id=project_id)
    severities = Vulnerability.getVulnerabilitiesSeverities(project_id)
    vulnerabilities1 = Vulnerability.getVulnerabilities(report_id=project_id)
    clientLogo = project["clientLogoID"][0]
    print(clientLogo)

    if vulnerabilities != None:
        return render_template('report.html', project=project, vulnerabilities=vulnerabilities, vulnerabilities1 = vulnerabilities1, severities=severities, filename=clientLogo)
    else:
        return False
예제 #3
0
def project_template(projectID=None):
    if projectID is None:
        projectID = request.args.get('proj')
    project = Project.getProject(projectID)

    if (projectID != None):
        vulnerabilities = Vulnerability.getVulnerabilities(projectID)
        clientLogo = project['clientLogoID'][0]
    else:
        vulnerabilities = None
        clientLogo = None

    if (project != False):
        clientLogo = project['clientLogoID'][0]
    else:
        clientLogo = None

    return render_template('project.html', project = project, clientLogo=clientLogo, vulnerabilities=vulnerabilities)
예제 #4
0
def add_project():
        projectName = request.form['projectName']
        client = request.form['client']
        contact = request.form['contact']
        description = request.form['description']
        target = request.form['target']
        scope = request.form['scope']
        startDate = request.form['startDate']
        endDate = request.form['endDate']
        author = request.form['author']
        testers = request.form['testers']
        reviewers = request.form['reviewers']
        executiveSummary = request.form['executiveSummary']
        conclusion = request.form['conclusion']
        clientLogoID = request.form['clientLogoIDtext']
        if 'clientLogoID' in request.files:
            image = request.files['clientLogoID']
            if image.filename!='':
                #add picture to DB and get ID
                image_id = Project.addImage(image, image.filename)
                clientLogoID = image.filename

        if request.form['projectID'] !=None: #if project  already exist, dont add it, just edit it
            projectID = request.form['projectID']
            if Project.getProject(projectID) != False:
                project = Project(_id=projectID,projectName=projectName, client=client, contact=contact, author=author, description=description, target=target,
                                      scope=scope, startDate=startDate, endDate=endDate, testers=testers, reviewers=reviewers,
                                      executiveSummary=executiveSummary, conclusion=conclusion, clientLogoID=clientLogoID)
                Project.editProject(projectID, project)
            else: #if project does not exist, add it
                project = Project(projectName=projectName, client=client, contact=contact, description=description,
                                  target=target,
                                  scope=scope, startDate=startDate, endDate=endDate, author=author, testers=testers,
                                  reviewers=reviewers,
                                  executiveSummary=executiveSummary, conclusion=conclusion, clientLogoID=clientLogoID)
                Project.addProject(project)

            return projects_template()
예제 #5
0
                                owaspTop10="hacker",
                                description="hacker",
                                references="www.example.com",
                                risk="",
                                remidiation="")
#add vuln
#Vulnerability.addVulnerability(vulnerability01) #workring
#Vulnerability.addVulnerability(vulnerability02)
#Vulnerability.addVulnerability(vulnerability03)

#find all vuln of report
print("testing find all vuln of a project")
vulnerabilities_list = []
vulnerabilities = Vulnerability.getVulnerabilities(
    "baf03af5f64e438a9bad9b161863782b")  #working
project = Project.getProject("baf03af5f64e438a9bad9b161863782b")
print(project["client"])
for vuln in vulnerabilities:
    vulnerabilities_list.append(vuln)
for vuln in vulnerabilities_list:
    print(vuln["name"], vuln["severity"], vuln["_id"], vuln["status"])

#find one vuln
print("testing find one vuln")
vuln = Vulnerability.getVulnerability("7c40e40dfc7b4f97a3e3436838759403")
print(vuln)

#edit vuln
print("testing edit")
print(
    Vulnerability.editVulnerability(id="14ce263fde964e7ead2b424bc712dd79",