antoniop in OpenACS

Make test more robust in setups where we cache permissions

Cleanup commented code

Only allow valid privileges in the privs parameter

Implement a package-specific page contract filter to collect current (and future) security fixes

Reject frames and iframes in the content

Prevent sneaking symlinks in the content repository

Many thanks to Thomas Rennner and Günter Ernst for analyzing the issue

cr_write_content reform

when serving files, do not trust the content information, as the absolute path to the file can be determined programmatically in this case.

This also reduce divergency between Oracle and Postgres

Implement a new filter for inclass-exam submissions

When displayed by the print-answers method, allow to filter also for not graded.

    • -10
    • +10
    /openacs-4/packages/xowf/xowf.info
Expand permission test suite to include definition of custom privileges in a couple of setups

Provide an automated test of "advanced" permission features: permission inheritance via group, or via the permission context

Use a simpler approach to achieve the intended result, which does not rely on events

    • -19
    • +8
    /openacs-4/packages/xowiki/tcl/chat-procs.tcl
Keep comments on the server side

    • -7
    • +10
    /openacs-4/packages/xowiki/tcl/chat-procs.tcl
Ensure chat javascript is executed only when the chat itself is actually a part of the DOM

This may not be the case at the time of rendering, e.g. because the chat is rendered inside of a <template> tag and appended to the document at a later moment.

    • -2
    • +19
    /openacs-4/packages/xowiki/tcl/chat-procs.tcl
Untangle if logics

Reject URLs displaying multiple protocols

Test further improvement of injection attempt by penetration tests

Harden page contract

Strenghten validation against smarter attempts to disguise the javascript: protocol

Replicate a smarter attempt by a penetration tool to disguise the javascript: protocol

Harden page contracts

Prefer more robust colon notation to quote database values

    • -1
    • +1
    /openacs-4/packages/xowf/tcl/xowf-procs.tcl
We replace spaces with "&nbsp" for Safari, but then convert will fail in the test... clean up the entities before trying to convert

Fix variable name

Calculate the width before quoting is applied and refine the heuristic

Fix capctha rendering on iOS devices, where apparently spaces need to be translated to entities

    • -3
    • +10
    /openacs-4/packages/captcha/tcl/captcha-procs.tcl
Fix captcha responsiveness

Update italian localization

    • -2
    • +2
    /openacs-4/packages/xowiki/xowiki.info
Introduce server-side validation for HTML5 date and time formfields

A "formats" parameter can be specified on the formfields indicating one or more formats that we want to enforce. The syntax for any of such format is that of the Tcl clock command.

Default values have been set according to the expected behavior of each form field type.

Empty values are always considered valid. If a field is required, this will be enforced in its own validator.

    • -2
    • +2
    /openacs-4/packages/xowiki/xowiki.info
Test behavior of HTML5 date and time formfields when invalid values are submitted

"An iframe which has both allow-scripts and allow-same-origin for its sandbox attribute can remove its sandboxing"

See e.g. https://cloud.google.com/blog/products/data-analytics/iframe-sandbox-tutorial

We set in xooauth/tcl/lti-procs.tcl a restrictive default (all sandboxing restrictions are applied by default). Users should relax it according to their embedded application.

xooauth/www/admin/lti-test.tcl is not really a productive file, so we set the already hardcoded value to no-sandboxing and note that this would be appropriate.