版本 1.5.11 比我们最初计划的时间要长一些才发布。主要原因是一个针对问题编号 15736 的非常大的补丁。
这个问题介于低级安全修复和“最佳实践”修复之间。我们发现布局中有许多地方在输出时没有对某些值进行“转义”。
对于那些不熟悉这个概念的人来说,“转义”是指使用 PHP 的 “htmlspecialchars” 或 “htmlentities” 命令将诸如引号转换为 """,与号(&)转换为 "&amp;" 以及小于或大于符号(<,>)转换为 "&lt;" 和 "&gt;"。在输出时转义某些值可以使您的 HTML 代码保持有效,并且在某些情况下,可以保护您免受安全攻击。
在审查这个问题的代码时,我们发现像版块标题、分类标题、作者别名和类后缀这样的值在布局中显示时并没有一致地被转义。因此我们决定修复所有布局文件中的这个问题。结果是产生了一个在超过 90 个文件中更改了 445 行代码的补丁。您可以想象,测试这个补丁相当耗时,但我们希望结果是更健壮、更安全的 Joomla!。
受影响的文件几乎包括了 Beez 和 JA_Purity 模板的所有覆盖文件。例如,包括像 "templates/beez/html/com_content/category/blog_item.php" 这样的文件。如果您遵循推荐的最佳实践,您不会直接修改这些文件并使用它们。相反,您可能会制作 Beez 模板的副本,然后在新模板中修改覆盖文件。
如果您遵循了这个建议,那么这次升级不会直接影响到您的覆盖文件。但是,您应该审查我们对核心布局所做的更改,并对您的覆盖文件进行类似的更改。
然而,如果您在"templates/beez/html"或"templates/ja_purity/html"文件夹中修改了任何覆盖文件,这些文件在版本升级过程中很可能会被覆盖。因此,在安装升级之前,您需要备份这些文件,然后在升级后恢复它们。在您恢复修改后的文件之后,您可能需要检查我们在核心文件中做出的更改,并将它们添加到您的修改文件中。或者,您可以考虑复制核心模板(例如,"my_beez"),并在您的站点中使用副本。这样,将来您就不必担心这种情况了。
版本1.5.11包含了一些其他低级别安全修复以及许多有用的错误修复。由于1.5版本现在非常稳定,这些修复通常比早期版本中的一些修复更为细微。尽管如此,我仍然鼓励您升级到最好的Joomla!版本。