public_html/docs/english/changes.html
author Dirk Haun <dirk@haun-online.de>
Sun, 01 Nov 2009 09:20:01 +0100
branchHEAD
changeset 7427 7915c1f5f403
parent 7410 b07ac3dba962
child 7446 3e2bd1e79a57
permissions -rw-r--r--
Update documentation + version number
     1 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
     2 <html>
     3 <head>
     4   <title>Geeklog Documentation - Changes</title>
     5   <link rel="stylesheet" type="text/css" href="../docstyle.css" title="Dev Stylesheet">
     6 </head>
     7 
     8 <body>
     9 <p><a href="http://www.geeklog.net/" style="background:transparent"><img src="../images/newlogo.gif" alt="Geeklog" width="243" height="90"></a></p>
    10 <div class="menu"><a href="index.html">Geeklog Documentation</a> - Changes</div>
    11 
    12 <h1>Changes</h1>
    13 
    14 <p>This document is intended to give a quick overview over the most important
    15 and / or obvious changes. For a detailed list of changes, please consult the
    16 <a href="../history">ChangeLog</a>. The file <tt>docs/changed-files</tt> has a
    17 list of files that have been changed since the last release.</p>
    18 
    19 <h2><a name="changes161">Geeklog 1.6.1</a></h2>
    20 
    21 <h3>New Features and Improvements</h3>
    22 
    23 <ul>
    24 <li>Geeklog now lets you enter meta descriptions and meta keywords for the main
    25     page, for stories, topics, static pages, and polls. Please note that these
    26     meta tags <a href="http://www.mattcutts.com/blog/keywords-meta-tag-in-web-search/">may not be used</a> by some search engines.</li>
    27 <li>You can now have one featured story per topic (for stories set to "Show
    28     only in Topic").</li>
    29 <li>New autotags now allow you to embed polls in stories and everywhere else
    30     where autotags are allowed.</li>
    31 <li>Minor security enhancement: "Important" cookies (like the session cookies)
    32     are now created with the HttpOnly flag set. This will help avoid some XSS
    33     attacks, provided your browser supports this flag.</li>
    34 <li>The Migrate option in the install script can now also be applied to an
    35     existing database (i.e. you don't need to import a database dump to update
    36     your URLs and paths).</li>
    37 <li>The Database Backup admin panel now includes options to optimize the
    38     database and convert tables to InnoDB (MySQL only).</li>
    39 </ul>
    40 
    41 <h3>Bugfixes</h3>
    42 
    43 <ul>
    44 <li>Fixed automatic <a href="config.html#desc_article_comment_close_enabled">closing of stories for comments</a> after a certain amount of days. If you need to
    45     re-open comments on stories that were closed due to this bug, you can use
    46     this SQL request:<br>
    47     <code style="margin-left:2em">UPDATE gl_stories SET commentcode = 0, comment_expire = 0 WHERE commentcode = 1;</code></li>
    48 <li>The comment speed limit was being ignored.</li>
    49 <li>The admin group for the Static Pages plugin was created with a wrong name
    50     in Geeklog 1.6.0 (fresh installs only).</li>
    51 </ul>
    52 
    53 <h2><a name="changes160sr2">Geeklog 1.6.0sr2</a></h2>
    54 
    55 <p>This release addresses the following security issue:</p>
    56 <ul>
    57 <li>Unauthorized file uploads were possible through FCKeditor.<br>
    58 Uploaded files still had to go through FCKeditor's filter, so it was not possible to upload scripts (and the integrity of the Geeklog site as such was not in danger). There were, however, reports that this was used to host malware.<br>
    59 This update prevents use of the upload feature when FCKeditor is disabled and disables it for anonymous users. It also doesn't allow uploading of archive files any more. Furthermore, you need some sort of "edit" permission now to be able to upload files through FCKeditor (this is meant as an interim measure - we will probably introduce a separate "upload" permission in future Geeklog versions).</li>
    60 </ul>
    61 
    62 <p>Other fixes:</p>
    63 <ul>
    64 <li>Fixed installation using InnoDB tables.</li>
    65 <li>Fixed a (non-exploitable) SQL error when auto-updating a story's
    66     commentcode field.</li>
    67 <li>Fixed a wrong function name in the Links plugin.</li>
    68 </ul>
    69 
    70 
    71 <h2><a name="changes160sr1">Geeklog 1.6.0sr1</a></h2>
    72 
    73 <p>This release addresses the following security issues:</p>
    74 <ol>
    75 <li>Gerendi Sandor Attila reported an XSS in the forms to email a user and to
    76     email a story to a friend.</li>
    77 <li>The "Mail Story to a Friend" function didn't check story permissions, so
    78     that it was possible to email a story even if you didn't have the
    79     permissions to view it on the site.</li>
    80 </ol>
    81 
    82 <p>Other fixes:</p>
    83 <ul>
    84 <li>Fixed an SQL error when submitting a story and the story submission queue
    85     was off.</li>
    86 <li>Fixed calls to a nonexistent function <code>COM_outputMessageAndAbort</code>.</li>
    87 </ul>
    88 
    89 
    90 <h2><a name="changes160">Geeklog 1.6.0</a></h2>
    91 
    92 <h3>Results from the Summer of Code</h3>
    93 
    94 <p>This release incorporates the following projects implemented during the
    95 the 2008 Google Summer of Code:</p>
    96 
    97 <ul>
    98 <li>Site migration support and easier plugin installation, by Matt West</li>
    99 <li>Improved search, by Sami Barakat</li>
   100 <li>Comment moderation and editable comments, by Jared Wenerd</li>
   101 </ul>
   102 
   103 <h3>Other changes</h3>
   104 
   105 <ul>
   106 <li>The minimum PHP version required by Geeklog is now <strong>PHP 4.3.0</strong>. Given that the PHP team ended support for PHP 4 in August 2008, you should be
   107 looking into upgrading to PHP 5 anyway.</li>
   108 <li>Includes <a href="http://www.fckeditor.net/">FCKeditor</a> 2.6.4.1</li>
   109 <li>Includes a new plugin, <a href="http://wiki.geeklog.net/index.php/XMLSitemap_Plugin">XMLSitemap</a>, that automatically generates a <a
   110     href="http://www.sitemaps.org/">XML sitemap file</a>, as supported by all
   111     major search engines. Plugin written and provided by mystral-kk.</li>
   112 <li>Several <a href="http://wiki.geeklog.net/index.php/New_Plugin_API_Functions_in_Geeklog_1.6.0">new plugin API functions</a> have been added and existing
   113     functions have been extended.</li>
   114 <li>The included documentation has been moved to <tt>docs/english</tt> to allow
   115     for translations. Links to the documentation from within Geeklog will link
   116     to existing translations for the current language automatically (or fall
   117     back to the English documentation if no suitable translation can be found).</li>
   118 <li>There were a variety of <a href="theme.html#changes">theme changes</a> to
   119     support new functionality and fix inconsistencies in the layout.</li>
   120 </ul>
   121 
   122 <p>This release also includes a number of patches and improvements made by
   123 students applying for participation in the Google Summer of Code 2009. Thank
   124 you!</p>
   125 
   126 
   127 <h2><a name="changes152sr5">Geeklog 1.5.2sr5</a></h2>
   128 
   129 <p>This release addresses the following security issues:</p>
   130 <ol>
   131 <li>Gerendi Sandor Attila reported an XSS in the forms to email a user and to
   132     email a story to a friend.</li>
   133 <li>The "Mail Story to a Friend" function didn't check story permissions, so
   134     that it was possible to email a story even if you didn't have the
   135     permissions to view it on the site.</li>
   136 </ol>
   137 
   138 
   139 <h2><a name="changes152sr4">Geeklog 1.5.2sr4</a></h2>
   140 
   141 <p>Bookoo of the Nine Situations Group posted another SQL injection exploit, targetting an old bug in usersettings.php. As with the previous issues, this allowed an attacker to extract the password hash for any account and is fixed with this release.</p>
   142 
   143 
   144 <h2><a name="changes152sr3">Geeklog 1.5.2sr3</a></h2>
   145 
   146 <p>Bookoo of the Nine Situations Group posted another SQL injection exploit, this time targetting the webservices API. As with the previous issue, this allowed an attacker to extract the password hash for any account and is fixed with this release.</p>
   147 
   148 
   149 <h2><a name="changes152sr2">Geeklog 1.5.2sr2</a></h2>
   150 
   151 <p>Bookoo of the Nine Situations Group posted an SQL injection exploit for glFusion that also works with Geeklog. This issue allowed an attacker to extract the password hash for any account and is fixed with this release.</p>
   152 
   153 
   154 <h2><a name="changes152sr1">Geeklog 1.5.2sr1</a></h2>
   155 
   156 <p>Fernando Mu&ntilde;oz reported a possible <a href="http://en.wikipedia.org/wiki/XSS" title="Click to look up 'XSS' on Wikipedia" style="text-decoration: none; color: black; border-bottom: 1px dotted black;">XSS</a> in the query form on most admin panels that we are fixing with this release.</p>
   157 
   158 
   159 <h2><a name="changes152">Geeklog 1.5.2</a></h2>
   160 
   161 <h3>Bugfixes</h3>
   162 
   163 <ul>
   164 <li>Fixed a bug in the story preview where the story content was lost when
   165     previewing a story with a duplicate story ID.</li>
   166 <li>Fixed another bug in the story preview that caused extra backslashes to
   167     appear in the story's title.</li>
   168 <li>The Trackback editor didn't work since the security token was missing from
   169     the editor template.</li>
   170 <li>Fixed issues with clickable links in plain text postings.</li>
   171 <li>Fixed various problems with updating feeds, e.g. when changing topic
   172     permissions.</li>
   173 </ul>
   174 
   175 <h3>Fixes in the bundled Plugins</h3>
   176 
   177 <ul>
   178 <li>Calendar: You couldn't add a new event to your personal calendar.</li>
   179 <li>Links: Changing a link's ID to one that was already in use overwrote the
   180     other link.</li>
   181 <li>Polls: Changing a poll's ID created a new poll. Also fixed an SQL error
   182     when the poll question contained single quotes.</li>
   183 <li>Static Pages: Saving a static page changed the owner to the user who saved
   184     it.</li>
   185 </ul>
   186 
   187 <h3>Other Changes</h3>
   188 
   189 <ul>
   190 <li>Improved image quality when using gdlib to rescale uploaded images.</li>
   191 <li>Theme changes are documented in the <a href="theme.html#changes">theme
   192     documentation</a>, as usual. There are 4 bugfixes (one of which is in the
   193     templates for the Polls plugin) that should be applied to all themes for
   194     the 1.5.x series.</li>
   195 </ul>
   196 
   197 
   198 <h2><a name="changes151">Geeklog 1.5.1</a></h2>
   199 
   200 <p>Geeklog 1.5.1 is mostly a bugfix release and a recommended upgrade for users
   201 of Geeklog 1.5.0. There were also a few minor feature additions.</p>
   202 
   203 <h3>Bugfixes</h3>
   204 
   205 <h4>Security related</h4>
   206 
   207 <ul>
   208 <li>The upload script for FCKeditor could be <a
   209     href="http://www.geeklog.net/article.php/file-uploads">called directly</a>
   210     to upload various media files (but not executable scripts), as reported
   211     by t0pP8uZz.</li>
   212 <li>The protection in various include files against direct execution did not
   213     work properly on non-case sensitive file systems, e.g. on Windows
   214     (reported by Mark Evans).</li>
   215 <li>It was possible to view stories with a publication date in the future and
   216     stories that had the draft flag set if you knew their story ID.</li>
   217 <li>It was possible to post comments on unpublished stories if you knew their
   218     story ID.</li>
   219 <li>When a database backup fails, the database password is no longer logged to
   220     <tt>error.log</tt>.</li>
   221 </ul>
   222 
   223 <h4>Other Bugfixes</h4>
   224 
   225 <ul>
   226 <li>All right-side blocks were rendered twice, which not only took more time
   227     than necessary, but could also affect the functionality of add-ons like
   228     the Chatterblock or Shoutbox.</li>
   229 <li>Fixed handling of security tokens (for CSRF protection) that prevented
   230     you from deleting comments on a story that had trackbacks.</li>
   231 <li>Other fixes were applied to the user submission queue, story submissions,
   232     the list of draft stories and the support for MS SQL.</li>
   233 </ul>
   234 
   235 <h4>Fixes in the bundled Plugins</h4>
   236 
   237 <ul>
   238 <li>Calendar: Fixed display of events in the Upcoming Events block for the
   239     current day (really this time ...).</li>
   240 <li>Links: Fixed SQL error when trying to change a category and fixed new
   241     categories silently overwriting existing categories with the same ID.</li>
   242 <li>Static Pages: Fixed printer friendly version when <tt>url_rewrite</tt> is
   243     enabled.</li>
   244 </ul>
   245 
   246 <h3>New Features and Improvements</h3>
   247 
   248 <ul>
   249 <li>Includes <a href="http://www.fckeditor.net/">FCKeditor</a> 2.6.3</li>
   250 <li>In multi-language setups, blocks can now also be multi-lingual.</li>
   251 <li>New "Subscribe to ..." feed story option when there is a separate feed for
   252     a story's topic.</li>
   253 <li>New option "All Frontpage Stories" for article feeds (skip stories that have
   254     the "Show only in topic" option set).</li>
   255 <li>Allow to unset Configuration options again after they have been "restored",
   256     e.g. after accidental activation.</li>
   257 <li>Configuration options can now be overwritten in <tt>siteconfig.php</tt>.
   258     This is mostly useful for the <code>$_CONF['rootdebug']</code> option.</li>
   259 <li>Remotely authenticated users can now use the webservices (they need to use
   260     <tt>username@servicename</tt> for their username).<br>
   261     <strong>Note:</strong> OpenID users can <em>not</em> use the webservices,
   262     due to technical issues with the authentication method.</li>
   263 <li>Improved compatibility of the webservices (i.e. AtomPub).</li>
   264 </ul>
   265 
   266 <h3>Theme Changes</h3>
   267 
   268 <p>There was one mandatory theme change: The template file for configuration
   269    items, <tt>admin/config/config_element.thtml</tt> has to be updated (copy
   270    from the Professional theme). All other theme changes in this release are
   271    optional - see the <a href="theme.html#changes">theme documentation</a> for
   272    details.</p>
   273 
   274 
   275 <h2><a name="changes150">Geeklog 1.5.0</a></h2>
   276 
   277 <h3>Results from the Summer of Code</h3>
   278 
   279 <p>This release incorporates the following projects implemented during the
   280 the 2007 Google Summer of Code:</p>
   281 
   282 <ul>
   283 <li>New user-friendly install script by Matt West</li>
   284 <li>New Configuration GUI (replacing config.php) by Aaron Blankstein</li>
   285 <li>New Webservices API based on the Atom Publishing Protocol by Ramnath R. Iyer</li>
   286 </ul>
   287 
   288 <h3>Other New Features and Improvements</h3>
   289 
   290 <ul>
   291 <li>OpenID support: You can now allow users to log into your site using an
   292     OpenID, so that they don't need to create a new account with your site but
   293     still get all the benefits of a normal registered user.</li>
   294 <li>New LDAP remote authentication module.</li>
   295 <li>The Links plugin now has hierarchical (sub-)categories.</li>
   296 <li>Updated <a href="http://www.fckeditor.net/">FCKeditor</a> to version 2.6.</li>
   297 <li>Rewrite of the underlying story code. Amongst other things, this should
   298     finally resolve all outstanding issues with the handling of special
   299     characters, HTML entities, etc. in stories. Also introduces a new
   300     <code>[raw]</code> tag as an inline complement to <code>[code]</code> when
   301     you want to post pieces of code (e.g. HTML) "as is", so that they are not
   302     interpreted.</li>
   303 <li>Comments can now be closed, i.e. existing comments will still be displayed
   304     but no new comment can be posted.</li>
   305 <li>The Polls plugin now allows for multiple questions per poll.</li>
   306 <li>The Static Pages plugin now supports comments.</li>
   307 <li>The database backup admin panel now lets you delete and download
   308     backups.</li>
   309 <li>The default Professional theme is now HTML 4.01 Strict compliant. Geeklog
   310     now also <a href="theme.html#xhtml">supports XHTML</a> (given an XHTML
   311     compliant theme).</li>
   312 </ul>
   313 
   314 <h3>Security</h3>
   315 
   316 <ul>
   317 <li>Geeklog now includes protection against <a href="http://www.geeklog.net/article.php/csrf">cross-site request forgery</a> attacks.</li>
   318 <li>Lukasz Pilorz reported <a href="http://www.geeklog.net/article.php/kses">security issues in kses</a>, the HTML filter we're using in Geeklog.</li>
   319 </ul>
   320 
   321 
   322 <h2><a name="changes141">Geeklog 1.4.1</a></h2>
   323 
   324 <h3>New Features</h3>
   325 
   326 <ul>
   327 <li>Support for Microsoft SQL Server. Starting with this release, Geeklog can
   328     now also be installed on Microsoft SQL Server, so it's no longer restricted
   329     to just MySQL. The MS SQL support was developed by Randy Kolenko.
   330     Thanks, Randy!<br>
   331     Please note that any third-party plugins will have to offer support for
   332     MS SQL before they can be installed on Microsoft SQL Server. The bundled
   333     plugins (Calendar, Links, Polls, Spam-X, Static Pages) have already been
   334     updated accordingly.</li>
   335 <li><a href="calendar.html">Calendar plugin</a>. The formerly built-in calendar
   336     and events have now been moved into a separate plugin. This complements the
   337     move of the <a href="polls.html">polls</a> and <a href="links.html">links</a> sections into plugins in Geeklog 1.4.0 and makes Geeklog more modular as you
   338     can now easily disable or replace functionality that you don't need for
   339     your site.</li>
   340 <li><a href="http://wiki.geeklog.net/wiki/index.php/Multi-Language_Support">Multi-language support</a>. It is now possible to build truly multi-lingual sites
   341     with Geeklog where not only the navigation but also the content of the site
   342     changes with the language.</li>
   343 <li>Ships with <a href="http://www.fckeditor.net/">FCKeditor</a> 2.3.1, which once
   344     again includes a file manager for uploading images.</li>
   345 <li>A function for mass-deletion of old or inactive users. The list automatically
   346     searches for users that have never logged in, only used the site for a very
   347     short time or have not been online since a very long time. The time span can
   348     be varied, and found users can be selectively deleted.</li>
   349 </ul>
   350 
   351 <h3>Security</h3>
   352 
   353 <p>In the light of the security issues discovered in Geeklog 1.4.0 and earlier
   354 versions, the Geeklog source code has undergone a code review. We have
   355 identified and addressed several minor issues and introduced new measures to
   356 enhance security in this release. As a welcome side effect, the code reviews
   357 have also uncovered a few bugs and inconsistencies that we also fixed in this
   358 release.</p>
   359 
   360 <h3>Spam Protection</h3>
   361 
   362 <p>With this release we are finally removing support for the <a href="http://www.geeklog.net/article.php/mt-blacklist-discontinued">discontinued</a> MT-Blacklist. In its place, we are now using a system called Spam Link Verification (SLV) run by Russ Jones at <a href="http://www.linksleeve.org/">www.linksleeve.org</a>. SLV could be described as a community-driven, automatically updated blacklist. See the documentation of the <a href="spamx.html" rel="nofollow">Spam-X plugin</a> for details.</p>
   363 
   364 
   365 <h2><a name="changes140sr6">Geeklog 1.4.0sr6</a></h2>
   366 
   367 <p>MustLive pointed out a possible <a href="http://en.wikipedia.org/wiki/XSS" title="Click to look up 'XSS' on Wikipedia" style="text-decoration: none; color: black; border-bottom: 1px dotted black;">XSS</a> in the form to email an article to a friend that we're fixing with this release.</p>
   368 
   369 
   370 <h2><a name="changes140sr5-1">Geeklog 1.4.0sr5-1</a></h2>
   371 
   372 <p>This release fixes display problems in the comment preview that were only
   373 introduced in Geeklog 1.4.0sr5.</p>
   374 
   375 
   376 <h2><a name="changes140sr5">Geeklog 1.4.0sr5</a></h2>
   377 
   378 <p>JPCERT/CC informed us about a possible <a href="http://en.wikipedia.org/wiki/XSS" title="Click to look up 'XSS' on Wikipedia" style="text-decoration: none; color: black; border-bottom: 1px dotted black;">XSS</a> in the comment handling that we're fixing with this release.</p>
   379 
   380 
   381 <h2><a name="changes140sr4">Geeklog 1.4.0sr4</a></h2>
   382 
   383 <p>Two exploits have been released by "rgod" for insecure Geeklog installations and for a bug in the "mcpuk" file manager that we've been shipping as part of FCKeditor in all previous 1.4.0 releases.</p>
   384 
   385 <ul>
   386 <li>Some of the files outside of the public_html directory were not protected
   387     against direct execution. If Geeklog was installed such that those files
   388     were accessible from a URL (which has always been strongly discouraged in
   389     the installation instructions) then those files could be used to load and
   390     execute malicious code from a remote server.
   391     <br><br>
   392     More information: <a
   393     href="http://www.geeklog.net/article.php/so-called-exploit">So-called
   394     Geeklog "exploit" posted</a>
   395     <br><br>
   396     In this release, we've added the missing execution prevention for all files
   397     outside of public_html. We would still, however, suggest that you fix your
   398     Geeklog install if the files outside of public_html are accessible from a
   399     URL (see our <a
   400     href="http://www.geeklog.net/faqman/index.php?op=view&amp;t=56">FAQ</a> for
   401     details).
   402 </li>
   403 <li>The "mcpuk" file manager that we've integrated into FCKeditor allowed the
   404     upload of arbitrary PHP code (even if FCKeditor was disabled in Geeklog's
   405     config.php). Depending on your webserver's configuration, it was then
   406     possible to execute that uploaded code.
   407     <br><br>
   408     More information: <a href="http://www.geeklog.net/article.php/exploit-for-fckeditor-filemanager">Exploit for FCKeditor's mcpuk file manager</a>
   409     <br><br>
   410     The file manager has been removed from this release. You will therefore no
   411     longer be able to upload files, e.g. images, through FCKeditor. Future
   412     versions of Geeklog will ship with an updated version of FCKeditor and its
   413     included file manager.
   414 </li>
   415 </ul>
   416 
   417 <p>Note: This release also includes the <a
   418 href="http://www.geeklog.net/article.php/fighting-trackback-spam">updated
   419 lib-trackback.php</a> for better protection against Trackback spam.</p>
   420 
   421 
   422 <h2><a name="changes140sr3">Geeklog 1.4.0sr3</a></h2>
   423 
   424 <p>This release addresses the following security issues:</p>
   425 <ol>
   426 <li>Possible SQL injection and authentication bypass in <tt>auth.inc.php</tt>
   427     (reported by the Security Science Researchers Institute Of Iran).</li>
   428 <li>Possible XSS in <tt>getimage.php</tt>
   429     (reported by the Security Science Researchers Institute Of Iran).</li>
   430 <li>Path disclosure in <tt>getimage.php</tt> and the <tt>functions.php</tt> of
   431     some themes, e.g. the Professional theme
   432     (reported by the Security Science Researchers Institute Of Iran).</li>
   433 <li>Possible SQL injection in story submissions.</li>
   434 </ol>
   435 
   436 
   437 <h2><a name="changes140sr2">Geeklog 1.4.0sr2</a></h2>
   438 
   439 <p>This release addresses the following security issues:</p>
   440 <ul>
   441 <li>Konstantin Dyakoff found an old bug in the session handling that would
   442     allow anyone to log in as any user.</li>
   443 <li>HTML was not stripped from the Location field in a user's profile.</li>
   444 </ul>
   445 
   446 
   447 <h2><a name="changes140sr1">Geeklog 1.4.0sr1</a></h2>
   448 
   449 <p>This release addresses the following security issues:</p>
   450 <ul>
   451 <li>James Bercegay of GulfTech Security Research reported several issues with
   452     Geeklog's cookie handling that made it vulnerable to SQL injections,
   453     arbitrary file access, and even injection and execution of arbitrary
   454     code.</li>
   455 </ul>
   456 
   457 
   458 <h2><a name="changes140">Geeklog 1.4.0</a></h2>
   459 
   460 <p><small>(Geeklog 1.4.0 was originally supposed to be called 1.3.12, so any
   461 references you may find to a version 1.3.12 apply to version 1.4.0)</small></p>
   462 
   463 <h3>New Features</h3>
   464 
   465 <ul>
   466 <li>Geeklog now officially works with <code>register_globals = off</code>.
   467     Please note that some plugins may still require it to be <code>on</code>,
   468     though.</li>
   469 <li>Added support for sending and receiving <a
   470     href="http://en.wikipedia.org/wiki/Trackback">Trackback</a> and <a
   471     href="http://en.wikipedia.org/wiki/Pingback">Pingback</a> comments. Both
   472     are supported for stories, but there is also a new plugin API so that
   473     plugins can use this feature, too.  Trackback and Pingback can be disabled
   474     in <tt>config.php</tt>.</li>
   475 <li>Added the ability to "ping" weblog directory services to advertise site
   476     updates (preconfigured to ping <a
   477     href="http://pingomatic.com">Ping-o-Matic</a>). As with Trackback and
   478     Pingback, this is supported for stories, but plugins can also make use of
   479     this feature via the plugin API.</li>
   480 <li>New syndication framework so that Geeklog can now <strong>read and
   481     write</strong> feeds in different formats (currently supported: RSS, RDF,
   482     and Atom).</li>
   483 <li>New administrator controlled user status. Including banning and
   484     administrator activation of accounts.</li>
   485 <li>New Remote Authentication system to allow people with accounts on remote
   486     services such as Blogger.com or LiveJournal.com to login to your site
   487     without having to directly register on your site. (Remote accounts can be
   488     banned as normal accounts).</li>
   489 <li>The Admin sections have been revamped to provide a more consistent look and
   490     sortable lists. "Command and Control" (<tt>moderation.php</tt>) now also
   491     comes with a new set of icons and has one icon for every Admin section.
   492     Furthermore, the Admin block and Command and Control can be <a
   493     href="config.html#desc_sort_admin">sorted</a> alphabetically.</li>
   494 <li>Ships with <a href="http://www.fckeditor.net/">FCKeditor</a> (WYSIWYG
   495     editor). To <a href="config.html#desc_advanced_editor">enable</a>, set
   496     <code>$_CONF['advanced_editor'] = true;</code> in your
   497     <tt>config.php</tt>.</li>
   498 <li>The search now only displays a specified amount of results per page to
   499     avoid running into timeouts when searching through large databases.<br>
   500     <b>Note:</b> Plugins will have to be updated to support the "paged" search.
   501     Until then, Geeklog fakes the paged results for plugin searches, which
   502     means that a plugin that hasn't been updated will still search through the
   503     entire database, but Geeklog will only display the results for the current
   504     result page.</li>
   505 <li>Introduced an "Article Directory", providing an overview of all past
   506     articles, sorted by year and month.</li>
   507 <li>The default permissions for new objects (stories, topics, blocks, etc.) can
   508     now be set in config.php.</li>
   509 </ul>
   510 
   511 <h3>Compatibility</h3>
   512 
   513 <ul>
   514 <li>Due to the changes, themes will have to be updated to work with Geeklog
   515     1.4.0. See the <a href="theme.html#changes">list of theme changes</a> for
   516     details.</li>
   517 <li>The plugin API for comments has changed. Plugins using comments will have
   518     to be updated to work with Geeklog 1.4.0.</li>
   519 </ul>
   520 
   521 <h3>More Information</h3>
   522 
   523 <p>We have posted a series of stories on the Geeklog homepage that highlight and explain some of the new features:</p>
   524 <ul>
   525 <li><a href="http://www.geeklog.net/article.php/advanced-editor">Geeklog's Advanced Editor</a></li>
   526 <li><a href="http://www.geeklog.net/article.php/remote-authentication">Remote Authentication</a></li>
   527 <li><a href="http://www.geeklog.net/article.php/trackback-pingback">Trackback and Pingback</a></li>
   528 <li><a href="http://www.geeklog.net/article.php/ping">Sending a Ping</a></li>
   529 <li><a href="http://www.geeklog.net/article.php/comment-plugin-api">New Comment Plugin API</a></li>
   530 </ul>
   531 
   532 
   533 <h2><a name="changes1311sr7">Geeklog 1.3.11sr7</a></h2>
   534 
   535 <p>JPCERT/CC informed us about a possible <a href="http://en.wikipedia.org/wiki/XSS" title="Click to look up 'XSS' on Wikipedia" style="text-decoration: none; color: black; border-bottom: 1px dotted black;">XSS</a> in the comment handling that we're fixing with this release.</p>
   536 
   537 
   538 <h2><a name="changes1311sr6">Geeklog 1.3.11sr6</a></h2>
   539 
   540 <p>This release addresses the following security issues:</p>
   541 <ol>
   542 <li>Possible SQL injection and authentication bypass in <tt>auth.inc.php</tt>
   543     (reported by the Security Science Researchers Institute Of Iran).</li>
   544 <li>Possible XSS in <tt>getimage.php</tt>
   545     (reported by the Security Science Researchers Institute Of Iran).</li>
   546 <li>Path disclosure in <tt>getimage.php</tt> and the <tt>functions.php</tt> of
   547     some themes, e.g. the Professional theme
   548     (reported by the Security Science Researchers Institute Of Iran).</li>
   549 <li>Possible SQL injection in story submissions.</li>
   550 </ol>
   551 
   552 
   553 <h2><a name="changes1311sr5">Geeklog 1.3.11sr5</a></h2>
   554 
   555 <ul>
   556 <li>Konstantin Dyakoff found an old bug in the session handling that would
   557     allow anyone to log in as any user.</li>
   558 </ul>
   559 
   560 
   561 <h2><a name="changes1311sr4">Geeklog 1.3.11sr4</a></h2>
   562 
   563 <p>This release addresses the following security issues:</p>
   564 <ul>
   565 <li>James Bercegay of GulfTech Security Research reported several issues with
   566     Geeklog's cookie handling that made it vulnerable to SQL injections,
   567     arbitrary file access, and even injection and execution of arbitrary
   568     code.</li>
   569 </ul>
   570 
   571 
   572 <h2><a name="changes1311sr3">Geeklog 1.3.11sr3</a></h2>
   573 
   574 <p>This release addresses the following security issues:</p>
   575 
   576 <ol>
   577 <li>Provided you knew the story id, it was possible to submit comments for
   578     stories even if you did not have access to those stories
   579     (reported by LWC). The same problem also existed with poll comments.</li>
   580 <li>Supplying an illegal start or end date to the advanced search resulted in a
   581     warning message that disclosed the path to the Geeklog install on the
   582     server (reported by r0t3d3Vil).<br>
   583     It was <strong>not</strong> possible to use this for SQL injections.</li>
   584 </ol>
   585 
   586 <p>Also included in this release are bugfixes, e.g. for the problems editing
   587 static pages when URL rewriting was enabled, that were introduced in
   588 1.3.11sr2.</p>
   589 
   590 
   591 <h2><a name="changes1311sr2">Geeklog 1.3.11sr2</a></h2>
   592 
   593 <p>This release provides security enhancements and better spam protection
   594 originally developed for Geeklog 1.3.12. It also addresses a few bugs where
   595 the bugfix could be integrated with a reasonable amount of work (other bugfixes
   596 will have to wait for the 1.3.12 release).
   597 
   598 <h3>Security and Spam protection</h3>
   599 <ul>
   600 <li>There is now a speed limit for login attempts, defaulting to three tries
   601     in a five minute period (<a
   602     href="config.html#desc_login_attempts">configurable</a> in
   603     <tt>config.php</tt>).</li>
   604 <li>Linefeeds are filtered from the To:, From:, and Subject: fields of any
   605     email sent through <code>COM_mail</code>.</li>
   606 <li>When a new user account is created and the user submission queue is enabled
   607     in <tt>config.php</tt>, Geeklog now ensures that the new account is properly
   608     queued even in the unlikely event that the account creation fails halfway
   609     through.</li>
   610 <li>When a post is identified as spam, it now also triggers the speed limit
   611     (ie. posters will have to wait for the speed limit to expire before they
   612     can make another submission).</li>
   613 <li>Spam posts now get a 403 "Forbidden" HTTP response code.</li>
   614 <li>Spam checks are now done for comments, story, link, and event submissions,
   615     the message sent with the "email story to a friend" option, and for the
   616     contents of the user profile.</li>
   617 <li><a href="http://www.geeklog.net/article.php/spam-x-1.0.2"
   618     rel="nofollow">Spam-X plugin 1.0.2</a> included.</li>
   619 </ul>
   620 
   621 <p>Please note that MT-Blacklist (used by Spam-X) has recently been <a href="http://www.geeklog.net/article.php/mt-blacklist-discontinued">discontinued</a>. The
   622 Spam-X plugin as included in this release is configured to get the last version
   623 of the blacklist from geeklog.net, but there will be no more updates.</p>
   624 
   625 <h3>Bugfixes</h3>
   626 <ul>
   627 <li>Fixed an error message thrown up by PHP 5.0.5 or later when viewing the
   628     article page (bug #483).</li>
   629 <li>Quote names in email addresses as soon as they contain any non-alphanumeric
   630     characters, apart from the blank (bug #368). This should help when trying
   631     to email users with special characters in their name.</li>
   632 <li>Upgraded included kses class to version 0.2.2 which fixes problems with
   633     Japanese and Thai characters (bugs #94 and #119).</li>
   634 <li>Fixed SQL error when using the [staticpage:] autotag (bug #373).</li>
   635 </ul>
   636 <p>For a complete list of bugfixes, please see the Changelog.</p>
   637 
   638 <h3>Improvements</h3>
   639 <ul>
   640 <li>Added support for a <code>custom_usercheck</code> function (for the
   641     custom registration code). See the included <tt>lib-custom.php</tt> for
   642     details.</li>
   643 <li>Improved handling of the auto-archive option in <tt>index.php</tt>, which
   644     should slightly improve page load times.</li>
   645 <li>Includes several new and updated language files.</li>
   646 <li>Includes updated PEAR classes.</li>
   647 </ul>
   648 
   649 
   650 <h2><a name="changes1311sr1">Geeklog 1.3.11sr1</a></h2>
   651 <p>This release addresses the following security issue:</p>
   652 <ul>
   653 <li>Stefan Esser found an SQL injection that can, under certain circumstances,
   654 be exploited to extract user data such as the user's password hash.</li>
   655 </ul>
   656 
   657 <h2><a name="changes1311">Geeklog 1.3.11</a></h2>
   658 
   659 <p>Geeklog 1.3.11 is a <strong>bugfix and security release</strong> over Geeklog 1.3.10 and is meant to replace 1.3.10. The change in the version number was necessary since one of the bugfixes involves a change in the database.</p>
   660 
   661 <h3>Security issues</h3>
   662 <ol>
   663 <li>It was possible to submit stories anonymously even if anonymous submissions
   664     were turned off in <tt>config.php</tt> (reported by Barry Wong).<br>
   665     These stories still ended up in the submission queue, though, unless you
   666     disabled it in <tt>config.php</tt>.</li>
   667 <li>Some of the parameters in link and event submissions weren't filtered,
   668     leaving them open to potential SQL injections.</li>
   669 <li>The links for the What's Related block were created from the unfiltered
   670     story text, opening the possibility of XSS attacks (reported by Vincent
   671     Furia).</li>
   672 </ol>
   673 
   674 <h3>Bugfixes</h3>
   675 <ul>
   676 <li>Fixes the length of the 'sid' field in the gl_comments table. Using story
   677     IDs longer than 20 characters prevented comment posts from being associated
   678     with the story.</li>
   679 <li>Ensures compatibility with PHP 4.1.x (includes updated PEAR packages).</li>
   680 <li>Fixes the archiving option being activated too early (bug #345).</li>
   681 <li>Properly deletes comments and story images when deleting entire topics
   682     (bug #339).</li>
   683 <li>Deletes comments when deleting polls.</li>
   684 <li>Fixes several bugs in the calendar and improves overall handling of both
   685     the site calendar and the personal calendars (bugs #268, #336, #338, and
   686     others).</li>
   687 <li>Fixes "More by <i>author</i>" and "More from <i>topic</i>" links in
   688     articles.</li>
   689 <li>Various other fixes, see <tt>docs/history</tt> for details.</li>
   690 </ul>
   691 
   692 <p>We strongly advise users of Geeklog 1.3.10 to upgrade to 1.3.11 ASAP. Upgrading should be relatively painless, as there weren't any changes in the themes, language files, or config.php over 1.3.10.</p>
   693 
   694 
   695 <h2><a name="changes1310">Geeklog 1.3.10</a></h2>
   696 
   697 <h3>New Default Theme</h3>
   698 
   699 <p>This release comes with a new default theme: We've chosen the Professional
   700 theme, kindly provided by Victor B. Gonzalez (of <a href="http://aeonserv.com">Aeonserv</a> fame). The theme has been modified slightly and is now fully HTML 4.01 and CSS compliant.</p>
   701 
   702 <p>We've also decided to remove the old set of themes (Classic, Clean, Digital Monochrome, Gameserver, Smooth Blue, XSilver, Yahoo) from the distribution. They are now available as a separate tarball.</p>
   703 
   704 <h3>New Features</h3>
   705 
   706 <ul>
   707 <li><a href="spamx.html" rel="nofollow">Spam-X plugin</a> included. Tom Willet
   708     has kindly provided his spam detection plugin, which is now part of the
   709     default Geeklog install.<br>
   710     The plugin has been modified slightly to store the blacklists in the
   711     database. Users of the previous version of the plugin will have to import
   712     their personal blacklist via the plugin's admin panel.</li>
   713 <li>Story Archive feature: It is now possible to move stories to an "archive"
   714     topic or have them deleted automatically at a given time.</li>
   715 <li>Customizable menu bar: The site's menu bar can now be <a
   716     href="config.html#desc_menu_elements">configured</a> in config.php, i.e.
   717     you can choose which entries should be displayed there and in which order.
   718     It's also possible to add custom entries by providing a function in
   719     lib-custom.php.</li>
   720 <li>Clickable links in text postings: URLs in non-HTML postings are now
   721     recognized by Geeklog and displayed as clickable links.</li>
   722 <li>Editable story IDs: The IDs of stories can now be changed (like the IDs of
   723     static pages) to provide more readable URLs (and further improve the
   724     chances of being picked up by seach engines, especially when used with
   725     URL rewriting).</li>
   726 <li>Autolinks are a new form of links that can be used in stories and comments.
   727     An autolink takes the form
   728     <code>[<i>name</i>:<i>id</i> <i>link text</i>]</code> where <i>name</i> is
   729     the tag name, <i>id</i> is the ID of an object the link should be pointing
   730     to, and <i>link text</i> is used as the text of the link.<br>
   731     Example: <code>[story:email-bug About the email bug]</code> would be
   732     translated into <code>&lt;a href="http://example.com/article.php/email-bug"&gt;About the email bug&lt;/a&gt;</code><br>
   733     For the built-in autotags, the <i>link text</i> is optional and Geeklog
   734     will use the title of the object (story / event / static page) if it is not
   735     given.<br>
   736     Predefined autotags are <code>[story:]</code> to link to stories and
   737     <code>[event:]</code> to link to events. Plugins can define their own
   738     autotags to provide links to objects under their control. The Static Pages
   739     plugin already provides a <code>[staticpage:]</code> autotag.</li>
   740 <li>Customizable welcome email: The email that is sent out to users
   741     registering with your site is now fully customizable by providing the
   742     text in a text file (/path/to/geeklog/data/welcome_email.txt).</li>
   743 <li>Timezone hack: The popular "<a
   744     href="http://www.geeklog.net/forum/viewtopic.php?showtopic=40196">timezone
   745     hack</a>" is now included. It lets you set the site's timezone for when
   746     your server is located in another timezone.</li>
   747 </ul>
   748 
   749 <h3>Other Improvements</h3>
   750 
   751 <ul>
   752 <li>Various changes have been made to improve the overall performance.</li>
   753 <li>On fresh installs, there is now an option to use InnoDB tables (instead of
   754     MyISAM) if your MySQL version supports them (as of MySQL 4.0, or 3.x "Max"
   755     builds). Existing databases can be converted to InnoDB by using the script
   756     <tt>admin/install/toinnodb.php</tt>.<br>
   757     <strong>Warning:</strong> Using InnoDB tables makes database backups
   758     somewhat more complicated. Small and medium-sized sites should work just
   759     fine with MyISAM tables, so if in doubt <em>don't</em> use InnoDB
   760     tables.</li>
   761 <li>The calendar's week can now either start on a Sunday or a Monday.</li>
   762 <li>The Static Pages plugin now has an option to display a printer-friendly
   763     version of a static page.</li>
   764 </ul>
   765 
   766 <h3>Comments</h3>
   767 
   768 <ul>
   769 <li>The comment code has undergone major changes to improve performance and
   770     add improvements like the ability to link to individual comments,
   771     paging comments, etc.</li>
   772 <li>Users can now report abusive comments to the site admin.</li>
   773 <li>The site admin can get an email notification when a new comment is
   774     posted (similar to the notification emails for new stories, links,
   775     events, and users).</li>
   776 <li>The IP addresses of comment posters are now tracked and can be looked up
   777     directly by linking to a Whois service (or you can install Tom Willet's
   778     <a href="http://sf.net/project/showfiles.php?group_id=68255&amp;package_id=95743">NetTools</a>, which include a Whois function).</li>
   779 </ul>
   780 
   781 <h3>Security-related fixes</h3>
   782 
   783 <p><strong>Note:</strong> All of the following bugs were problems with
   784 Geeklog's permissions system and fall into the "information leakage" category,
   785 i.e. under certain circumstances, site content was visible to persons who
   786 shouldn't be able to see it. None of these bugs were exploitable in the sense
   787 that they could be used to gain privileges or cause damage to Geeklog or the
   788 environment it's running in.</p>
   789 
   790 <ul>
   791 <li>Group Admins were able to list the members of all groups, even if they were
   792     not members of those groups.</li>
   793 <li>Group Admins were given a list of all the groups in the system, even if
   794     they were not members of those groups (bug #280).</li>
   795 <li>Story and Event Admins were always given a list of all the stories / all
   796     the events, even when they didn't have read access to them (bug #269).</li>
   797 <li>It was possible to request comments from stories even if the user didn't
   798     have permission to read the story (provided you knew both the story and
   799     the comment id).</li>
   800 <li>Event permissions in the calendar's day and week view weren't checked
   801     properly, so that events may have been visible to users who shouldn't
   802     have been able to see them.</li>
   803 <li>It was possible to add any event to the personal calender, even if you
   804     didn't have permissions to see it in the site calendar (provided you knew
   805     the event id).</li>
   806 </ul>
   807 
   808 <h3>Other bugfixes</h3>
   809 
   810 <ul>
   811 <li>Previewing and saving a story submission left the submitted story in the
   812     submission queue, but did additionally save it as a new story.</li>
   813 <li>Deleting an event from the personal calendar didn't work (bug #199).</li>
   814 <li>Old userphotos weren't removed when the new photo had a different file
   815     type, e.g. when changing from a .gif to a .jpg (bug #228).</li>
   816 <li>Scaling images didn't work when the image exceeded the max. height but
   817     not the max. width (bug #242).</li>
   818 <li>Keeping an unscaled image wasn't possible when using gdlib to rescale
   819     images (bug #197).</li>
   820 <li>When using gdlib, GIF images were converted to PNG format, but Geeklog
   821     was still trying to display the GIF version. Since the LZW patent has
   822     now <a href="http://www.unisys.com/about__unisys/lzw">expired</a>, it is
   823     safe to use GIF images again and the PNG conversion has been dropped.</li>
   824 <li>The tarball also includes updated PEAR packages which should address the
   825     email problems some users were having (bug #246).<br>
   826     <strong>Note:</strong> These are the same PEAR packages that already
   827     shipped with Geeklog 1.3.9sr2.</li>
   828 </ul>
   829 
   830 <p>Please note that there have also been <a href="theme.html#changes">theme
   831 changes</a>, some of which are important to make the new features work (e.g.
   832 the editable story IDs and the story archive options)!</p>
   833 
   834 <p>This release contains various improvements provided by the Geeklog community
   835 (see the <tt>docs/history</tt> file for proper credits). Thank you!</p>
   836 
   837 <h2><a name="changes139sr3">Geeklog 1.3.9sr3</a></h2>
   838 <p>This release addresses the following security issues:</p>
   839 
   840 <ol>
   841 <li>It was possible to submit stories anonymously even if anonymous submissions
   842     were turned off in <tt>config.php</tt> (reported by Barry Wong).<br>
   843     These stories still ended up in the submission queue, though, unless you
   844     disabled it in <tt>config.php</tt>.</li>
   845 <li>Some of the parameters in link and event submissions weren't filtered,
   846     leaving them open to potential SQL injections.</li>
   847 </ol>
   848 
   849 
   850 <h2><a name="changes139sr2">Geeklog 1.3.9sr2</a></h2>
   851 <p>This release addresses the following security issues:</p>
   852 
   853 <ol>
   854 <li>Fixed a cross site scripting vulnerability caused by using the variable
   855     <code>$topic</code> in the language files (bug #293).</li>
   856 <li>Prevent comment posts on stories or polls were comment posting has been
   857     disabled.</li>
   858 </ol>
   859 
   860 <h3>Other fixes</h3>
   861 <ul>
   862 <li>Fixed <tt>lib-plugins.php</tt> to work properly with PHP 5.</li>
   863 <li>The complete tarball also includes updated PEAR packaged that fix
   864     some of the reported email problems.</li>
   865 </ul>
   866 
   867 
   868 <h2><a name="changes139sr1">Geeklog 1.3.9sr1</a></h2>
   869 <p>This release addresses the following security issues:</p>
   870 
   871 <ol>
   872 <li>It was possible to post anonymous comments, even when anonymous comment
   873     posting had been switched off in config.php.<br>
   874     This bug was apparently exploited by spammers to send hundreds of spam
   875     posts to certain Geeklog sites.</li>
   876 <li>Added additional speed limit checks for comments and submissions.</li>
   877 <li>If none of the topics were visible for anonymous users, the site's index
   878     page may still have displayed some stories for anonymous users, depending
   879     on the stories' permissions.</li>
   880 <li>Users still got Daily Digest emails for topics from which they had been
   881     removed (bug #178).</li>
   882 <li>It was possible to subscribe to the Daily Digest for all topics, even if
   883     the user did not have access to certain topics.</li>
   884 <li>Comments to stories were sometimes listed in a user's profile, even if the
   885     user viewing the profile didn't have permissions to access the story the
   886     comments belonged to.</li>
   887 </ol>
   888 
   889 <h3>Other fixes</h3>
   890 <ul>
   891 <li>Fixed an SQL error in <code>COM_showTopics</code> if users excluded topics
   892     from their preferences.</li>
   893 <li>Fixed sporadic "Duplicate entry '...' for key 1." messages in error.log,
   894     caused by the handling of pseudo-session ids for anonymous users.</li>
   895 <li>Fixed incorrect author names in Daily Digest (bug #207).</li>
   896 <li>The <code>plugin_profileblocksedit_<i>plugin-name</i></code> Plugin API
   897     function wasn't working due to a missing piece of code in
   898     usersettings.php.</li>
   899 <li><code>COM_extractLinks</code> will now ignore anchor tags that do not
   900     contain "<code>href</code>" (bug #183).</li>
   901 </ul>
   902 
   903 
   904 <h2><a name="changes139">Geeklog 1.3.9</a></h2>
   905 
   906 <h3>New Features</h3>
   907 
   908 <ul>
   909 <li>Geeklog now uses PEAR::Mail to send all emails. This gives you the option
   910     to send emails via PHP's built-in mail() function (as before), via
   911     sendmail or via SMTP.</li>
   912 <li>There is a new admin option called Content Syndication that lets you
   913     create and configure (RSS) feeds. In addition to the standard feed
   914     containing all the new stories, you can now create feeds per topic, for
   915     upcoming events, and for links.<br>
   916     This feature is extensible in that plugins can provide additional feeds.
   917     It is also possible to provide feeds in formats other than RSS 0.91 by
   918     providing additional feed classes.</li>
   919 <li>Admins can change the block order easily from the list of blocks now.</li>
   920 <li>There is an alternative interface to adding users to groups (requires
   921     JavaScript).</li>
   922 <li>Users in the Group Admin group can now only assign other users to groups
   923     of which they themselves are a member.</li>
   924 <li>Image upload can now also use the GD library to scale images.</li>
   925 <li>Comments now use templates.</li>
   926 <li>To accomodate strict webhosts who don't allow file uploads to the standard
   927     image directory, you can now set a new configuration variable,
   928     <code>$_CONF['path_images']</code> to point to a directory outside of your
   929     webtree where article images and user profile pictures will be saved.</li>
   930 <li>Geeklog now supports URL rewriting for story URLs, i.e. you can have URLs
   931     like <tt>http://www.geeklog.net/article.php/20031229225326631</tt> which
   932     are known to be picked up by Google.</li>
   933 <li>Plugins can add their own section to Geeklog's What's New block.</li>
   934 <li>All URL fields can now hold up to 255 characters (requires theme updates).</li>
   935 </ul>
   936 
   937 <p>Please see the <a href="theme.html#changes">themes documentation</a> for a
   938 complete list of theme changes.</p>
   939 
   940 <p>Also included is the <a href="staticpages.html">Static Pages plugin 1.4</a>,
   941 which now has, among other improvements, a second option to include PHP in
   942 static pages without having to use the PHP <code>return</code> statement.</p>
   943 
   944 
   945 <h3>Bugfixes</h3>
   946 
   947 <ul>
   948 <li>Words from a search query are now properly highlighted in comments. Also
   949     fixed a problem with highlighting when the search query contained '*'
   950     characters.</li>
   951 <li>Various fixes in the search class.</li>
   952 <li>Fixed a bug that let users register with an empty username.</li>
   953 <li>When batch-importing users, those users were all subscribed to the
   954     Daily Digest automatically (uses the $_CONF['emailstoriesperdefault']
   955     setting instead now).</li>
   956 <li>Fixed option to delete comments, which previously was only available to
   957     users in the Root group (e.g. Admin). Now those users that have story.edit
   958     permissions for the actual story can delete comments.</li>
   959 <li>Deleting a group may have left orphaned entries in the group_assignments
   960     table (this has been fixed now). When upgrading to 1.3.9, the install
   961     script will remove any orphaned entries from the database.</li>
   962 </ul>
   963 
   964 <p>There have also been a lot of changes to improve security, especially
   965 against SQL injections.</p>
   966 
   967 
   968 <h2><a name="changes138-1sr6">Geeklog 1.3.8-1sr6</a></h2>
   969 <p>This release addresses the following security issues:</p>
   970 
   971 <ol>
   972 <li>Fixed a cross site scripting vulnerability caused by using the variable
   973     <code>$topic</code> in the language files (bug #293).</li>
   974 <li>Prevent comment posts on stories or polls were comment posting has been
   975     disabled.</li>
   976 </ol>
   977 
   978 
   979 <h2><a name="changes138-1sr5">Geeklog 1.3.8-1sr5</a></h2>
   980 <p>This release addresses the following security issue:</p>
   981 
   982 <ol>
   983 <li>It was possible to post anonymous comments, even when anonymous comment
   984     posting had been switched off in config.php.<br>
   985     This bug was apparently exploited by spammers to send hundreds of spam
   986     posts to certain Geeklog sites.</li>
   987 </ol>
   988 
   989 
   990 <h2><a name="changes138-1sr4">Geeklog 1.3.8-1sr4</a></h2>
   991 <p>This release addresses the following security issues:</p>
   992 
   993 <ol>
   994 <li>It was possible for users in the Group Admin and User Admin groups to
   995     become a member of the Root group (reported by Samuel M. Stone,
   996     bug #135).</li>
   997 <li>Being admin for a certain area (e.g. Story Admin for stories) made it
   998     possible to delete all objects in that area (e.g. stories) even if the user
   999     was not supposed to have access to them, provided the id of the object was
  1000     known.</li>
  1001 <li>It was possible to delete other people's personal events if you knew the
  1002     event ID.</li>
  1003 <li>It was possible to browse through the comments of a story even if the user
  1004     did not have access to the actual story (reported by Peter Roozemaal).</li>
  1005 <li>Due to an XSS issue, it was possible to change someone's account settings
  1006     (including the password) if you got them to click on a specially crafted
  1007     link (reported by Jelmer, fix suggested by Vincent Furia).</li>
  1008 <li>The comment display suffered from the possibility of an SQL injection
  1009     (reported by Jelmer).</li>
  1010 <li>It was possible to inject Javascript code in the calendar (reported by
  1011     Jelmer).</li>
  1012 <li>It was possible to execute (but not save) Javascript code in the comment
  1013     preview (reported by Jelmer).</li>
  1014 </ol>
  1015 
  1016 
  1017 <h2><a name="changes138-1sr3">Geeklog 1.3.8-1sr3</a></h2>
  1018 <p>This release addresses the following security-related issues:</p>
  1019 
  1020 <ol>
  1021 <li>As "dr.wh0" pointed out, the category field for link submissions was not
  1022     filtered at all. Although you probably can't cause too much harm with
  1023     those 32 characters, this has now been fixed.</li>
  1024 <li>Vincent Furia found that the restrictions for the form to email users
  1025     could be circumvented and could even be used to spam users.
  1026     In addition to fixing theses issues, there is now also a speed limit
  1027     on that form (defaults to the speed limit for story submissions).</li>
  1028 <li>There was a way to post comments anonymously even when posting for
  1029     anonymous users had been disabled.</li>
  1030 <li>It was possible to post comments under someone else's username.</li>
  1031 </ol>
  1032 
  1033 
  1034 <h2><a name="changes138-1sr2">Geeklog 1.3.8-1sr2</a></h2>
  1035 
  1036 <p>Jouko Pynnonen found a way to trick the new "forgot password" feature, introduced in 1.3.8, into letting an attacker change the password for <em>any</em> account. This release addresses this issue - there were no other changes.</p>
  1037 
  1038 <p>Obviously, we strongly recommend to upgrade as soon as possible.</p>
  1039 
  1040 
  1041 <h2><a name="changes138-1sr1">Geeklog 1.3.8-1sr1</a></h2>
  1042 
  1043 <p>The purpose of this release is to address some of the security issues reported in September and early October 2003. We strongly recommend upgrading to this version.</p>
  1044 
  1045 <h3>Security issues</h3>
  1046 <ol>
  1047 <li>By including Ulf Harnhammar's <a href="http://sourceforge.net/projects/kses/" title="kses homepage">kses</a> HTML filter, this release addresses a variety of possible Javascript injection and CSS defacement issues.</li>
  1048 <li>Details of SQL errors will not be reported in the browser any more (but only in Geeklog's error.log file). This will avoid disclosing any sensitive information as part of the error message (which is so far the only problem we have found with the alleged SQL injection issues that have been reported).
  1049 </ol>
  1050 
  1051 <p>Please note that at the moment we do <strong>not</strong> recommend to use Geeklog with MySQL 4.1 (which, at the time of this writing, is in alpha state and should not be used on production sites anyway). An upcoming release of Geeklog will include more thorough filtering of SQL injections attempts, thus also fixing the problems with MySQL 4.1.</p>
  1052 
  1053 <h3>Other fixes</h3>
  1054 <ul>
  1055 <li>Fixed the auto-detection of the value for the <code>$_CONF['cookiedomain']</code> variable if the URL included a port number (such as <tt>example.com:8080</tt>). This will fix the login problems some users were reporting.</li>
  1056 <li>The full 1.3.8-1sr1 tarball also includes updated French (Canada) and Turkish language files.</li>
  1057 </ul>
  1058 
  1059 
  1060 <h2><a name="changes138-1">Geeklog 1.3.8-1</a></h2>
  1061 
  1062 <p>Geeklog 1.3.8-1 is a bugfix release over Geeklog 1.3.8. It contains a
  1063 variety of (mostly minor) bugfixes. None of those fixes are security-related.</p>
  1064 
  1065 <h3>Bugfixes</h3>
  1066 
  1067 <ul>
  1068 <li>Fixes to the new search to restore pre-1.3.8 behavior (display search form
  1069     again if no results are returned, handling of
  1070     <tt>$_CONF['searchloginrequired']</tt>, etc.). Also fixed the search by
  1071     date.</li>
  1072 <li>Fixed problems in the install script when trying to identify the MySQL
  1073     version. The install script failed silently on PHP 4.0.4 and earlier
  1074     versions.</li>
  1075 <li>Fixed a problem with the What's Related block on stories that contain
  1076     images.</li>
  1077 <li>Skip user "Anonymous" when sending out the Daily Digest.
  1078 <li>Prevent admin from changing a user's email address to one that's already
  1079     used by another user.</li>
  1080 <li>Update RSS feed and Older Stories block when deleting a story.</li>
  1081 </ul>
  1082 
  1083 <p>The full 1.3.8-1 tarball also includes new and updated language files
  1084 (see the Changelog for details).</p>
  1085 
  1086 
  1087 <h2><a name="changes138">Geeklog 1.3.8</a></h2>
  1088 
  1089 <h3>New Features</h3>
  1090 
  1091 <p>Geeklog 1.3.8 Includes the <strong>Static Pages 1.3 plugin</strong> which
  1092 replaces <em>both</em> the Static Pages 1.1 and 1.2 plugins. See the <a
  1093 href="staticpages.html">Static Pages documentation</a> for details.</p>
  1094 
  1095 <ul>
  1096   <li>The search function has been rewritten. You can now search for the
  1097     exact phrase, all the words, or any of the words from a query. Search
  1098     words are also highlighted in stories.
  1099   <li>New Privacy options: Users can decide whether they want to receive
  1100     email from other users and/or admins and whether they want to show up in
  1101     the Who's Online block.
  1102   <li>You can now get a list of all users who are in a certain group (from the
  1103     Admin's group editor).
  1104   <li>When scaling is configured for images in stories, you can now keep the
  1105     unscaled image (has to be enabled in config.php first). In that case, the
  1106     scaled-down image in the story will serve as a thumbnail and link to the
  1107     unscaled image.
  1108   <li>You can now make one topic the default topic. The topic selection in the
  1109     story submission form will then default to that topic. However, when
  1110     browsing by topic (index.php?topic=Geeklog etc.) new story submissions will
  1111     default to the current topic.
  1112   <li>You can give your users the ability to change their username and delete
  1113     their account. Both features have to be enabled in config.php.
  1114   <li>Extended Plugin API: Plugins can now display content in Geeklog's
  1115     center area, add their own information to the user profile, and add
  1116     information to the site's header (<code>&lt;head&gt;</code> section).
  1117   <li>There's a new API for custom registration forms (see
  1118     <tt>lib-custom.php</tt> for sample code).
  1119   <li>There have been quite a few theme changes in order to move most larger
  1120     portions of hard-coded HTML to template files and to give theme designers
  1121     more control over the layout. Please consult the <a
  1122     href="theme.html#changes138">themes documentation</a> for a list of changes.</li>
  1123 </ul>
  1124 
  1125 <h3>Bugfixes</h3>
  1126 
  1127 <ul>
  1128   <li>The "forgot password" function has been rewritten. Instead of resetting
  1129     your old password and sending you a new one, you will now receive an
  1130     email with a unique link in it. If you follow this link, you can enter a
  1131     new password directly. Otherwise, you can simply ignore the email and your
  1132     old password will remain valid.
  1133   <li>Topic access was not always checked properly. If Story Admins report
  1134     getting access denied messages after upgrading to 1.3.8, check your topic
  1135     permissions carefully.
  1136   <li>The poll editor let you enter one answer too many (i.e. when the max.
  1137     number of answers was set to 10 you could actually enter 11). Please check
  1138     your existing polls or you may lose the last answer if you exceeded the
  1139     max. number of answers in a poll (adjust $_CONF['maxanswers'] accordingly,
  1140     if necessary).
  1141   <li>Geeklog should install and run again on old versions of MySQL
  1142     (specifically, 3.22.xx). Please note that some of these old versions aren't
  1143     even supported by MySQL AB any more and MySQL installs older than 3.23.54
  1144     are having security issues.
  1145 </ul>
  1146 
  1147 
  1148 <h2><a name="changes137sr5">Geeklog 1.3.7sr5</a></h2>
  1149 <p>This release addresses the following security issues:</p>
  1150 
  1151 <ol>
  1152 <li>It was possible for users in the Group Admin and User Admin groups to
  1153     become a member of the Root group (reported by Samuel M. Stone,
  1154     bug #135).</li>
  1155 <li>Being admin for a certain area (e.g. Story Admin for stories) made it
  1156     possible to delete all objects in that area (e.g. stories) even if the user
  1157     was not supposed to have access to them, provided the id of the object was
  1158     known.</li>
  1159 <li>It was possible to delete other people's personal events if you knew the
  1160     event ID.</li>
  1161 <li>It was possible to browse through the comments of a story even if the user
  1162     did not have access to the actual story (reported by Peter Roozemaal).</li>
  1163 <li>Due to an XSS issue, it was possible to change someone's account settings
  1164     (including the password) if you got them to click on a specially crafted
  1165     link (reported by Jelmer, fix suggested by Vincent Furia).</li>
  1166 <li>The comment display suffered from the possibility of an SQL injection
  1167     (reported by Jelmer).</li>
  1168 <li>It was possible to inject Javascript code in the calendar (reported by
  1169     Jelmer).</li>
  1170 <li>It was possible to execute (but not save) Javascript code in the comment
  1171     preview (reported by Jelmer).</li>
  1172 </ol>
  1173 
  1174 
  1175 <h2><a name="changes137sr4">Geeklog 1.3.7sr4</a></h2>
  1176 <p>This release addresses the following security-related issues:</p>
  1177 
  1178 <ol>
  1179 <li>As "dr.wh0" pointed out, the category field for link submissions was not
  1180     filtered at all. Although you probably can't cause too much harm with
  1181     those 32 characters, this has now been fixed.</li>
  1182 <li>Vincent Furia found that the restrictions for the form to email users
  1183     could be circumvented and could even be used to spam users.</li>
  1184 <li>There was a way to post comments anonymously even when posting for
  1185     anonymous users had been disabled.</li>
  1186 <li>It was possible to post comments under someone else's username.</li>
  1187 </ol>
  1188 
  1189 
  1190 <h2><a name="changes137sr3">Geeklog 1.3.7sr3</a></h2>
  1191 
  1192 <p>The purpose of this release is to address some of the security issues reported in September and early October 2003. If you don't plan to upgrade to the latest version of Geeklog (1.3.8-1sr1, at the time of this writing), we strongly suggest you upgrade to at least 1.3.7sr3 instead.</p>
  1193 
  1194 <h3>Security issues</h3>
  1195 <ol>
  1196 <li>By including Ulf Harnhammar's <a href="http://sourceforge.net/projects/kses/" title="kses homepage">kses</a> HTML filter, this release addresses a variety of possible Javascript injection and CSS defacement issues.</li>
  1197 <li>Details of SQL errors will not be reported in the browser any more (but only in Geeklog's error.log file). This will avoid disclosing any sensitive information as part of the error message (which is so far the only problem we have found with the alleged SQL injection issues that have been reported).
  1198 </ol>
  1199 
  1200 <p>Please note that at the moment we do <strong>not</strong> recommend to use Geeklog with MySQL 4.1 (which, at the time of this writing, is in alpha state and should not be used on production sites anyway). An upcoming release of Geeklog will include more thorough filtering of SQL injections attempts, thus also fixing the problems with MySQL 4.1.</p>
  1201 
  1202 
  1203 <h2><a name="changes137sr2">Geeklog 1.3.7sr2</a></h2>
  1204 
  1205 <h3>Security issues</h3>
  1206 
  1207 <p>The purpose of this release is to fix the following security issues.
  1208 All users are <em>strongly</em> encouraged to upgrade to this version ASAP.</p>
  1209 <ol>
  1210 <li>It was possible to obtain valid session ids for every account on a Geeklog
  1211     site, including the Admin account (reported by SCAN Associates).</li>
  1212 <li>Using Internet Explorer, it was possible to upload an image with embedded
  1213     PHP code and execute it (reported by SCAN Associates).</li>
  1214 <li>Story permissions could override topic permissions, resulting in the display
  1215     of stories to users who shouldn't have access to them (reported by Andrew
  1216     Lawlor). This was already fixed with the new <tt>index.php</tt>, released
  1217     2003-05-15.</li>
  1218 <li>Added a warning in <tt>config.php</tt> that adding any of the following
  1219     tags to the list of allowable HTML can make the site vulnerable to
  1220     scripting attacks:<br>
  1221     <code>&lt;img&gt; &lt;span&gt; &lt;marquee&gt; &lt;script&gt;
  1222           &lt;embed&gt; &lt;object&gt; &lt;iframe&gt;</code><br>
  1223     (pointed out by Joat Dede).</li>
  1224 </ol>
  1225 
  1226 <p>This update also includes fixes for the notorious "permission denied"
  1227 error messages that some users would get in the Admin area (e.g. when trying
  1228 to save a story and being "only" a user with Story Admin permissions).</p>
  1229 
  1230 <p>The full 1.3.7sr2 tarball also includes various new and updated language
  1231 files (see the Changelog for details).</p>
  1232 
  1233 
  1234 <h2><a name="changes137sr1">Geeklog 1.3.7sr1</a></h2>
  1235 
  1236 <h3>Security issues</h3>
  1237 
  1238 <p>The main purpose of this release is to fix the following security issues.
  1239 All users are strongly recommended to upgrade to this version.</p>
  1240 <ol>
  1241 <li>Javascript code could be injected in the homepage field of a user's profile (reported by Jin Yean Tan).</li>
  1242 <li>Javascript code could be injected in certain URLs to be used in a cross-site scripting attack (reported by Jin Yean Tan).</li>
  1243 <li>Comments could be deleted by anybody if they knew the comment id (which is not normally visible).</li>
  1244 <li>A StoryAdmin could manipulate stories even if s/he did not have access to them (e.g. when s/he was not a member of a certain group). The same applied to Admins for events, links, polls, topics, and blocks (reported by Kobaz).</li>
  1245 </ol>
  1246 
  1247 <h3>Other Bugfixes</h3>
  1248 
  1249 <ul>
  1250 <li>Fixed possible causes for endless loops with the redirect in index.php: No redirect will be done if $HTTP_SERVER_VARS['HTTP_HOST'] is not set. Also, the comparison of the configured and actual server name is not case-sensitive any more.</li>
  1251 <li>Fixed image resizing when using ImageMagick.</li>
  1252 <li>The new user notification email (introduced in Geeklog 1.3.7) was always
  1253  sent out, even if 'user' was not listed in $_CONF['notification'].
  1254 <li>The Admin menu will now be displayed for users who have Admin access to plugins only, but not to one of the core Admin features.</li>
  1255 <li>The default for the daily digest is now back to "off", i.e. new users will not receive it automatically. To enable the daily digest for new users again, set $_CONF['emailstoriesperdefault'] = 1 in config.php.</li>
  1256 </ul>
  1257 
  1258 <p>Documentation and hard-coded links (version check, link to Geeklog in a site's footer) have been updated to point to <a href="http://www.geeklog.net/">www.geeklog.net</a>.</p>
  1259 
  1260 
  1261 <h2><a name="changes137">Geeklog 1.3.7</a></h2>
  1262 
  1263 <h3>New Features</h3>
  1264 
  1265 <ul>
  1266   <li>A notification email can now be sent when a new story, link, or event
  1267     has been submitted or a new user has registered with the site (see the
  1268     <a href="config.html#submission">submission settings</a> for details).<br>
  1269     Please note that this feature doesn't tie in with Geeklog's security
  1270     features - it's really more of a hack, since many people asked for this
  1271     functionality.</li>
  1272   <li>Following the "X stories in last 24 hours" link in the What's New block
  1273     will now display just those new stories.</li>
  1274   <li>User photos are now resized, just like images in stories (if the use
  1275     of an image library is configured). The max. dimensions for user photos
  1276     can be set with a separate set of config variables in
  1277     <tt>config.php</tt>.</li>
  1278   <li>The plugin menu now lists all plugins which exist in the file system
  1279     but haven't been installed yet. It also provides a link to the install
  1280     script of those plugins for easy installation.</li>
  1281   <li>Several new config variables have been added to config.php (notification,
  1282     showfirstasfeatured, dateonly, timeonly, skip_preview, upcomingeventsrange,
  1283     emailstoryloginrequired, hideemailicon, hideprintericon, hidenewstories,
  1284     hidenewcomments, hidenewlinks, max_photo_width, max_photo_height,
  1285     max_photo_size).  Please see the <a
  1286     href="config.html">config documentation</a> for details.</li>
  1287   <li>Theme changes: Please consult the <a href="theme.html#changes137">themes
  1288     documentation</a> for a list of changes.</li>
  1289 </ul>
  1290 
  1291 
  1292 <h3>Bugfixes</h3>
  1293 
  1294 <ul>
  1295   <li>Added sanity checks in the Admin story editor to prevent the loss of all
  1296     stories when using an incomplete language file (or when manipulating the
  1297     URL).</li>
  1298   <li>Fixed a nasty bug in lib-security.php that let any user with UserAdmin
  1299     permissions change the Root user's password, thus effectively becoming
  1300     root.</li>
  1301   <li>Fixed problems with blocks disappearing when they were set to
  1302     "homeonly".</li>
  1303   <li>Fixed problems with multiple [code] ... [/code] sections in stories
  1304     and comments.</li>
  1305   <li>Fixed double line spacing in [code] sections and HTML-formatted comments
  1306     on PHP 4.2.0 and up.</li>
  1307   <li>Fixed problems with slashes and HTML entities in emails sent by
  1308     Geeklog.</li>
  1309   <li>Fixes and improvements to the plugin API.</li>
  1310 </ul>
  1311 
  1312 <p><strong>Contributors:</strong> Blaine Lang, Vincent Furia, and Kenn Osborne
  1313 have contributed to this release. Thank you!</p>
  1314 
  1315 <h3><a name="addindex">Speeding up Geeklog (a bit)</a></h3>
  1316 
  1317 <p>If you're upgrading from 1.3.6 or older versions, you may want to run the
  1318 script called <tt>addindex.php</tt> that you will find in the <tt>install</tt>
  1319 directory. This script adds index fields to some of Geeklog's database tables
  1320 which should improve overall access times a bit.</p>
  1321 
  1322 <p>This has been implemented as a separate script (and not as part of the
  1323 upgrade process of the install script) since it may take some time to run,
  1324 depending on how many users / stories / etc. you have in your database. Some
  1325 people may even run into timeouts, e.g. when their hosting service limits the
  1326 execution time of PHP scripts. If that happens to you - <strong>Don't
  1327 Panic</strong>. Simply run the script again (and again and ...) until it
  1328 reports that it didn't add any fields to any tables.</p>
  1329 
  1330 <p>Please note that you do <em>not</em> need to run this script if you're doing
  1331 a fresh install of Geeklog 1.3.7. A database created during a fresh install
  1332 already has the new index fields.</p>
  1333 
  1334 
  1335 <h2><a name="changes136">Geeklog 1.3.6</a></h2>
  1336 
  1337 <h3>New Features</h3>
  1338 
  1339 <ul>
  1340   <li>Images in articles can now be resized automatically during upload
  1341     (provided you have either ImageMagick or netpbm installed). See the
  1342     <a href="config.html#image">configuration description</a> for details.</li>
  1343   <li>The contents of a static page entitled "Frontpage" will be displayed
  1344     before the first story on the front page of a Geeklog site. If the static
  1345     page additionally carries the label "nonews", then it will completely
  1346     replace the news on the front page.</li>
  1347   <li>User submission queue: When activated (in <tt><a
  1348     href="config.html#submission">config.php</a></tt>), new users will need to
  1349     be approved by an admin before they receive their password.</li>
  1350   <li>The submission queues can be switched off separately, either completely
  1351     (in <tt><a href="config.html#submission">config.php</a></tt>) or only for
  1352     certain groups of users (by using the new features story.submit,
  1353     links.submit, and event.submit).</li>
  1354   <li>When posting source code (e.g. PHP, HTML, ...), you can now use the
  1355     [code] ... [/code] pseudo tags to enclose those portions of your posting
  1356     that should be reproduced verbatim.</li>
  1357   <li>The links section now uses a categorized and paged display (can be
  1358     <a href="config.html#links">switched off</a> separately and even back to the
  1359     pre-1.3.6 style listing).</li>
  1360   <li>Anonymous users can now be <a href="config.html#login">blocked</a> from
  1361     almost every part of the site (e.g. links section, site stats, ...), if
  1362     needed.</li>
  1363   <li>A Geeklog site can now be disabled easily (e.g. for maintenance) by
  1364     setting a flag in <tt><a href="config.html#site">config.php</a></tt>.</li>
  1365   <li>Theme changes: Please consult the <a href="theme.html#changes136">themes
  1366     documentation</a> for a list of changes.</li>
  1367 </ul>
  1368 
  1369 <h3>Bugfixes</h3>
  1370 
  1371 <ul>
  1372   <li>Several fixes have been made to ensure that permissions are taken into
  1373     account properly (e.g. not revealing titles of stories that the user has no
  1374     access to).</li>
  1375   <li>Several fixes have been made to make sure that Geeklog can now be
  1376     properly localized (provided you have a language file that is up to date
  1377     and have chosen the proper <a href="config.html#locale">locale settings</a>
  1378     for your country and language).</li>
  1379   <li>The variable $_CONF['site_admin_url'] is now used properly so that you
  1380     can rename Geeklog's <tt>admin</tt> directory if needed.</li>
  1381   <li>New RDF parser will now import most (if not all) RDF news feeds
  1382     properly</li>
  1383 </ul>
  1384 
  1385 <h3>Notes</h3>
  1386 
  1387 <ul>
  1388   <li>Since there are a lot of new variables in <tt>config.php</tt>, it is
  1389     recommended you start with a fresh copy of that file instead of copying
  1390     over your old <tt>config.php</tt> from your previous installation.</li>
  1391   <li>Please note that currently only the English, German, Italian, Polish,
  1392     and Japanese language files are up to date. Using one of the other
  1393     language files may result in your Geeklog site not working properly.</li>
  1394 </ul>
  1395 
  1396 <p><strong>Contributors:</strong> Gene Wood, Blaine Lang, Tom Willet, and
  1397 Roger Webster have contributed to this release. Thank you!</p>
  1398 
  1399 <div class="footer">
  1400     <a href="http://wiki.geeklog.net">The Geeklog Documentation Project</a><br>
  1401     All trademarks and copyrights on this page are owned by their respective owners. Geeklog is copyleft.
  1402 </div>
  1403 
  1404 </body>
  1405 </html>