【问题标题】:Hiding the word "joomla" from a script in contact form从联系人表单中的脚本中隐藏单词“joomla”
【发布时间】:2014-12-29 19:58:06
【问题描述】:

每当我在我的 Joomla! 中创建联系表格时! 3.3.6,一些脚本出现在页面的HTML代码中,其中包含许多单词Joomla。由于某些安全问题,我想更改那些 Joomla 字词并用另一个字词(即 Foo)替换它们。我想知道我是否能够这样做以及如何这样做。

那个脚本是:

<script>(function(){var strings={"JLIB_FORM_FIELD_INVALID":"\u0641\u06cc\u0644\u062f \u0646\u0627\u0645\u0639\u062a\u0628\u0631:&#160"};if(typeof Joomla=='undefined'){Joomla={};Joomla.JText=strings;}
else{Joomla.JText.load(strings);}})();</script>

我不知道是插件还是扩展创建了它。

谢谢 问候

【问题讨论】:

  • 嗨!一段时间以来,Joomla 拥有自己的 StackExchange 站点:joomla.stackexchange.com。我建议你在那里问你未来的joomla相关问题。

标签: joomla3.0


【解决方案1】:

此脚本似乎正在翻译表单所需的一些文本,以便在其 javascript 中使用,例如验证消息。它使用 JText 的 javascript 版本来执行此操作,它是核心 Joomla 的一部分。有一些关于它如何工作的信息here。奇怪的是,Joomla 官方文档中似乎没有关于它的信息。

它调用的主要 JText 函数出现在这里:media/system/js/core.js

我确信可以编写一个插件来在页面呈现之前删除此脚本,然后用您自己的脚本翻译任何未翻译的文本。但是,我不确定这样做有什么安全好处,所以这似乎是在浪费时间。

最终,嗅探网站内容的人更有可能通过直接访问 media/system/js/core.js 等位置来查看核心文件是否存在,而不是扫描代码中的单词“Joomla”——这会引发很多误报(任何只提到 Joomla 的网站)和否定(任何没有表格的页面)。它也没有透露 Joomla 的版本,这是黑客更有可能获取的信息。

【讨论】:

    【解决方案2】:

    我认为您必须在整个目录中搜索脚本(即通过 Notepad++)。它必须是包含一些内联脚本的联系表单的插件。 你也使用任何特殊的第三方插件吗?这可能是它的来源。

    PS:我也有一些类似的经历,我不知道我是如何摆脱这些词的,但和你一样,我想这样做是为了隐藏我使用 joomla 来确保安全的事实。

    【讨论】:

      【解决方案3】:

      实际上是 Joomla 添加了这个,来自文件:Joomlainstall/libraries/joomla/document/html/renderer/head.php

      并从以下位置全局加载:

      Joomlainstall/libraries/cms/html/formbehavior.php

      例如,开发者使用函数 JText 来宣传该代码:

      JText::_('COM_CONTACT_EMAIL_FORM')

      在我的例子中,是插件 ContactUs Form 添加了 javascript。如果不使用 JText,则不会加载它。如果我禁用了插件,则不会加载 javascript。如果您启用了该插件,我可以尝试其他联系表格吗?

      出于安全考虑,开发人员在 Joomla 之外进行的编程肯定是糟糕的。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2012-10-01
        • 2014-02-14
        • 1970-01-01
        • 2012-08-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多