安全信息: Difference between revisions
(Created page with "<!-- BEGIN origin interlang links --> <!-- You can edit this section but do NOT remove these comments Links below will be automatically replicated on translated pages by...") Tag: 2017 source edit |
Tag: 2017 source edit |
||
| (8 intermediate revisions by 2 users not shown) | |||
| Line 1: | Line 1: | ||
<!-- BEGIN | <!-- BEGIN interlang links --> | ||
<!-- | <!-- Do NOT edit this section | ||
Links below | Links below are automatically managed by PolyglotBot | ||
You can edit links on the English source page : Security_information --> | |||
[[en:Security_information]] | [[en:Security_information]] | ||
[[fr:Informations_sécurité]] | [[fr:Informations_sécurité]] | ||
| Line 7: | Line 8: | ||
<!-- END interlang links --> | <!-- END interlang links --> | ||
[[Category: | [[Category:Admin_cn]] | ||
[[Category: | [[Category:管理]] | ||
=[[File:securite.png]] | =[[File:securite.png]] 警报= | ||
最后更新: {{REVISIONYEAR}}-{{REVISIONMONTH}}-{{REVISIONDAY}} | |||
发现了一个允许用户获取联系人列表(检索数据库中联系人的姓氏、名字和 ID)的漏洞。 已经在 {{Template:SafeVersion}} 及更高版本中修复。 | |||
注意:您还可以从 GitHub(https://github.com/Dolibarr/dolibarr/) 下载所有分支/版本的'''中间版本'''(尚未发布的维护包) | |||
=[[File:art.png]] | =[[File:art.png]] 安全特性= | ||
Dolibarr | Dolibarr 实现了多种安全功能,以匹配与安全相关的最佳实践规则。 | ||
以下是您可以找到的主要安全功能列表: | |||
''' | '''加密''' | ||
* | *数据库中保存的密码或安全密钥数据是加密之后的 <sup>[*7]</sup> <sup>[*8]</sup>。 | ||
* | *数据库技术密码可以被伪装到 [[Configuration_file|Dolibarr configuration file]] (conf.php) <sup>[*8]</sup>文件中。 | ||
* | *可以强制使用 HTTPS <sup>[*9]</sup>。 | ||
<syntaxhighlight lang="PHP"> | <syntaxhighlight lang="PHP"> | ||
| Line 44: | Line 44: | ||
0 | 0 | ||
| style="width:50%;" | | | style="width:50%;" | | ||
无强制重定向 | |||
|- | |- | ||
| Line 50: | Line 50: | ||
1 | 1 | ||
| style="width:50%;" | | | style="width:50%;" | | ||
强制重定向到 https,直到 response 中的 SCRIPT_URI 以 https 开头 | |||
|- | |- | ||
| Line 56: | Line 56: | ||
2 | 2 | ||
| style="width:50%;" | | | style="width:50%;" | | ||
强制重定向到 https,直到 response 中的 SERVER[“HTTPS”] = 'on' | |||
|- | |- | ||
| Line 62: | Line 62: | ||
https://mydomain | https://mydomain | ||
| style="width:50%;" | | | style="width:50%;" | | ||
强制重定向到 https 域名 mydomain(推荐方法) | |||
|} | |} | ||
''' | '''黑客与骇客''' | ||
* | *可使用 register_globals=on/off(强烈推荐使用off) <sup>[*2]</sup> 。 | ||
* | *可使用 PHP safe_mode=on/off (推荐使用on) <sup>[*3]</sup> 。 | ||
* | *在生产模式下可禁用任何技术信息泄漏,如调试、错误堆栈跟踪、版本信息(请参阅 [[Configuration_file|configuration file]]) <sup>[*6]</sup> 。 | ||
* | *防止 SQL 注入。受内部 WAF 保护,并通过单元测试检查数据库擒纵机制的良好。 <sup>[*2]</sup> 。 | ||
* | *防止 XSS 注入(Cross Site Scripting:跨站点脚本)。受内部 WAF 和网页 headers 保护。 <sup>[*1]</sup> 。 | ||
* | *防止 SSRF。 | ||
* | *防止 CSRF(Cross Site Request Forgery:跨站点请求伪造)。受内部 WAF 和 token 系统保护。 <sup>[*5]</sup> 。 | ||
请注意,还建议通过禁用 Apache 选项来保护您的 Web 服务器 | |||
<syntaxhighlight lang="ini"> | <syntaxhighlight lang="ini"> | ||
AcceptPathInfo Off | AcceptPathInfo Off | ||
| Line 83: | Line 83: | ||
''' | '''页面与文件访问''' | ||
* | *页面和内容受集中式入口代码保护,以检查权限(授予组或用户的每个功能模块) <sup>[*4]</sup> <sup>[*10]</sup> 。 | ||
* | *Dolibarr 保存的文件存储在与 Web 应用不同的 root 目录中(因此,不通过 Dolibarr wrapper,就无法下载) <sup>[*3]</sup> <sup>[*10]</sup> 。 注意:您必须要核实 '''document''' 目录(用于上传文件)与 '''htdocs''' 目录没有位于同一目录中,也不在 '''htdocs''' 的子目录中。您的 Web 虚拟主机必须仅指向 htdocs 目录(并且此目录可以/应该处于只读模式)。因此,如果不使用 wrapper 页面,则无法下载任何上传的文件(存储在 document 目录中)。 | ||
*Dolibarr | *Dolibarr 目录内容无法访问,即使 Apache 的选项 Indexes 没有被设置为 on(不应该忘记设置) <sup>[*3]</sup> 。 | ||
''' | '''登录保护''' | ||
* | *反暴力破解的登录页面延迟 <sup>[*7]</sup> 。目前的延迟值是固定值(在未来版本中,尝试登录时可能会呈指数级增长)。 | ||
* | *登录页面上针对机器人的图形代码(CAPTCHA)选项 <sup>[*7]</sup> 。 | ||
* | *仅限制某些 IP 对后台的访问 <sup>[*7]</sup> 。 | ||
* | *日志中不记录密码,即使在技术日志中也是如此 <sup>[*7]</sup> 。 | ||
* | *内部记录器(logger)永久保存所有Dolibarr事件,包括有关用户管理以及成功登录、失败登录或管理事件(用户、组、权限的变更)。 | ||
* | *可以在成功登录或失败登录尝试之后将日志记录输出到日志文件中(Debug Log模块必须被启用,在生产服务器上最低使用 5-LOG_NOTICE级别,在开发服务器上使用更高级别),以便您可以添加 fail2ban 规则来锁定暴力破解。您可以使用以下语法检查日志记录 : | ||
"YYYY-MM-DD HH:MM:SS (ERROR|NOTICE|INFO|DEBUG) IP functions_dolibarr::check_user_password_.* Authentication KO" | "YYYY-MM-DD HH:MM:SS (ERROR|NOTICE|INFO|DEBUG) IP functions_dolibarr::check_user_password_.* Authentication KO" | ||
要添加到服务器的 fail2ban 规则列表在后面的 '''DOS 和暴力破解率缓解(DOS and Brute force rate Mitigation)'''一章中提供。 | |||
''' | '''病毒''' | ||
* | *可以对每个上传的文件运行外部防病毒软件 <sup>[*3]</sup> 。 | ||
''' | '''安全信息中心''' | ||
* | *从版本 14 开始,您将在菜单 主页 - 管理工具 - 安全(Home - Admin tools - Security) 中找到一个安全信息中心,其显示与当前安装相关的已完成和待完成的所有安全建议。 | ||
''' | '''用于安全性的 CTI''' | ||
持续集成平台对每次修改代码运行安全单元测试和静态代码分析。 | |||
''' | '''每个版本的footprint''' | ||
我们的发布流程为每个版本提供了一个 footprint 文件(也可在线获取),以验证本地安装的所有文件。 | |||
注意:Dolibarr 符合 OpenSourceSSF 定义的 Best Practices(最佳实践) : https://bestpractices.coreinfrastructure.org/projects/5521 | |||
'''DOS | '''DOS 和暴力破解率缓解''' | ||
该项目提供了一些 fail2ban 规则的示例,以阻止登录页面、忘记密码页面和任何公共页面上的暴力尝试或滥用访问。参见 https://github.com/Dolibarr/dolibarr/tree/develop/dev/setup/fail2ban | |||
=[[File:art.png]] | =[[File:art.png]] 报告安全漏洞= | ||
* | *要报告漏洞,请参阅文件: https://github.com/Dolibarr/dolibarr/blob/develop/SECURITY.md | ||
在大多数情况下,安全报告会在几天内被处理。 | |||
---- | ---- | ||
<sup>(*X)</sup> | <sup>(*X)</sup> 此解决方案是用于解决 [http://www.owasp.org/index.php/Top_10_2007 OWASP Top Ten] 分类的漏洞(范围为 X 的)保护的一部分。 | ||
Latest revision as of 08:53, 19 February 2024
警报
最后更新: 2024-02-19
发现了一个允许用户获取联系人列表(检索数据库中联系人的姓氏、名字和 ID)的漏洞。 已经在 18.0.1 及更高版本中修复。
注意:您还可以从 GitHub(https://github.com/Dolibarr/dolibarr/) 下载所有分支/版本的中间版本(尚未发布的维护包)
安全特性
Dolibarr 实现了多种安全功能,以匹配与安全相关的最佳实践规则。
以下是您可以找到的主要安全功能列表:
加密
- 数据库中保存的密码或安全密钥数据是加密之后的 [*7] [*8]。
- 数据库技术密码可以被伪装到 Dolibarr configuration file (conf.php) [*8]文件中。
- 可以强制使用 HTTPS [*9]。
//conf/conf.php file
//example of $dolibarr_main_force_https configuration
$dolibarr_main_force_https = '1';//to force https
| Values | Description |
|---|---|
|
0 |
无强制重定向 |
|
1 |
强制重定向到 https,直到 response 中的 SCRIPT_URI 以 https 开头 |
|
2 |
强制重定向到 https,直到 response 中的 SERVER[“HTTPS”] = 'on' |
|
强制重定向到 https 域名 mydomain(推荐方法) |
黑客与骇客
- 可使用 register_globals=on/off(强烈推荐使用off) [*2] 。
- 可使用 PHP safe_mode=on/off (推荐使用on) [*3] 。
- 在生产模式下可禁用任何技术信息泄漏,如调试、错误堆栈跟踪、版本信息(请参阅 configuration file) [*6] 。
- 防止 SQL 注入。受内部 WAF 保护,并通过单元测试检查数据库擒纵机制的良好。 [*2] 。
- 防止 XSS 注入(Cross Site Scripting:跨站点脚本)。受内部 WAF 和网页 headers 保护。 [*1] 。
- 防止 SSRF。
- 防止 CSRF(Cross Site Request Forgery:跨站点请求伪造)。受内部 WAF 和 token 系统保护。 [*5] 。
请注意,还建议通过禁用 Apache 选项来保护您的 Web 服务器
AcceptPathInfo Off
页面与文件访问
- 页面和内容受集中式入口代码保护,以检查权限(授予组或用户的每个功能模块) [*4] [*10] 。
- Dolibarr 保存的文件存储在与 Web 应用不同的 root 目录中(因此,不通过 Dolibarr wrapper,就无法下载) [*3] [*10] 。 注意:您必须要核实 document 目录(用于上传文件)与 htdocs 目录没有位于同一目录中,也不在 htdocs 的子目录中。您的 Web 虚拟主机必须仅指向 htdocs 目录(并且此目录可以/应该处于只读模式)。因此,如果不使用 wrapper 页面,则无法下载任何上传的文件(存储在 document 目录中)。
- Dolibarr 目录内容无法访问,即使 Apache 的选项 Indexes 没有被设置为 on(不应该忘记设置) [*3] 。
登录保护
- 反暴力破解的登录页面延迟 [*7] 。目前的延迟值是固定值(在未来版本中,尝试登录时可能会呈指数级增长)。
- 登录页面上针对机器人的图形代码(CAPTCHA)选项 [*7] 。
- 仅限制某些 IP 对后台的访问 [*7] 。
- 日志中不记录密码,即使在技术日志中也是如此 [*7] 。
- 内部记录器(logger)永久保存所有Dolibarr事件,包括有关用户管理以及成功登录、失败登录或管理事件(用户、组、权限的变更)。
- 可以在成功登录或失败登录尝试之后将日志记录输出到日志文件中(Debug Log模块必须被启用,在生产服务器上最低使用 5-LOG_NOTICE级别,在开发服务器上使用更高级别),以便您可以添加 fail2ban 规则来锁定暴力破解。您可以使用以下语法检查日志记录 :
"YYYY-MM-DD HH:MM:SS (ERROR|NOTICE|INFO|DEBUG) IP functions_dolibarr::check_user_password_.* Authentication KO"
要添加到服务器的 fail2ban 规则列表在后面的 DOS 和暴力破解率缓解(DOS and Brute force rate Mitigation)一章中提供。
病毒
- 可以对每个上传的文件运行外部防病毒软件 [*3] 。
安全信息中心
- 从版本 14 开始,您将在菜单 主页 - 管理工具 - 安全(Home - Admin tools - Security) 中找到一个安全信息中心,其显示与当前安装相关的已完成和待完成的所有安全建议。
用于安全性的 CTI
持续集成平台对每次修改代码运行安全单元测试和静态代码分析。
每个版本的footprint
我们的发布流程为每个版本提供了一个 footprint 文件(也可在线获取),以验证本地安装的所有文件。
注意:Dolibarr 符合 OpenSourceSSF 定义的 Best Practices(最佳实践) : https://bestpractices.coreinfrastructure.org/projects/5521
DOS 和暴力破解率缓解
该项目提供了一些 fail2ban 规则的示例,以阻止登录页面、忘记密码页面和任何公共页面上的暴力尝试或滥用访问。参见 https://github.com/Dolibarr/dolibarr/tree/develop/dev/setup/fail2ban
报告安全漏洞
在大多数情况下,安全报告会在几天内被处理。
(*X) 此解决方案是用于解决 OWASP Top Ten 分类的漏洞(范围为 X 的)保护的一部分。