·您现在的位置: 云翼网络 >> 文章中心 >> 网站建设 >> 网站建设问答 >> 七点建议 帮你提高Joomla!的网站安全性能

七点建议 帮你提高Joomla!的网站安全性能

作者:佚名      网站建设问答编辑:admin      更新时间:2022-07-23

修改默认的 jos_ 数据表前缀

以管理员身份登录到 Joomla! 后台;

进入“全局设置”(global configuration),找到“数据库”标签页,修改原来的数据表前缀 jos_ 为新的前缀(例如:fdasqw_),然后点击“保存”;

通过 phpMyAdmin 访问你的网站数据库;

点击“导出”(export)标签页,所有参数保持默认值,直接点击“执行”按钮。导出过程可能需要一点时间;

导出完成后,打开得到的 SQL 文件,选择全部代码并复制,然后粘贴到文本编辑器(例如:Notepad++);

从 phpMyAdmin 中选择你数据库中的全部数据表,删除它们;

在 Notepad++ 中,利用“查找替换”功能,将全部 jos_ 字串替换为刚才设置的新前缀(fdasqw_);

完成替换后,复制全部代码。进入 phpMyAdmin,点击 SQL 标签页,将这些代码粘贴到输入框,然后点击“执行”按钮。

去掉第三方扩展的名称及版本号

大多数安全漏洞只存在于特定扩展的特定版本中。因此,为了防止黑客根据扩展名称及版本号来迅速寻找“肉机”,就有必要去掉网站前台显示的第三方扩展的名称及版本号。

有些开发人员会在后台参数中留下“是否显示作者版权链接”的选项,对于这些扩展,我们选择“否”即可;大多数第三方扩展的作者都会在前台留下一个版权链接,里面含有该扩展的名称和版本号。去掉这些 hardcod 方式的版权链接的方法是:

假设有一个 com_extension 扩展,将 /components/com_extension 目录复制到 PC 上,用 Notepad++ 打开其中一个 php 文件,然后使用“在多个文件中搜索”功能(勾选“搜索子目录”),搜索前台所显示的那个字串,找到之后直接从源代码中删除即可。

使用 SEF 友好网址组件

SEF 友好网址不仅有利于网站的搜索引擎优化(SEO),也有利于提高安全防护作用。原因是:如果不启用 SEF,则 Joomla! 默认的页面 URL 中会含有第三方扩展的名称,如网址中 option=com_contact 这部分,这里 com_contact 就是“联系人管理”组件的名称。

黑客当然不是通过肉眼来寻找 URL 里面的扩展名称,他们会使用 Google 搜索技巧中的 inurl 方法来快速寻找。

推荐使用 Artio JoomSEF,或者 sh404SEF,或者其它某个 SEF 组件来对 Joomla! 默认的动态网址进行静态化重写,一方面隐藏了扩展名称,另一方面也增强了 SEO 效果。

使用最新版本的 Joomla! 核心及扩展

经常了解一下你正在使用的 Joomla! 核心和第三方扩展是否有了新版本。如果有新版,就尽快升级。一般来说,新版本总是能够修复旧版的安全漏洞或功能 bug。

给目录及文件设置正确的权限(CHMOD)

只有当某个脚本会写入到目录或文件时,才将该目录或文件的权限设置为 777 或 707。其它所有文件和目录的权限都应该设置如下:

PHP 文件:644

配置文件:666

其它目录:755

Joomla之门提示:这里所说的 CHMOD 权限系统是 Linux/*nix 服务器平台特有的功能,如果你使用的是 Windows 平台服务器,就没有这个功能。强烈建议将 Joomla! 运行在 Linux 服务器上。

及时删除残留文件

有时候你可能安装了某个扩展之后不久又不喜欢它了,多数用户这时会进行“取消发布”操作,而不是“卸载”。如果是“取消发布”,则该扩展的文件仍然存放在你的网站空间,如果该扩展的 PHP 文件正好存在一个安全漏洞,就很可能被黑客利用。因此,当你不再需要某个第三方扩展时,立即将它彻底删除,而不要“取消发布”。

Joomla!之门提示:当你通过 Joomla!后台卸载某些组件后,其数据表或许并未删除。如果你确认不再需要该组件,建议通过 phpMyAdmin 将其数据表也彻底删除,以免某个设计不严谨的数据表遭到 SQL Injection 劫持。

修改 .htaccess 文件

用文本编辑器 Notepad++ 打开你 Joomla 网站根目录下的 .htaccess 文件,添加下面的代码进去:

以下为引用的内容:
########## Begin - Rewrite rules to block out some common exploits#
# Block out any script trying to set a mosConfig value through the URL
RewriteCond %{QUERY_STRING} mosConfig_[a-zA-Z_]{1,21}(=|%3D) [OR]
# Block out any script trying to base64_encode crap to send via URL
RewriteCond %{QUERY_STRING} base64_encode.*(.*) [OR]
# Block out any script that includes a < script> tag in URL
RewriteCond %{QUERY_STRING} (<|%3C).*script.*(>|%3E) [NC,OR]
# Block out any script trying to set a PHP GLOBALS variable via URL
RewriteCond %{QUERY_STRING} GLOBALS(=|[|%[0-9A-Z]{0,2}) [OR]
# Block out any script trying to modify a _REQUEST variable via URL
RewriteCond %{QUERY_STRING} _REQUEST(=|[|%[0-9A-Z]{0,2}) [OR]
# Block out any script that tries to set CONFIG_EXT (com_extcal2 issue)
RewriteCond %{QUERY_STRING} CONFIG_EXT([|%20|%5B).*= [NC,OR]
# Block out any script that tries to set sbp or sb_authorname via URL (simpleboard)
RewriteCond %{QUERY_STRING} sbp(=|%20|%3D) [OR]
RewriteCond %{QUERY_STRING} sb_authorname(=|%20|%3D)
# Send all blocked request to homepage with 403 Forbidden error!
RewriteRule ^(.*)$ index.php [F,L]
#
########## End - Rewrite rules to block out some common exploits

(原文地址)