【发布时间】:2011-10-09 07:57:18
【问题描述】:
我使用基于 LAMP 的网站,尤其是 Drupal,我想知道是否有人知道一个好的安全检查表来帮助审核新的和现有的商业网站的安全漏洞?
干杯。
【问题讨论】:
-
programmers.stackexchange.com/questions/46716/… 这应该是一个好的开始。
标签: php security drupal e-commerce lamp
我使用基于 LAMP 的网站,尤其是 Drupal,我想知道是否有人知道一个好的安全检查表来帮助审核新的和现有的商业网站的安全漏洞?
干杯。
【问题讨论】:
标签: php security drupal e-commerce lamp
Web 应用程序安全性的最佳资源无疑是OWASP Top 10。 OWASP 是一个不以营利为目的、与技术无关的组织,致力于提高 Web 应用程序的安全性。他们制作了一份名为“十大最关键的 Web 应用程序安全风险”的文档,该文档非常易于使用,并且应该涵盖您需要了解的电子商务应用程序的各个角度。
我建议仔细阅读前 10 名中的每一个(PDF 版本非常方便 - 每页 1 个风险),了解风险和影响,然后确保您知道如何在 PHP 中适当地缓解这种情况。祝你好运!
【讨论】:
数据库日志记录行限制(admin/settings/logging/dblog)
我发现默认的 1000 行限制可以快速换行,在您最需要的时候让您没有重要的调试信息。平均行长度通常在 1kB 左右,因此即使将其增加到 100,000 行,您仍然可以得到一个易于管理的看门狗表。
用户注册设置(管理员/用户/设置)
访客可以创建帐户且无需管理员批准的默认值很容易被忽略,并且通常是不受欢迎的。
禁用开发模块 admin/build/modules
不仅开发本身,而且其他其他实用程序(例如 masquerade、trace 或 coder)可能已安装,而您在生产站点上不需要这些实用程序。启用额外的模块可能会影响您网站的性能,如果配置错误,甚至会造成安全漏洞。
设置维护主题 (settings.php)
默认情况下,Drupal 的站点离线页面使用 Minnelli 主题。切换这是一个很好的增强功能,以防您需要使用维护模式,或者在您遇到计划外停机的不幸事件中。在大多数情况下,您网站的主题可以正常工作;只需添加 $conf['maintenance_theme'] = 'mytheme';到 settings.php。您可能还需要在主题中添加maintenance-page.tpl.php;如果您使用 Zen,这已经为您完成了。
确认电子邮件设置
通常,占位符电子邮件地址将在开发过程中填写,并应在部署前更新。如果可能,我会尝试从一开始就从正确的地址开始,但有时您直到项目生命的后期才拥有这些信息。除了 Drupal 的全局 site_mail 之外,地址还可以存储在多个位置:管理员用户的帐户、联系表单、网络表单、ubercart、触发器或 CiviCRM 设置。
对于 Zen 用户 - 禁用主题注册表重建(admin/build/themes)
如果您使用 Zen 开发主题,请不要忘记在每个页面上关闭重建主题注册表。这是一个巨大的性能损失。
错误报告(管理员/设置/错误报告)
在生产站点上,最好通过选择将错误写入日志来抑制屏幕上的错误报告。
性能设置(管理员/设置/性能)
最佳性能设置取决于您的网站。此外,在没有彻底测试您网站的功能之前,不要在最后一刻更改缓存设置。理想情况下,我喜欢在项目完成大约 2/3 的过程中完成缓存设置,以便使用与生产相匹配的缓存设置来执行开发和测试的最后阶段。
重定向到/从 'www.*' (.htaccess)
Drupal 的 .htaccess 文件包含一个示例 RewriteRule 显示如何从 example.com 重定向到 www.example.com 或反之亦然。如果您的站点使用 SSL,则强制执行单个域名是必不可少的,即使使用纯 HTTP,我也喜欢单个 URL 的一致性。 此外,由于 RewriteCond 声明特定于特定主机,因此您可以将多个域添加到同一个 .htaccess 文件中,用于多站点安装或多个测试/生产主机名。
检查代理设置
如果您的生产服务器使用代理或负载平衡器,Drupal 需要一些额外的配置来准确记录远程 IP。这会影响错误日志记录和某些模块,例如 Mollom。
$conf['reverse_proxy'] = TRUE; $conf['reverse_proxy_addresses'] = 数组( '10.10.20.100', '10.10.30.100', );
【讨论】: