我知道开源并不一定会使程序比封闭源更安全/更安全(让我们假设这种中立性,以防止这个帖子出现火焰)。事实是:由于源代码是开放的,每个人都知道您的默认网址,默认管理员登录等。
我在我的客户的一些项目中使用Wordpress和Joomla,我总是尝试创建某种额外的安全性。不包括始终将文件更新到最新版本,在这种情况下,您通常采取什么措施来增加安全性?我的一些想法:
我总是在适用时更改“admin”名称;
我想明确说明我正在使用哪种技术,但既然我想推广cms(我认为这是我应该做的最小的),我只是不说确切的版本所以攻击者不知道他们可以攻击哪些确切的漏洞(wordpress会自动在html中创建一个meta标签,例如“Wordpress 2.8.4”);
在目录中设置正确的权限,并在我的服务器中设置每天0h设置755的bash脚本到我在白天可能已更改为775的目录并忘记返回;
如果适用,我将apache配置设置为限制ips。
我还应该尝试做些什么?你通常会对你的装置做什么“开箱即用”的解决方案?
答案 0 :(得分:3)
如果你是超级偏执者,那就是在沙箱中设置应用程序并将apache代理服务器放到它上面。但是,除非你有很多敏感数据和/或真正偏执狂和/或之前已被闯入,否则这几乎是过度杀戮。
如果应用程序允许它更改管理路径通常也是一个好主意。例如,使用搜索替换将Wordpresses默认管理员从/ wp-admin更改为其他内容(例如/ my-admin)非常简单。但这并不总是可行的。
您还需要彻底检查可以在应用程序中自行设置的任何用户角色和权限。例如,Drupal拥有非常强大的用户访问系统。但是你需要确保你没有给任何用户访问权限
其他内容包括禁用或删除任何不是系统操作所必需的模块/扩展/插件。亲自检查所有MySQL用户,确保没有人可以远程连接到服务器。您还可以为服务器上的所有用户设置chroot jail(当然除了root),这样他们就会被锁定在一个目录中,并且无法摆脱它。
答案 1 :(得分:3)
使用类似mod_security
或mod_evasive
Apache的模块也是一个想法 - 我认为它们需要一些配置;你应该测试你的网站在生产服务器上使用之前仍然可以正常工作。
由于它们是Apache的模块,它还要求您可以安装新的Apache模块 - 这意味着您必须是服务器的管理员。
在纯PHP级别上,有一个名为PHP-IDS的工具;引用其网站:
PHPIDS(PHP入侵检测 系统)是一个简单易用,好 结构化,快速和最先进的 基于PHP的Web的安全层 应用。 IDS既不剥离, 消毒或过滤任何恶意软件 输入,它只是识别何时 攻击者试图打破你的网站和 完全按照你想要的方式做出反应 至。基于一套批准和 经过严格测试的过滤器可以规 给出数值影响等级 这使得很容易决定什么 应该采取哪种行动 黑客攻击。这可能包括 简单的日志记录发送出去 紧急邮件发展 团队,显示警告信息 攻击者甚至结束用户的攻击 会话。
我想你可以在你正在使用的CMS前面“插入”它,通过在其入口点添加几行 - 如果有一个可以识别的公共入口点,或者某个包含一次的文件每页的开头。
有一个“如何在我的应用程序中使用它?” FAQ中的条目。
而且,就像你说的那样,保护你的服务器很好:例如,没有远程SQL访问;检查系统上每个用户的证明;让您的软件保持最新状态......
答案 2 :(得分:3)
请参阅wordpress.org codex上的Hardening Wordpress和Hardening Wordpress with htaccess。
在Wordpress中,把这个
function remove_header_info() {
remove_action('wp_head', 'wp_generator');
}
add_action('init', 'remove_header_info');
在主题的functions.php文件中删除WP版本,由header.php中的wp_head输出。
答案 3 :(得分:2)
在Joomla中,我会将数据库前缀更改为与jos_不同的内容。
答案 4 :(得分:0)
我找到了两个有趣的链接,可以添加有关Wordpress的信息。
第一个来自Wordpress blog itself,表示您应始终使用所有安全修复程序更新您的安装。
第二个是来自许多步骤(从配置到pugins)的great list,我认为这些步骤非常好,并且有很多有趣的建议(它分为两部分)。