1
0
mirror of https://github.com/phpbb/phpbb.git synced 2025-09-16 02:52:11 +02:00

Compare commits

..

10 Commits

Author SHA1 Message Date
Nils Adermann
af4c2a3eb1 [prep-release-3.0.8] Incrementing version number to 3.0.8 and update changelog 2010-11-19 13:22:36 +01:00
Nils Adermann
2831a3a9a9 Merge branch 'ticket/9903' into prep-release-3.0.8
* ticket/9903:
  [ticket/9903] Script for detecting potentially malicious flash bbcodes
  [ticket/9903] Fix XSS in BBcode-parser's Flash-BBcode.
2010-11-19 11:33:14 +01:00
Igor Wiedler
49b639dd95 [ticket/9903] Script for detecting potentially malicious flash bbcodes
PHPBB3-9903
2010-11-19 11:31:00 +01:00
Nils Adermann
bce138ca14 Merge branch 'ticket/igorw/9904' into prep-release-3.0.8
* ticket/igorw/9904:
  [ticket/9904] Update WebPI Parameters.xml to work with WebMatrix.
2010-11-19 11:27:57 +01:00
Chris Sfanos
e043dc316a [ticket/9904] Update WebPI Parameters.xml to work with WebMatrix.
PHPBB3-9904
2010-11-19 11:27:16 +01:00
Andreas Fischer
d917b2d737 Merge branch 'ticket/igorw/9509' into prep-release-3.0.8
* ticket/igorw/9509:
  [ticket/9509] Fix a typo and wrong period placement
2010-11-18 14:01:38 +01:00
Andreas Fischer
bb9c8ca563 Merge branch 'ticket/rmcgirr83/9899' into prep-release-3.0.8
* ticket/rmcgirr83/9899:
  [ticket/9899] Change recaptcha theme from default to 'clean' in the ACP.
2010-11-18 14:01:27 +01:00
RMcGirr83
6c45754a43 [ticket/9899] Change recaptcha theme from default to 'clean' in the ACP.
Change recaptcha theme from default to 'clean' in the ACP to better match
the administration control panel.

Follow up to d6aa25ede1.

PHPBB3-9899
2010-11-18 13:59:49 +01:00
Igor Wiedler
859149f5c3 [ticket/9509] Fix a typo and wrong period placement
Thanks to Michael C. for spotting this.

PHPBB3-9509
2010-11-18 13:55:39 +01:00
Ruslan Uzdenov
291a1fff1f [ticket/9903] Fix XSS in BBcode-parser's Flash-BBcode.
Fix XSS in Flash-BBcode by validating that the supplied argument is a URL.

PHPBB3-9903
2010-11-18 13:37:56 +01:00
10 changed files with 275 additions and 54 deletions

View File

@@ -2,9 +2,9 @@
<project name="phpBB" description="The phpBB forum software" default="all" basedir="../">
<!-- a few settings for the build -->
<property name="newversion" value="3.0.8-RC1" />
<property name="prevversion" value="3.0.7-PL1" />
<property name="olderversions" value="3.0.2, 3.0.3, 3.0.4, 3.0.5, 3.0.6" />
<property name="newversion" value="3.0.8" />
<property name="prevversion" value="3.0.8-RC1" />
<property name="olderversions" value="3.0.2, 3.0.3, 3.0.4, 3.0.5, 3.0.6, 3.0.7-PL1" />
<!-- no configuration should be needed beyond this point -->
<property name="oldversions" value="${olderversions}, ${prevversion}" />

View File

@@ -9,7 +9,7 @@
scope="iisapp"
match="phpBB3" />
</parameter>
<!--ACLs-->
<parameter
name="aclCache"
description="Sets the ACL on the cache/ folder"
@@ -19,7 +19,7 @@
<parameterEntry
type="ProviderPath"
scope="setAcl"
match="phpBB3/cache" />
match="phpBB3/cache$" />
</parameter>
<parameter
@@ -31,7 +31,7 @@
<parameterEntry
type="ProviderPath"
scope="setAcl"
match="phpBB3/files" />
match="phpBB3/files$" />
</parameter>
<parameter
@@ -43,7 +43,7 @@
<parameterEntry
type="ProviderPath"
scope="setAcl"
match="phpBB3/store" />
match="phpBB3/store$" />
</parameter>
<parameter
@@ -55,7 +55,7 @@
<parameterEntry
type="ProviderPath"
scope="setAcl"
match="phpBB3/images/avatars/upload" />
match="phpBB3/images/avatars/upload$" />
</parameter>
<parameter
@@ -67,43 +67,44 @@
<parameterEntry
type="ProviderPath"
scope="setAcl"
match="phpBB3/config.php" />
match="phpBB3/config.php$" />
</parameter>
<parameter
name="DatabaseServer"
description="Enter the database server"
defaultValue=".\SQLExpress"
tags="SQL, dbServer" >
<!-- SQL parameters -->
<parameter name="SQL Database Server" description="Enter the database server (usually machine name ) " defaultValue="." tags="SQL">
</parameter>
<parameter name="SQL DatabaseServer Instance" description="Enter the database instance name" defaultValue="SQLExpress" tags="SQL">
</parameter>
<!-- Read database server from config.php . Update 'dbhost' in config.php on publish -->
<parameter name="SQL Automatic DatabaseServer" defaultValue="dbhost = '{SQL Database Server}\\{SQL DatabaseServer Instance}';" tags="Hidden,SQL">
<parameterEntry kind="TextFile" scope="\\config\.php$" match="dbhost\s*=\s*'([^']*)'\s*;" />
</parameter>
<parameter
name="DatabaseName"
description="Database name for your application."
defaultValue="phpbb"
tags="SQL, dbName">
name="SQL DatabaseName" description="Database name for your application." defaultValue="phpbb" tags="SQL, dbName">
<parameterEntry
type="TextFile"
scope="install/mssql.sql"
match="PlaceHolderForDb" />
<parameterEntry type="TextFile" scope="install/mssql.sql" match="PlaceHolderForDb" />
</parameter>
<!-- Read database name from config.php . Update 'dbname' in config.php on publish -->
<parameter name="SQL Automatic DatabaseName" defaultValue="dbname = '{SQL DatabaseName}';" tags="Hidden,SQL">
<parameterEntry kind="TextFile" scope="\\config\.php$" match="dbname\s*=\s*'([^']*)'\s*;" />
</parameter>
<parameter
name="DatabaseAdministrator"
name="SQL DatabaseAdministrator"
description="Database server administartor username."
defaultValue="sa"
tags="SQL, DbAdminUsername" >
</parameter>
<parameter
name="DatabaseAdministratorPassword"
name="SQL DatabaseAdministratorPassword"
description="Database server administrator password."
tags="Password,SQL,DbAdminPassword">
</parameter>
<parameter
name="Database Username"
name="SQL Database Username"
description="Username to access your database."
defaultValue="phpbb"
tags="SQL, DbUsername">
@@ -113,9 +114,13 @@
scope="install/mssql.sql"
match="PlaceHolderForUser" />
</parameter>
<!-- Read database user from config.php . Update 'dbuser' in config.php on publish -->
<parameter name="SQL Automatic Database User" defaultValue="dbuser = '{SQL Database Username}';" tags="Hidden,SQL">
<parameterEntry kind="TextFile" scope="\\config\.php$" match="dbuser\s*=\s*'([^']*)'\s*;" />
</parameter>
<parameter
name="Database Password"
name="SQL Database Password"
description="Password for your phpBB database. (Must be at least 8 characters, contain at least one lower case letter, one upper case letter and one digit)"
tags="New, Password,SQL, DbUserPassword">
@@ -129,10 +134,16 @@
match="PlaceHolderForPassword" />
</parameter>
<!-- Read database user password from config.php . Update 'dbpasswd' in config.php on publish -->
<parameter name="SQL Automatic Database Password" defaultValue="dbpasswd = '{SQL Database Password}';" tags="Hidden,SQL">
<parameterEntry kind="TextFile" scope="\\config\.php$" match="dbpasswd\s*=\s*'([^']*)'\s*;" />
</parameter>
<!-- SQL Connection string -->
<parameter
name="ConnectionString"
name="SQL ConnectionString"
description="Automatically sets the connection string for the connection request."
defaultValue="Server={DatabaseServer};Database={DatabaseName};uid={DatabaseAdministrator};Pwd={DatabaseAdministratorPassword};"
defaultValue="Server={SQL Database Server}\{SQL DatabaseServer Instance};Database={SQL DatabaseName};uid={SQL DatabaseAdministrator};Pwd={SQL DatabaseAdministratorPassword};"
tags="Hidden,SQLConnectionString,Validate">
<parameterEntry
@@ -148,6 +159,7 @@
tags="SQL,Hidden">
</parameter>
<!-- MYSQL parameters -->
<parameter
name="MySQL Database Server"
description="Enter the hostname"
@@ -160,8 +172,13 @@
match="PlaceHolderForServer" />
</parameter>
<!-- Read database server from config.php . Update 'dbhost' in config.php on publish -->
<parameter name="Automatic MySQL DatabaseServer" defaultValue="dbhost = '{MySQL Database Server}';" tags="Hidden,MySQL">
<parameterEntry kind="TextFile" scope="\\config\.php$" match="dbhost\s*=\s*'([^']*)'\s*;" />
</parameter>
<parameter
name="Application Database Name"
name="MySQL Database Name"
description="Database Name for your application."
defaultValue="phpbb"
tags="MySQL, dbName">
@@ -171,22 +188,13 @@
scope="install/mysql.sql"
match="PlaceHolderForDb" />
</parameter>
<parameter
name="MySQL Database Administrator"
description="Database administrator username."
defaultValue="root"
tags="MySQL, DbAdminUsername" >
<!-- Read database name from config.php . Update 'dbname' in config.php on publish -->
<parameter name="Automatic MySQL Database Name" defaultValue="dbname = '{MySQL Database Name}';" tags="Hidden,MySQL">
<parameterEntry kind="TextFile" scope="\\config\.php$" match="dbname\s*=\s*'([^']*)'\s*;" />
</parameter>
<parameter
name="MySQL Database Administrator Password"
description="Database administrator password."
tags="Password,MySQL,DbAdminPassword" >
</parameter>
<parameter
name="phpBB Database Username"
name="MySQL Database Username"
description="Username to access your phpBB database."
defaultValue="phpbb"
tags="MySQL, DbUsername">
@@ -196,6 +204,10 @@
scope="install/mysql.sql"
match="PlaceHolderForUser" />
</parameter>
<!-- Read database user from config.php . Update 'dbuser' in config.php on publish -->
<parameter name="Automatic MySQL Database User" defaultValue="dbuser = '{MySQL Database Username}';" tags="Hidden,MySQL">
<parameterEntry kind="TextFile" scope="\\config\.php$" match="dbuser\s*=\s*'([^']*)'\s*;" />
</parameter>
<parameter
name="MySQL Database Password"
@@ -210,12 +222,30 @@
type="TextFile"
scope="install/mysql.sql"
match="PlaceHolderForPassword" />
</parameter>
<!-- Read database password from config.php . Update 'dbpasswd' in config.php on publish -->
<parameter name="MySQL Automatic Database Password" defaultValue="dbpasswd = '{MySQL Database Password}';" tags="Hidden,MySQL">
<parameterEntry kind="TextFile" scope="\\config\.php$" match="dbpasswd\s*=\s*'([^']*)'\s*;" />
</parameter>
<!-- MySQL admin credentials -->
<parameter
name="MySQL Database Administrator"
description="Database administrator username."
defaultValue="root"
tags="MySQL, DbAdminUsername" >
</parameter>
<parameter
name="MySQL Database Administrator Password"
description="Database administrator password."
tags="Password,MySQL,DbAdminPassword" >
</parameter>
<!-- MySQL Connectionstring -->
<parameter
name="MySQLConnectionString"
description="Automatically sets the connection string for the connection request."
defaultValue="Server={MySQL Database Server};Database={Application Database Name};uid={MySQL Database Administrator};Pwd={MySQL Database Administrator Password};"
defaultValue="Server={MySQL Database Server};Database={MySQL Database Name};uid={MySQL Database Administrator};Pwd={MySQL Database Administrator Password};"
tags="Hidden,MySQLConnectionString,Validate">
<parameterEntry

View File

@@ -4,7 +4,8 @@
<script type="text/javascript">
// <![CDATA[
var RecaptchaOptions = {
lang : '{LA_RECAPTCHA_LANG}'
lang : '{LA_RECAPTCHA_LANG}',
theme : 'clean',
};
// ]]>
</script>

View File

@@ -0,0 +1,163 @@
<?php
/**
*
* @package phpBB3
* @version $Id$
* @copyright (c) 2009, 2010 phpBB Group
* @license http://opensource.org/licenses/gpl-license.php GNU Public License
*
*/
/**
* This script will check your database for potentially dangerous flash BBCode tags
*/
//
// Security message:
//
// This script is potentially dangerous.
// Remove or comment the next line (die(".... ) to enable this script.
// Do NOT FORGET to either remove this script or disable it after you have used it.
//
die("Please read the first lines of this script for instructions on how to enable it\n");
/**
*/
define('IN_PHPBB', true);
$phpbb_root_path = (defined('PHPBB_ROOT_PATH')) ? PHPBB_ROOT_PATH : './';
$phpEx = substr(strrchr(__FILE__, '.'), 1);
include($phpbb_root_path . 'common.' . $phpEx);
if (php_sapi_name() != 'cli')
{
header('Content-Type: text/plain');
}
check_table_flash_bbcodes(POSTS_TABLE, 'post_id', 'post_text', 'bbcode_uid', 'bbcode_bitfield');
check_table_flash_bbcodes(PRIVMSGS_TABLE, 'msg_id', 'message_text', 'bbcode_uid', 'bbcode_bitfield');
check_table_flash_bbcodes(USERS_TABLE, 'user_id', 'user_sig', 'user_sig_bbcode_uid', 'user_sig_bbcode_bitfield');
check_table_flash_bbcodes(FORUMS_TABLE, 'forum_id', 'forum_desc', 'forum_desc_uid', 'forum_desc_bitfield');
check_table_flash_bbcodes(FORUMS_TABLE, 'forum_id', 'forum_rules', 'forum_rules_uid', 'forum_rules_bitfield');
check_table_flash_bbcodes(GROUPS_TABLE, 'group_id', 'group_desc', 'group_desc_uid', 'group_desc_bitfield');
echo "If potentially dangerous flash bbcodes were found, please reparse the posts using the Support Toolkit (http://www.phpbb.com/support/stk/) and/or file a ticket in the Incident Tracker (http://www.phpbb.com/incidents/).\n";
function check_table_flash_bbcodes($table_name, $id_field, $content_field, $uid_field, $bitfield_field)
{
echo "Checking $content_field on $table_name\n";
$ids = get_table_flash_bbcode_pkids($table_name, $id_field, $content_field, $uid_field, $bitfield_field);
$size = sizeof($ids);
if ($size)
{
echo "Found $size potentially dangerous flash bbcodes.\n";
echo "$id_field: " . implode(', ', $ids) . "\n";
}
else
{
echo "No potentially dangerous flash bbcodes found.\n";
}
echo "\n";
}
function get_table_flash_bbcode_pkids($table_name, $id_field, $content_field, $uid_field, $bitfield_field)
{
global $db;
$ids = array();
$sql = "SELECT $id_field, $content_field, $uid_field, $bitfield_field
FROM $table_name
WHERE $content_field LIKE '%[/flash:%'
AND $bitfield_field <> ''";
$result = $db->sql_query($sql);
while ($row = $db->sql_fetchrow($result))
{
$uid = $row[$uid_field];
// thanks support toolkit
$content = html_entity_decode_utf8($row[$content_field]);
set_var($content, $content, 'string', true);
$content = utf8_normalize_nfc($content);
$bitfield_data = $row[$bitfield_field];
if (!is_valid_flash_bbcode($content, $uid) && has_flash_enabled($bitfield_data))
{
$ids[] = (int) $row[$id_field];
}
}
$db->sql_freeresult($result);
return $ids;
}
function get_flash_regex($uid)
{
return "#\[flash=([0-9]+),([0-9]+):$uid\](.*?)\[/flash:$uid\]#";
}
// extract all valid flash bbcodes
// check if the bbcode content is a valid URL for each match
function is_valid_flash_bbcode($cleaned_content, $uid)
{
$regex = get_flash_regex($uid);
$url_regex = get_preg_expression('url');
$www_url_regex = get_preg_expression('www_url');
if (preg_match_all($regex, $cleaned_content, $matches))
{
foreach ($matches[3] as $flash_url)
{
if (!preg_match("#^($url_regex|$www_url_regex)$#i", $flash_url))
{
return false;
}
}
}
return true;
}
// check if a bitfield includes flash
// 11 = flash bit
function has_flash_enabled($bitfield_data)
{
$bitfield = new bitfield($bitfield_data);
return $bitfield->get(11);
}
// taken from support toolkit
function html_entity_decode_utf8($string)
{
static $trans_tbl;
// replace numeric entities
$string = preg_replace('~&#x([0-9a-f]+);~ei', 'code2utf8(hexdec("\\1"))', $string);
$string = preg_replace('~&#([0-9]+);~e', 'code2utf8(\\1)', $string);
// replace literal entities
if (!isset($trans_tbl))
{
$trans_tbl = array();
foreach (get_html_translation_table(HTML_ENTITIES) as $val=>$key)
$trans_tbl[$key] = utf8_encode($val);
}
return strtr($string, $trans_tbl);
}
// taken from support toolkit
// Returns the utf string corresponding to the unicode value (from php.net, courtesy - romans@void.lv)
function code2utf8($num)
{
if ($num < 128) return chr($num);
if ($num < 2048) return chr(($num >> 6) + 192) . chr(($num & 63) + 128);
if ($num < 65536) return chr(($num >> 12) + 224) . chr((($num >> 6) & 63) + 128) . chr(($num & 63) + 128);
if ($num < 2097152) return chr(($num >> 18) + 240) . chr((($num >> 12) & 63) + 128) . chr((($num >> 6) & 63) + 128) . chr(($num & 63) + 128);
return '';
}

View File

@@ -90,6 +90,12 @@
<div class="content">
<a name="v307-PL1"></a><h3>1.i. Changes since 3.0.7-PL1</h3>
<h4> Security
</h4>
<ul>
<li>[<a href='http://tracker.phpbb.com/browse/PHPBB3-9903'>PHPBB3-9903</a>] - Execute javascript in [flash=] BBCode
</li>
</ul>
<h4> Bug
</h4>
@@ -404,6 +410,8 @@
</li>
<li>[<a href='http://tracker.phpbb.com/browse/PHPBB3-9891'>PHPBB3-9891</a>] - Updater drops language-selection after database-update
</li>
<li>[<a href='http://tracker.phpbb.com/browse/PHPBB3-9509'>PHPBB3-9509</a>] - phpBB Coding Guidelines state subversion as the version control system for phpBB
</li>
</ul>
<h4> Improvement
@@ -467,6 +475,8 @@
</li>
<li>[<a href='http://tracker.phpbb.com/browse/PHPBB3-9880'>PHPBB3-9880</a>] - Rename all mentions of CAPTCHA or visual confirmation to anti-bot
</li>
<li>[<a href='http://tracker.phpbb.com/browse/PHPBB3-9899'>PHPBB3-9899</a>] - Change the style in the ACP for the recaptcha to match that displayed on prosilver
</li>
</ul>
<h4> New Feature
@@ -509,6 +519,8 @@
</li>
<li>[<a href='http://tracker.phpbb.com/browse/PHPBB3-9868'>PHPBB3-9868</a>] - Make the test suite run and pass using the mssqlnative driver
</li>
<li>[<a href='http://tracker.phpbb.com/browse/PHPBB3-9904'>PHPBB3-9904</a>] - Update WebPI Parameters.xml
</li>
</ul>
<h4> Sub-task

View File

@@ -2349,9 +2349,9 @@ if (utf8_case_fold_nfc($string1) == utf8_case_fold_nfc($string2))
</li>
</ul>
<a name="commitmessage"></a><h3>7.ii. Commit Messages and Reposiory Rules</h3>
<a name="commitmessage"></a><h3>7.ii. Commit Messages and Repository Rules</h3>
<p>Information on repository rules, such as commit messages can be found at <a href="http://wiki.phpbb.com/display/DEV/Git" title="phpBB Git Information">http://wiki.phpbb.com/display/DEV/Git</a></p>.
<p>Information on repository rules, such as commit messages can be found at <a href="http://wiki.phpbb.com/display/DEV/Git" title="phpBB Git Information">http://wiki.phpbb.com/display/DEV/Git</a>.</p>
</div>

View File

@@ -25,7 +25,7 @@ if (!defined('IN_PHPBB'))
*/
// phpBB Version
define('PHPBB_VERSION', '3.0.8-RC1');
define('PHPBB_VERSION', '3.0.8');
// QA-related
// define('PHPBB_QA', 1);

View File

@@ -352,6 +352,15 @@ class bbcode_firstpass extends bbcode
return '[flash=' . $width . ',' . $height . ']' . $in . '[/flash]';
}
$in = str_replace(' ', '%20', $in);
// Make sure $in is a URL.
if (!preg_match('#^' . get_preg_expression('url') . '$#i', $in) &&
!preg_match('#^' . get_preg_expression('www_url') . '$#i', $in))
{
return '[flash=' . $width . ',' . $height . ']' . $in . '[/flash]';
}
// Apply the same size checks on flash files as on images
if ($config['max_' . $this->mode . '_img_height'] || $config['max_' . $this->mode . '_img_width'])
{

View File

@@ -8,7 +8,7 @@
*
*/
$updates_to_version = '3.0.8-RC1';
$updates_to_version = '3.0.8';
// Enter any version to update from to test updates. The version within the db will not be updated.
$debug_from_version = false;
@@ -914,6 +914,8 @@ function database_update_info()
'3.0.7' => array(),
// No changes from 3.0.7-PL1 to 3.0.8-RC1
'3.0.7-PL1' => array(),
// No changes from 3.0.8-RC1 to 3.0.8
'3.0.8-RC1' => array(),
);
}
@@ -1672,7 +1674,7 @@ function change_database_data(&$no_updates, $version)
"{$phpbb_root_path}language/$lang_dir/install.$phpEx",
"{$phpbb_root_path}language/$lang_dir/acp/attachments.$phpEx",
);
foreach ($lang_files as $lang_file)
{
if (!file_exists($lang_file))
@@ -1852,6 +1854,10 @@ function change_database_data(&$no_updates, $version)
$no_updates = false;
break;
// No changes from 3.0.8-RC1 to 3.0.8
case '3.0.8-RC1':
break;
}
}
@@ -1998,7 +2004,7 @@ class updater_db_tools
'VCHAR_CI' => '[varchar] (255)',
'VARBINARY' => '[varchar] (255)',
),
'mssqlnative' => array(
'INT:' => '[int]',
'BINT' => '[float]',
@@ -2028,7 +2034,7 @@ class updater_db_tools
'VCHAR_CI' => '[varchar] (255)',
'VARBINARY' => '[varchar] (255)',
),
'oracle' => array(
'INT:' => 'number(%d)',
'BINT' => 'number(20)',
@@ -2175,7 +2181,7 @@ class updater_db_tools
case 'mssql_odbc':
$this->sql_layer = 'mssql';
break;
case 'mssqlnative':
$this->sql_layer = 'mssqlnative';
break;

View File

@@ -242,7 +242,7 @@ INSERT INTO phpbb_config (config_name, config_value) VALUES ('topics_per_page',
INSERT INTO phpbb_config (config_name, config_value) VALUES ('tpl_allow_php', '0');
INSERT INTO phpbb_config (config_name, config_value) VALUES ('upload_icons_path', 'images/upload_icons');
INSERT INTO phpbb_config (config_name, config_value) VALUES ('upload_path', 'files');
INSERT INTO phpbb_config (config_name, config_value) VALUES ('version', '3.0.8-RC1');
INSERT INTO phpbb_config (config_name, config_value) VALUES ('version', '3.0.8');
INSERT INTO phpbb_config (config_name, config_value) VALUES ('warnings_expire_days', '90');
INSERT INTO phpbb_config (config_name, config_value) VALUES ('warnings_gc', '14400');