History of Security
Version 5
Security
Bitweaver security settings
Created by: Benjamin Couhe, Last modification: 25 May 2009 (17:01 UTC) by Benjamin Couhe
Security settings
After you installed Bitweaver, check the following settings:- In
/kernel/config_inc.php
the parameterIS_LIVE
should beTRUE
. This means, error messages are not exposed to visitors. To see the errors yourself, either monitor your error logs directly from the server, or set IS_LIVE toFALSE
while testing and developing (and having other protection in place). - Rename your
install/
directory. Rename it back only to install new packages or upgrade Bitweaver. - In Admin > Users > Permissions, make sure that
Anonymous
is not allowed to attach files to content (default: not allowed) - If you allow users to input HTML, enable HTMLPurifier, which strips malicious code.
- If
Anonymous
can submit content, enable CAPTCHA (depends on your server's setup) in Admin > Liberty Settings
Security issues
Code injection into content
A malicious user might try to input code through on of Bitweaver's content forms (comment, wiki page etc). The best way to prevent susceptibility to HTML hacking is to disable HTML as an input format. As the Bitweaver framework allows a number of formats for content, using a wiki type format while not allowing HTML is the most secure option. It's also possible to allow HTML only for certain user groups (admins, editors etc).If the flexibility of using HTML outweighs the security concerns, Bitweaver provides a number of additional tools to sanitise data entry. One advanatge of HTML is the availability of WYSIWYG editors like FCKeditor or TinyMCE. Both of these provide filtering of input, such as only allowing a sub set of HTML tags.
Since it is possible to bypass the editors to enter HTML, a more serious level of filtering is provided by Bitweaver's Simple HTML Purifier. Finally, the most secure and comprehensive option is to use HTMLPurifier.
SQL injection
A malicious user might try to inject code into the SQL database (Postgres, MySQL etc). Each database engine requires a different version of an attack to present viable SQL. Invalid SQL will result in an error report to the administrator. A 'White Screen', claiming that you are running Bitweaver in test mode, is only returned when the parameterIS_LIVE
set to FALSE
in kernel/config_inc.php. Sites being in production are expected to have set this to TRUE
, while error reports are directed to appropriate error log files.In the past, some of Bitweaver's search functions allowed the inclusion of additional SQL
WHERE
clauses. This was not database agnostic and has been replaced. Now, additional search options build the SQL internally, preventing any possible injection attack.wiki_url_import
The "suck_url Information Disclosure" security issue has been fixed in version 2.1. Before, it was exploitable when the admin had enabled the feature wiki_url_import (default: disabled).Hacking attempts
The script kiddie plague du jour is the idea to exploit code that does:include($varWithSomeUrlFromGetString);
which would execute remotely written PHP. If such an attack is attemped, a Bitweaver install might mail an error message to you, the admin, alerting an "unknown column" or "unknown sort order" (note that normal users browsing your pages will never see any error message unless you set IS_LIVE
to false in /kernel/config_inc.php
). The error mail informs you that the attemptet hack failed (that it didn't do anything). See SQL injection above.PHP security settings
- For security reasons, your server might run PHP with features like open_basedir or safe_mode switched ON. See Install under safe mode.