ArsDigita Archives
 
 
   
 
spacer

ACS 3.3.1 Release Notes

by Richard Li

This release is a bugfix-only release for ACS 3.3. In order to use this release, you must use the latest Oracle driver (due to the use of bind variables). This release will be superseded fairly soon by ACS 3.4; in ACS 3.4, every module will be released in accordance with the DB API using bind variables. Notable fixes in this release include:

  • improved support for server clustering with the addition of ad_canonical_server_p and a rewritten ad_schedule_proc that schedules procedures to run only on the canonical server by default
  • the latest set of patches to the dynamic publishing system have been merged; the documentation has been updated
  • patches to support international character sets in the ACS (requires AOLserver 3.0 + ad5 for international support; this patch should be released soon)
  • minor scalability, feature, and bug fixes to various modules
  • the Database Access API now uses bind variables. The new API also requires each statement to have a logical name; this requirement simplifies the ultimate goal of SQL abstraction. Custom code written using the original database API will not work with this upgrade.
  • security fixes (for detailed instructions on how to patch legacy sites, see Eve Andersson's document):
    • implemented user input checking with check_for_form_variable_naughtiness; the following were patched to call check_for_form_variable_naughtiness
      • set_form_variables
      • set_the_usual_form_variables
      • set_form_variables_string_trim_DoubleApos
      • set_form_variables_string_trim
      • ad_page_variables
      • ad_form_set_variables in packages/form-manager/form-procs.tcl
      • util_getcheckboxvalues
    • tcl/ecommerce-defs.tcl in ec_return_product_file regexp should be: regexp {/product-file/([^/]+)$} $url match file_path
    • QQ form variables bug (fixed in check_for_form_variable_naughtiness, thanks to michael@cleverly.com)
    • Branimir/Carsten's filter that checks user inputs for SQL: ad_block_sql_urls.
    • DVR's ad_set_typed_form_variable_filter that performs type checking on user inputs.
    • upload files bug (fixed in check_for_form_variable_naughtiness, discovered by ben@mit.edu)
    • took away unnecessary calls to ec_redirect_to_https_if_necessary in:
      • /ecommerce/process-payment.tcl
      • /ecommerce/checkout-3.tcl
      • /ecommerce/credit-card-correction-2.tcl
      • /ecommerce/credit-card-correction.tcl
      • /ecommerce/finalize-order.tcl
      • /ecommerce/gift-certificate-finalize-order.tcl
      • /ecommerce/gift-certificate-order-3.tcl
      • /ecommerce/gift-certificate-order-4.tcl
      • /ecommerce/payment.tcl
      • /ecommerce/process-order-quantity-shipping.tcl
      • /ecommerce/process-payment.tcl
    • execs in user-editable ADP pages
    • security checks for search/search and bboard/search (note that the fix for this, the PL/SQL proc bboard_user_can_view_topic_p is fairly expensive)

      use ns_queryget unnecessarily

      These use ns_queryget unnecessarily and are replaced with calls to ad_page_variables.

    • www/admin/users/view-verbose.tcl
    • www/admin/users/view.tcl
    • www/bboard/q-and-a-post-reply-form.tcl
    • www/bboard/usgeospatial-post-reply-form.tcl
    • www/doc/template/show-source.tcl

  • Additional security notes:
    • Some additional checks in check_for_form_variable_naughtiness have been commented out for the sake of backwards compatibility.
    • ad_block_sql_urls blocks SQL in URLs. To deactivate this filter, turn off the BlockSqlUrlsP parameter in the parameters .ini file. For more information, read the documentation.
    • ad_set_typed_form_variable_filter will require configuration for custom non-ACS modules. See packages/acs-core/security-init.tcl for examples. Note that this filter does somewhat hurt performance. At startup a large number of filters are registered with the system, which slows down startup. In addition, regular expressions are used to verify certain user inputs, which may cause problems when using AOLserver 3.0/Tcl8x.
As always, please report bugs to bugs@arsdigita.com.
richardl@arsdigita.com
spacer