Skip to content

Latest commit

 

History

History
3202 lines (1075 loc) · 81.6 KB

security-test-report.md

File metadata and controls

3202 lines (1075 loc) · 81.6 KB

ZAP Scanning Report

Summary of Alerts

Risk Level Number of Alerts
High 0
Medium 0
Low 37
Informational 0

Alert Detail

Incomplete or No Cache-control and Pragma HTTP Header Set

Low (Medium)

Description

The cache-control and pragma HTTP header have not been set properly or are missing allowing the browser and proxies to cache content.

Instances: 1

Solution

Whenever possible ensure the cache-control HTTP header is set with no-cache, no-store, must-revalidate; and that the pragma HTTP header is set with no-cache.

Reference

CWE Id : 525

WASC Id : 13

Source ID : 3

X-Content-Type-Options Header Missing

Low (Medium)

Description

The Anti-MIME-Sniffing header X-Content-Type-Options was not set to 'nosniff'. This allows older versions of Internet Explorer and Chrome to perform MIME-sniffing on the response body, potentially causing the response body to be interpreted and displayed as a content type other than the declared content type. Current (early 2014) and legacy versions of Firefox will use the declared content type (if one is set), rather than performing MIME-sniffing.

Instances: 1

Solution

Ensure that the application/web server sets the Content-Type header appropriately, and that it sets the X-Content-Type-Options header to 'nosniff' for all web pages.

If possible, ensure that the end user uses a standards-compliant and modern web browser that does not perform MIME-sniffing at all, or that can be directed by the web application/web server to not perform MIME-sniffing.

Other information

This issue still applies to error type pages (401, 403, 500, etc) as those pages are often still affected by injection issues, in which case there is still concern for browsers sniffing pages away from their actual content type.

At "High" threshold this scanner will not alert on client or server error responses.

Reference

CWE Id : 16

WASC Id : 15

Source ID : 3

X-Content-Type-Options Header Missing

Low (Medium)

Description

The Anti-MIME-Sniffing header X-Content-Type-Options was not set to 'nosniff'. This allows older versions of Internet Explorer and Chrome to perform MIME-sniffing on the response body, potentially causing the response body to be interpreted and displayed as a content type other than the declared content type. Current (early 2014) and legacy versions of Firefox will use the declared content type (if one is set), rather than performing MIME-sniffing.

Instances: 1

Solution

Ensure that the application/web server sets the Content-Type header appropriately, and that it sets the X-Content-Type-Options header to 'nosniff' for all web pages.

If possible, ensure that the end user uses a standards-compliant and modern web browser that does not perform MIME-sniffing at all, or that can be directed by the web application/web server to not perform MIME-sniffing.

Other information

This issue still applies to error type pages (401, 403, 500, etc) as those pages are often still affected by injection issues, in which case there is still concern for browsers sniffing pages away from their actual content type.

At "High" threshold this scanner will not alert on client or server error responses.

Reference

CWE Id : 16

WASC Id : 15

Source ID : 3

Web Browser XSS Protection Not Enabled

Low (Medium)

Description

Web Browser XSS Protection is not enabled, or is disabled by the configuration of the 'X-XSS-Protection' HTTP response header on the web server

Instances: 16

Solution

Ensure that the web browser's XSS filter is enabled, by setting the X-XSS-Protection HTTP response header to '1'.

Other information

The X-XSS-Protection HTTP response header allows the web server to enable or disable the web browser's XSS protection mechanism. The following values would attempt to enable it:

X-XSS-Protection: 1; mode=block

X-XSS-Protection: 1; report=http://www.example.com/xss

The following values would disable it:

X-XSS-Protection: 0

The X-XSS-Protection HTTP response header is currently supported on Internet Explorer, Chrome and Safari (WebKit).

Note that this alert is only raised if the response body could potentially contain an XSS payload (with a text-based content type, with a non-zero length).

Reference

CWE Id : 933

WASC Id : 14

Source ID : 3

Cross-Domain JavaScript Source File Inclusion

Low (Medium)

Description

The page includes one or more script files from a third-party domain.

  • URL: http://127.0.0.1:8000/profile/

    • Method: POST

    • Parameter: https://code.jquery.com/jquery-3.3.1.min.js

    • Evidence: <script src="https://code.jquery.com/jquery-3.3.1.min.js"></script>

  • URL: http://127.0.0.1:8000/

    • Method: GET

    • Parameter: https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js

    • Evidence: <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>

  • URL: http://127.0.0.1:8000/message/new/

    • Method: GET

    • Parameter: https://code.jquery.com/jquery-3.3.1.min.js

    • Evidence: <script src="https://code.jquery.com/jquery-3.3.1.min.js"></script>

  • URL: http://127.0.0.1:8000/appointment/calendar/

    • Method: GET

    • Parameter: https://cdn.datatables.net/1.10.7/js/jquery.dataTables.min.js

    • Evidence: <script src="https://cdn.datatables.net/1.10.7/js/jquery.dataTables.min.js"></script>

  • URL: http://127.0.0.1:8000/profile/update/

    • Method: GET

    • Parameter: https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.21.0/moment.min.js

    • Evidence: <script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.21.0/moment.min.js"></script>

  • URL: http://127.0.0.1:8000/appointment/calendar/

    • Method: GET

    • Parameter: https://cdnjs.cloudflare.com/ajax/libs/bootstrap-datetimepicker/4.17.47/js/bootstrap-datetimepicker.min.js

    • Evidence: <script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-datetimepicker/4.17.47/js/bootstrap-datetimepicker.min.js"></script>

  • URL: http://127.0.0.1:8000/medicalinfo/patient/

    • Method: GET

    • Parameter: https://code.jquery.com/jquery-3.3.1.min.js

    • Evidence: <script src="https://code.jquery.com/jquery-3.3.1.min.js"></script>

  • URL: http://127.0.0.1:8000/message/new/

    • Method: GET

    • Parameter: https://cdn.datatables.net/1.10.7/js/jquery.dataTables.min.js

    • Evidence: <script src="https://cdn.datatables.net/1.10.7/js/jquery.dataTables.min.js"></script>

  • URL: http://127.0.0.1:8000/message/list/

    • Method: GET

    • Parameter: https://cdnjs.cloudflare.com/ajax/libs/fullcalendar/3.8.2/fullcalendar.min.js

    • Evidence: <script src="https://cdnjs.cloudflare.com/ajax/libs/fullcalendar/3.8.2/fullcalendar.min.js"></script>

  • URL: http://127.0.0.1:8000/profile/

    • Method: POST

    • Parameter: https://cdn.datatables.net/1.10.7/js/jquery.dataTables.min.js

    • Evidence: <script src="https://cdn.datatables.net/1.10.7/js/jquery.dataTables.min.js"></script>

  • URL: http://127.0.0.1:8000/

    • Method: POST

    • Parameter: https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js

    • Evidence: <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>

  • URL: http://127.0.0.1:8000/

    • Method: GET

    • Parameter: https://cdnjs.cloudflare.com/ajax/libs/fullcalendar/3.8.2/fullcalendar.min.js

    • Evidence: <script src="https://cdnjs.cloudflare.com/ajax/libs/fullcalendar/3.8.2/fullcalendar.min.js"></script>

  • URL: http://127.0.0.1:8000/prescription/list/

    • Method: GET

    • Parameter: https://cdnjs.cloudflare.com/ajax/libs/fullcalendar/3.8.2/fullcalendar.min.js

    • Evidence: <script src="https://cdnjs.cloudflare.com/ajax/libs/fullcalendar/3.8.2/fullcalendar.min.js"></script>

  • URL: http://127.0.0.1:8000/profile/

    • Method: POST

    • Parameter: https://cdnjs.cloudflare.com/ajax/libs/bootstrap-datetimepicker/4.17.47/js/bootstrap-datetimepicker.min.js

    • Evidence: <script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-datetimepicker/4.17.47/js/bootstrap-datetimepicker.min.js"></script>

  • URL: http://127.0.0.1:8000/message/new/

    • Method: GET

    • Parameter: https://cdnjs.cloudflare.com/ajax/libs/bootstrap-datetimepicker/4.17.47/js/bootstrap-datetimepicker.min.js

    • Evidence: <script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-datetimepicker/4.17.47/js/bootstrap-datetimepicker.min.js"></script>

  • URL: http://127.0.0.1:8000/appointment/calendar/

    • Method: GET

    • Parameter: https://cdn.datatables.net/plug-ins/1.10.7/integration/bootstrap/3/dataTables.bootstrap.js

    • Evidence: <script src="https://cdn.datatables.net/plug-ins/1.10.7/integration/bootstrap/3/dataTables.bootstrap.js"></script>

  • URL: http://127.0.0.1:8000/register/

    • Method: GET

    • Parameter: https://cdn.datatables.net/plug-ins/1.10.7/integration/bootstrap/3/dataTables.bootstrap.js

    • Evidence: <script src="https://cdn.datatables.net/plug-ins/1.10.7/integration/bootstrap/3/dataTables.bootstrap.js"></script>

  • URL: http://127.0.0.1:8000/register/

    • Method: GET

    • Parameter: https://cdnjs.cloudflare.com/ajax/libs/bootstrap-datetimepicker/4.17.47/js/bootstrap-datetimepicker.min.js

    • Evidence: <script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-datetimepicker/4.17.47/js/bootstrap-datetimepicker.min.js"></script>

  • URL: http://127.0.0.1:8000/profile/password/

    • Method: GET

    • Parameter: https://code.jquery.com/jquery-3.3.1.min.js

    • Evidence: <script src="https://code.jquery.com/jquery-3.3.1.min.js"></script>

  • URL: http://127.0.0.1:8000/medicalinfo/patient/

    • Method: GET

    • Parameter: https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.21.0/moment.min.js

    • Evidence: <script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.21.0/moment.min.js"></script>

Instances: 91

Solution

Ensure JavaScript source files are loaded from only trusted sources, and the sources can't be controlled by end users of the application.

Reference

CWE Id : 829

WASC Id : 15

Source ID : 3

Cookie No HttpOnly Flag

Low (Medium)

Description

A cookie has been set without the HttpOnly flag, which means that the cookie can be accessed by JavaScript. If a malicious script can be run on this page then the cookie will be accessible and can be transmitted to another site. If this is a session cookie then session hijacking may be possible.

Instances: 13

Solution

Ensure that the HttpOnly flag is set for all cookies.

Reference

CWE Id : 16

WASC Id : 13

Source ID : 3

X-Content-Type-Options Header Missing

Low (Medium)

Description

The Anti-MIME-Sniffing header X-Content-Type-Options was not set to 'nosniff'. This allows older versions of Internet Explorer and Chrome to perform MIME-sniffing on the response body, potentially causing the response body to be interpreted and displayed as a content type other than the declared content type. Current (early 2014) and legacy versions of Firefox will use the declared content type (if one is set), rather than performing MIME-sniffing.

Instances: 14

Solution

Ensure that the application/web server sets the Content-Type header appropriately, and that it sets the X-Content-Type-Options header to 'nosniff' for all web pages.

If possible, ensure that the end user uses a standards-compliant and modern web browser that does not perform MIME-sniffing at all, or that can be directed by the web application/web server to not perform MIME-sniffing.

Other information

This issue still applies to error type pages (401, 403, 500, etc) as those pages are often still affected by injection issues, in which case there is still concern for browsers sniffing pages away from their actual content type.

At "High" threshold this scanner will not alert on client or server error responses.

Reference

CWE Id : 16

WASC Id : 15

Source ID : 3

Password Autocomplete in Browser

Low (Medium)

Description

The AUTOCOMPLETE attribute is not disabled on an HTML FORM/INPUT element containing password type input. Passwords may be stored in browsers and retrieved.

  • URL: http://127.0.0.1:8000/

    • Method: POST

    • Parameter: id_password

    • Evidence: <input type="password" name="password" maxlength="50" class="form-control" placeholder="Enter password here" required id="id_password">

  • URL: http://127.0.0.1:8000/profile/password/

    • Method: GET

    • Parameter: id_password_second

    • Evidence: <input type="password" name="password_second" maxlength="50" class="form-control" placeholder="Enter new password again" required id="id_password_second">

  • URL: http://127.0.0.1:8000/profile/password/

    • Method: GET

    • Parameter: id_password_current

    • Evidence: <input type="password" name="password_current" maxlength="50" class="form-control" placeholder="Enter your current password here" required id="id_password_current">

  • URL: http://127.0.0.1:8000/register/

    • Method: GET

    • Parameter: id_password_first

    • Evidence: <input type="password" name="password_first" maxlength="50" minlength="1" class="form-control" placeholder="Enter password here" required id="id_password_first">

  • URL: http://127.0.0.1:8000/register/

    • Method: GET

    • Parameter: id_password_second

    • Evidence: <input type="password" name="password_second" maxlength="50" minlength="1" class="form-control" placeholder="Enter password again" required id="id_password_second">

  • URL: http://127.0.0.1:8000/

    • Method: GET

    • Parameter: id_password

    • Evidence: <input type="password" name="password" maxlength="50" class="form-control" placeholder="Enter password here" required id="id_password">

  • URL: http://127.0.0.1:8000/profile/password/

    • Method: GET

    • Parameter: id_password_first

    • Evidence: <input type="password" name="password_first" maxlength="50" class="form-control" placeholder="Enter new password here" required id="id_password_first">

Instances: 7

Solution

Turn off the AUTOCOMPLETE attribute in forms or individual input elements containing password inputs by using AUTOCOMPLETE='OFF'.

Reference

CWE Id : 525

WASC Id : 15

Source ID : 3

Incomplete or No Cache-control and Pragma HTTP Header Set

Low (Medium)

Description

The cache-control and pragma HTTP header have not been set properly or are missing allowing the browser and proxies to cache content.

Instances: 1

Solution

Whenever possible ensure the cache-control HTTP header is set with no-cache, no-store, must-revalidate; and that the pragma HTTP header is set with no-cache.

Reference

CWE Id : 525

WASC Id : 13

Source ID : 3

X-Content-Type-Options Header Missing

Low (Medium)

Description

The Anti-MIME-Sniffing header X-Content-Type-Options was not set to 'nosniff'. This allows older versions of Internet Explorer and Chrome to perform MIME-sniffing on the response body, potentially causing the response body to be interpreted and displayed as a content type other than the declared content type. Current (early 2014) and legacy versions of Firefox will use the declared content type (if one is set), rather than performing MIME-sniffing.

Instances: 13

Solution

Ensure that the application/web server sets the Content-Type header appropriately, and that it sets the X-Content-Type-Options header to 'nosniff' for all web pages.

If possible, ensure that the end user uses a standards-compliant and modern web browser that does not perform MIME-sniffing at all, or that can be directed by the web application/web server to not perform MIME-sniffing.

Other information

This issue still applies to error type pages (401, 403, 500, etc) as those pages are often still affected by injection issues, in which case there is still concern for browsers sniffing pages away from their actual content type.

At "High" threshold this scanner will not alert on client or server error responses.

Reference

CWE Id : 16

WASC Id : 15

Source ID : 3

Incomplete or No Cache-control and Pragma HTTP Header Set

Low (Medium)

Description

The cache-control and pragma HTTP header have not been set properly or are missing allowing the browser and proxies to cache content.

Instances: 13

Solution

Whenever possible ensure the cache-control HTTP header is set with no-cache, no-store, must-revalidate; and that the pragma HTTP header is set with no-cache.

Reference

CWE Id : 525

WASC Id : 13

Source ID : 3

Incomplete or No Cache-control and Pragma HTTP Header Set

Low (Medium)

Description

The cache-control and pragma HTTP header have not been set properly or are missing allowing the browser and proxies to cache content.

Instances: 1

Solution

Whenever possible ensure the cache-control HTTP header is set with no-cache, no-store, must-revalidate; and that the pragma HTTP header is set with no-cache.

Reference

CWE Id : 525

WASC Id : 13

Source ID : 3

X-Content-Type-Options Header Missing

Low (Medium)

Description

The Anti-MIME-Sniffing header X-Content-Type-Options was not set to 'nosniff'. This allows older versions of Internet Explorer and Chrome to perform MIME-sniffing on the response body, potentially causing the response body to be interpreted and displayed as a content type other than the declared content type. Current (early 2014) and legacy versions of Firefox will use the declared content type (if one is set), rather than performing MIME-sniffing.

Instances: 1

Solution

Ensure that the application/web server sets the Content-Type header appropriately, and that it sets the X-Content-Type-Options header to 'nosniff' for all web pages.

If possible, ensure that the end user uses a standards-compliant and modern web browser that does not perform MIME-sniffing at all, or that can be directed by the web application/web server to not perform MIME-sniffing.

Other information

This issue still applies to error type pages (401, 403, 500, etc) as those pages are often still affected by injection issues, in which case there is still concern for browsers sniffing pages away from their actual content type.

At "High" threshold this scanner will not alert on client or server error responses.

Reference

CWE Id : 16

WASC Id : 15

Source ID : 3

X-Content-Type-Options Header Missing

Low (Medium)

Description

The Anti-MIME-Sniffing header X-Content-Type-Options was not set to 'nosniff'. This allows older versions of Internet Explorer and Chrome to perform MIME-sniffing on the response body, potentially causing the response body to be interpreted and displayed as a content type other than the declared content type. Current (early 2014) and legacy versions of Firefox will use the declared content type (if one is set), rather than performing MIME-sniffing.

Instances: 8

Solution

Ensure that the application/web server sets the Content-Type header appropriately, and that it sets the X-Content-Type-Options header to 'nosniff' for all web pages.

If possible, ensure that the end user uses a standards-compliant and modern web browser that does not perform MIME-sniffing at all, or that can be directed by the web application/web server to not perform MIME-sniffing.

Other information

This issue still applies to error type pages (401, 403, 500, etc) as those pages are often still affected by injection issues, in which case there is still concern for browsers sniffing pages away from their actual content type.

At "High" threshold this scanner will not alert on client or server error responses.

Reference

CWE Id : 16

WASC Id : 15

Source ID : 3

Incomplete or No Cache-control and Pragma HTTP Header Set

Low (Medium)

Description

The cache-control and pragma HTTP header have not been set properly or are missing allowing the browser and proxies to cache content.

Instances: 3

Solution

Whenever possible ensure the cache-control HTTP header is set with no-cache, no-store, must-revalidate; and that the pragma HTTP header is set with no-cache.

Reference

CWE Id : 525

WASC Id : 13

Source ID : 3

Cookie Without Secure Flag

Low (Medium)

Description

A cookie has been set without the secure flag, which means that the cookie can be accessed via unencrypted connections.

Instances: 1

Solution

Whenever a cookie contains sensitive information or is a session token, then it should always be passed using an encrypted channel. Ensure that the secure flag is set for cookies containing such sensitive information.

Reference

CWE Id : 614

WASC Id : 13

Source ID : 3

Cookie No HttpOnly Flag

Low (Medium)

Description

A cookie has been set without the HttpOnly flag, which means that the cookie can be accessed by JavaScript. If a malicious script can be run on this page then the cookie will be accessible and can be transmitted to another site. If this is a session cookie then session hijacking may be possible.

Instances: 1

Solution

Ensure that the HttpOnly flag is set for all cookies.

Reference

CWE Id : 16

WASC Id : 13

Source ID : 3

Incomplete or No Cache-control and Pragma HTTP Header Set

Low (Medium)

Description

The cache-control and pragma HTTP header have not been set properly or are missing allowing the browser and proxies to cache content.

Instances: 1

Solution

Whenever possible ensure the cache-control HTTP header is set with no-cache, no-store, must-revalidate; and that the pragma HTTP header is set with no-cache.

Reference

CWE Id : 525

WASC Id : 13

Source ID : 3

Incomplete or No Cache-control and Pragma HTTP Header Set

Low (Medium)

Description

The cache-control and pragma HTTP header have not been set properly or are missing allowing the browser and proxies to cache content.

Instances: 4

Solution

Whenever possible ensure the cache-control HTTP header is set with no-cache, no-store, must-revalidate; and that the pragma HTTP header is set with no-cache.

Reference

CWE Id : 525

WASC Id : 13

Source ID : 3

X-Content-Type-Options Header Missing

Low (Medium)

Description

The Anti-MIME-Sniffing header X-Content-Type-Options was not set to 'nosniff'. This allows older versions of Internet Explorer and Chrome to perform MIME-sniffing on the response body, potentially causing the response body to be interpreted and displayed as a content type other than the declared content type. Current (early 2014) and legacy versions of Firefox will use the declared content type (if one is set), rather than performing MIME-sniffing.

Instances: 4

Solution

Ensure that the application/web server sets the Content-Type header appropriately, and that it sets the X-Content-Type-Options header to 'nosniff' for all web pages.

If possible, ensure that the end user uses a standards-compliant and modern web browser that does not perform MIME-sniffing at all, or that can be directed by the web application/web server to not perform MIME-sniffing.

Other information

This issue still applies to error type pages (401, 403, 500, etc) as those pages are often still affected by injection issues, in which case there is still concern for browsers sniffing pages away from their actual content type.

At "High" threshold this scanner will not alert on client or server error responses.

Reference

CWE Id : 16

WASC Id : 15

Source ID : 3

Cookie Without Secure Flag

Low (Medium)

Description

A cookie has been set without the secure flag, which means that the cookie can be accessed via unencrypted connections.

Instances: 5

Solution

Whenever a cookie contains sensitive information or is a session token, then it should always be passed using an encrypted channel. Ensure that the secure flag is set for cookies containing such sensitive information.

Reference

CWE Id : 614

WASC Id : 13

Source ID : 3

Cookie No HttpOnly Flag

Low (Medium)

Description

A cookie has been set without the HttpOnly flag, which means that the cookie can be accessed by JavaScript. If a malicious script can be run on this page then the cookie will be accessible and can be transmitted to another site. If this is a session cookie then session hijacking may be possible.

Instances: 5

Solution

Ensure that the HttpOnly flag is set for all cookies.

Reference

CWE Id : 16

WASC Id : 13

Source ID : 3

X-Content-Type-Options Header Missing

Low (Medium)

Description

The Anti-MIME-Sniffing header X-Content-Type-Options was not set to 'nosniff'. This allows older versions of Internet Explorer and Chrome to perform MIME-sniffing on the response body, potentially causing the response body to be interpreted and displayed as a content type other than the declared content type. Current (early 2014) and legacy versions of Firefox will use the declared content type (if one is set), rather than performing MIME-sniffing.

Instances: 1

Solution

Ensure that the application/web server sets the Content-Type header appropriately, and that it sets the X-Content-Type-Options header to 'nosniff' for all web pages.

If possible, ensure that the end user uses a standards-compliant and modern web browser that does not perform MIME-sniffing at all, or that can be directed by the web application/web server to not perform MIME-sniffing.

Other information

This issue still applies to error type pages (401, 403, 500, etc) as those pages are often still affected by injection issues, in which case there is still concern for browsers sniffing pages away from their actual content type.

At "High" threshold this scanner will not alert on client or server error responses.

Reference

CWE Id : 16

WASC Id : 15

Source ID : 3

Incomplete or No Cache-control and Pragma HTTP Header Set

Low (Medium)

Description

The cache-control and pragma HTTP header have not been set properly or are missing allowing the browser and proxies to cache content.

Instances: 1

Solution

Whenever possible ensure the cache-control HTTP header is set with no-cache, no-store, must-revalidate; and that the pragma HTTP header is set with no-cache.

Reference

CWE Id : 525

WASC Id : 13

Source ID : 3

X-Content-Type-Options Header Missing

Low (Medium)

Description

The Anti-MIME-Sniffing header X-Content-Type-Options was not set to 'nosniff'. This allows older versions of Internet Explorer and Chrome to perform MIME-sniffing on the response body, potentially causing the response body to be interpreted and displayed as a content type other than the declared content type. Current (early 2014) and legacy versions of Firefox will use the declared content type (if one is set), rather than performing MIME-sniffing.

Instances: 1

Solution

Ensure that the application/web server sets the Content-Type header appropriately, and that it sets the X-Content-Type-Options header to 'nosniff' for all web pages.

If possible, ensure that the end user uses a standards-compliant and modern web browser that does not perform MIME-sniffing at all, or that can be directed by the web application/web server to not perform MIME-sniffing.

Other information

This issue still applies to error type pages (401, 403, 500, etc) as those pages are often still affected by injection issues, in which case there is still concern for browsers sniffing pages away from their actual content type.

At "High" threshold this scanner will not alert on client or server error responses.

Reference

CWE Id : 16

WASC Id : 15

Source ID : 3

X-Content-Type-Options Header Missing

Low (Medium)

Description

The Anti-MIME-Sniffing header X-Content-Type-Options was not set to 'nosniff'. This allows older versions of Internet Explorer and Chrome to perform MIME-sniffing on the response body, potentially causing the response body to be interpreted and displayed as a content type other than the declared content type. Current (early 2014) and legacy versions of Firefox will use the declared content type (if one is set), rather than performing MIME-sniffing.

Instances: 3

Solution

Ensure that the application/web server sets the Content-Type header appropriately, and that it sets the X-Content-Type-Options header to 'nosniff' for all web pages.

If possible, ensure that the end user uses a standards-compliant and modern web browser that does not perform MIME-sniffing at all, or that can be directed by the web application/web server to not perform MIME-sniffing.

Other information

This issue still applies to error type pages (401, 403, 500, etc) as those pages are often still affected by injection issues, in which case there is still concern for browsers sniffing pages away from their actual content type.

At "High" threshold this scanner will not alert on client or server error responses.

Reference

CWE Id : 16

WASC Id : 15

Source ID : 3

Incomplete or No Cache-control and Pragma HTTP Header Set

Low (Medium)

Description

The cache-control and pragma HTTP header have not been set properly or are missing allowing the browser and proxies to cache content.

Instances: 1

Solution

Whenever possible ensure the cache-control HTTP header is set with no-cache, no-store, must-revalidate; and that the pragma HTTP header is set with no-cache.

Reference

CWE Id : 525

WASC Id : 13

Source ID : 3

X-Content-Type-Options Header Missing

Low (Medium)

Description

The Anti-MIME-Sniffing header X-Content-Type-Options was not set to 'nosniff'. This allows older versions of Internet Explorer and Chrome to perform MIME-sniffing on the response body, potentially causing the response body to be interpreted and displayed as a content type other than the declared content type. Current (early 2014) and legacy versions of Firefox will use the declared content type (if one is set), rather than performing MIME-sniffing.

Instances: 3

Solution

Ensure that the application/web server sets the Content-Type header appropriately, and that it sets the X-Content-Type-Options header to 'nosniff' for all web pages.

If possible, ensure that the end user uses a standards-compliant and modern web browser that does not perform MIME-sniffing at all, or that can be directed by the web application/web server to not perform MIME-sniffing.

Other information

This issue still applies to error type pages (401, 403, 500, etc) as those pages are often still affected by injection issues, in which case there is still concern for browsers sniffing pages away from their actual content type.

At "High" threshold this scanner will not alert on client or server error responses.

Reference

CWE Id : 16

WASC Id : 15

Source ID : 3

Incomplete or No Cache-control and Pragma HTTP Header Set

Low (Medium)

Description

The cache-control and pragma HTTP header have not been set properly or are missing allowing the browser and proxies to cache content.

Instances: 1

Solution

Whenever possible ensure the cache-control HTTP header is set with no-cache, no-store, must-revalidate; and that the pragma HTTP header is set with no-cache.

Reference

CWE Id : 525

WASC Id : 13

Source ID : 3

X-Content-Type-Options Header Missing

Low (Medium)

Description

The Anti-MIME-Sniffing header X-Content-Type-Options was not set to 'nosniff'. This allows older versions of Internet Explorer and Chrome to perform MIME-sniffing on the response body, potentially causing the response body to be interpreted and displayed as a content type other than the declared content type. Current (early 2014) and legacy versions of Firefox will use the declared content type (if one is set), rather than performing MIME-sniffing.

Instances: 5

Solution

Ensure that the application/web server sets the Content-Type header appropriately, and that it sets the X-Content-Type-Options header to 'nosniff' for all web pages.

If possible, ensure that the end user uses a standards-compliant and modern web browser that does not perform MIME-sniffing at all, or that can be directed by the web application/web server to not perform MIME-sniffing.

Other information

This issue still applies to error type pages (401, 403, 500, etc) as those pages are often still affected by injection issues, in which case there is still concern for browsers sniffing pages away from their actual content type.

At "High" threshold this scanner will not alert on client or server error responses.

Reference

CWE Id : 16

WASC Id : 15

Source ID : 3

Incomplete or No Cache-control and Pragma HTTP Header Set

Low (Medium)

Description

The cache-control and pragma HTTP header have not been set properly or are missing allowing the browser and proxies to cache content.

Instances: 2

Solution

Whenever possible ensure the cache-control HTTP header is set with no-cache, no-store, must-revalidate; and that the pragma HTTP header is set with no-cache.

Reference

CWE Id : 525

WASC Id : 13

Source ID : 3

Cross-Domain JavaScript Source File Inclusion

Low (Medium)

Description

The page includes one or more script files from a third-party domain.

  • URL: http://virtual-clinic.herokuapp.com/

    • Method: GET

    • Parameter: https://code.jquery.com/jquery-3.3.1.min.js

    • Evidence: <script src="https://code.jquery.com/jquery-3.3.1.min.js"></script>

  • URL: http://virtual-clinic.herokuapp.com/

    • Method: GET

    • Parameter: https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js

    • Evidence: <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>

  • URL: http://virtual-clinic.herokuapp.com/

    • Method: GET

    • Parameter: https://cdnjs.cloudflare.com/ajax/libs/bootstrap-datetimepicker/4.17.47/js/bootstrap-datetimepicker.min.js

    • Evidence: <script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-datetimepicker/4.17.47/js/bootstrap-datetimepicker.min.js"></script>

  • URL: http://virtual-clinic.herokuapp.com/

    • Method: GET

    • Parameter: https://cdn.datatables.net/plug-ins/1.10.7/integration/bootstrap/3/dataTables.bootstrap.js

    • Evidence: <script src="https://cdn.datatables.net/plug-ins/1.10.7/integration/bootstrap/3/dataTables.bootstrap.js"></script>

  • URL: http://virtual-clinic.herokuapp.com/

    • Method: GET

    • Parameter: https://cdnjs.cloudflare.com/ajax/libs/fullcalendar/3.8.2/fullcalendar.min.js

    • Evidence: <script src="https://cdnjs.cloudflare.com/ajax/libs/fullcalendar/3.8.2/fullcalendar.min.js"></script>

  • URL: http://virtual-clinic.herokuapp.com/

    • Method: GET

    • Parameter: https://cdn.datatables.net/1.10.7/js/jquery.dataTables.min.js

    • Evidence: <script src="https://cdn.datatables.net/1.10.7/js/jquery.dataTables.min.js"></script>

  • URL: http://virtual-clinic.herokuapp.com/

    • Method: GET

    • Parameter: https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.21.0/moment.min.js

    • Evidence: <script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.21.0/moment.min.js"></script>

Instances: 7

Solution

Ensure JavaScript source files are loaded from only trusted sources, and the sources can't be controlled by end users of the application.

Reference

CWE Id : 829

WASC Id : 15

Source ID : 3

X-Content-Type-Options Header Missing

Low (Medium)

Description

The Anti-MIME-Sniffing header X-Content-Type-Options was not set to 'nosniff'. This allows older versions of Internet Explorer and Chrome to perform MIME-sniffing on the response body, potentially causing the response body to be interpreted and displayed as a content type other than the declared content type. Current (early 2014) and legacy versions of Firefox will use the declared content type (if one is set), rather than performing MIME-sniffing.

Instances: 2

Solution

Ensure that the application/web server sets the Content-Type header appropriately, and that it sets the X-Content-Type-Options header to 'nosniff' for all web pages.

If possible, ensure that the end user uses a standards-compliant and modern web browser that does not perform MIME-sniffing at all, or that can be directed by the web application/web server to not perform MIME-sniffing.

Other information

This issue still applies to error type pages (401, 403, 500, etc) as those pages are often still affected by injection issues, in which case there is still concern for browsers sniffing pages away from their actual content type.

At "High" threshold this scanner will not alert on client or server error responses.

Reference

CWE Id : 16

WASC Id : 15

Source ID : 3

Cookie No HttpOnly Flag

Low (Medium)

Description

A cookie has been set without the HttpOnly flag, which means that the cookie can be accessed by JavaScript. If a malicious script can be run on this page then the cookie will be accessible and can be transmitted to another site. If this is a session cookie then session hijacking may be possible.

Instances: 1

Solution

Ensure that the HttpOnly flag is set for all cookies.

Reference

CWE Id : 16

WASC Id : 13

Source ID : 3

Web Browser XSS Protection Not Enabled

Low (Medium)

Description

Web Browser XSS Protection is not enabled, or is disabled by the configuration of the 'X-XSS-Protection' HTTP response header on the web server

Instances: 1

Solution

Ensure that the web browser's XSS filter is enabled, by setting the X-XSS-Protection HTTP response header to '1'.

Other information

The X-XSS-Protection HTTP response header allows the web server to enable or disable the web browser's XSS protection mechanism. The following values would attempt to enable it:

X-XSS-Protection: 1; mode=block

X-XSS-Protection: 1; report=http://www.example.com/xss

The following values would disable it:

X-XSS-Protection: 0

The X-XSS-Protection HTTP response header is currently supported on Internet Explorer, Chrome and Safari (WebKit).

Note that this alert is only raised if the response body could potentially contain an XSS payload (with a text-based content type, with a non-zero length).

Reference

CWE Id : 933

WASC Id : 14

Source ID : 3

Password Autocomplete in Browser

Low (Medium)

Description

The AUTOCOMPLETE attribute is not disabled on an HTML FORM/INPUT element containing password type input. Passwords may be stored in browsers and retrieved.

  • URL: http://virtual-clinic.herokuapp.com/

    • Method: GET

    • Parameter: id_password

    • Evidence: <input type="password" name="password" maxlength="50" class="form-control" placeholder="Enter password here" required id="id_password">

Instances: 1

Solution

Turn off the AUTOCOMPLETE attribute in forms or individual input elements containing password inputs by using AUTOCOMPLETE='OFF'.

Reference

CWE Id : 525

WASC Id : 15

Source ID : 3

X-Content-Type-Options Header Missing

Low (Medium)

Description

The Anti-MIME-Sniffing header X-Content-Type-Options was not set to 'nosniff'. This allows older versions of Internet Explorer and Chrome to perform MIME-sniffing on the response body, potentially causing the response body to be interpreted and displayed as a content type other than the declared content type. Current (early 2014) and legacy versions of Firefox will use the declared content type (if one is set), rather than performing MIME-sniffing.

Instances: 1

Solution

Ensure that the application/web server sets the Content-Type header appropriately, and that it sets the X-Content-Type-Options header to 'nosniff' for all web pages.

If possible, ensure that the end user uses a standards-compliant and modern web browser that does not perform MIME-sniffing at all, or that can be directed by the web application/web server to not perform MIME-sniffing.

Other information

This issue still applies to error type pages (401, 403, 500, etc) as those pages are often still affected by injection issues, in which case there is still concern for browsers sniffing pages away from their actual content type.

At "High" threshold this scanner will not alert on client or server error responses.

Reference

CWE Id : 16

WASC Id : 15

Source ID : 3