14个保护Magento免受在线威胁的重要提示
经营电子商务网站是具有挑战性的,一个人应该考虑采取一切措施来防止网络攻击。
电子商务正在快速发展,成千上万的独立服务器日夜工作,私人信息(包括当然是财务数据)对黑客来说是一个巨大的诱惑。电子商务网站是攻击者的理想目标,因为需要个人和付款数据才能进行销售。
Magento 在电子商务平台上运行着成千上万的网站,Astra 的最新发现显示,62%的店铺至少有一个漏洞。
在本文中,我将探讨关于 Magento 的最重要和最适时的安全建议。
通常,攻击者会破解 e-commerce 的网站:
- 利用它进行电子垃圾邮件;
- 用于网络钓鱼(试图获取密码或信用卡详细信息);
- 破坏或损害您的网站;
- 窃取他们可以利用的信息。
首先,您必须保护您的 Magento 商店,因为您应该保护客户的信息。
毫无疑问,黑客可能因某种原因(例如工业间谍)想要获取您的信息,但首要任务是不要提供客户的私人信息,包括信用卡详细信息。
如果这些数据在黑客攻击导致的情况下被盗取,它会严重损害您的声誉,并且会给您的客户带来损失。
欢迎将这些 Magento 安全规则应用到您的商店。
二因素认证
即使是最安全的密码如果能够被盗窃也是无价值的。为了增加商店的安全级别,强烈建议使用任何第二个授权因素,例如只允许从特定 IP 地址访问后台,并实施双因素认证。
为了限制后台访问,请将以下行添加到 Apache web 服务器配置的 VirtualHost 部分(请小心 – 如果将以下行添加到 .htaccess
文件中,会导致错误):
Order Deny,Allow
Deny from All
Allow from 192.168.100.182 #请务必更新为您的 IP 地址
如果您正在寻找 Magento 二因素认证解决方案,请随时查阅 Amasty extension。
更改后台 URL
这种方法更多是关于安全性的模糊性,但它可以作为对抗机器人和暴力破解攻击的附加方法。要更改后台 URL,您可以编辑 app/etc/local.xml(admin/routers/adminhtml 部分)。
我们不建议您使用 Magento 管理面板的原生界面更改默认的管理员 URL。您必须确保新的 URL 地址足够难以猜测。此外,您可能希望在此之后清除缓存。
然后,您应该检查您的新 URL,并确保旧的 URL 返回 404 错误页面。
及时更新软件
软件更新不仅提供新功能,还修复错误并消除易受攻击的漏洞。这就是为什么现在使用最新的软件版本是非常重要的。
要升级您的系统,请应用以下简洁的命令:
RHEL / CentOS
yum update
Debian / Ubuntu
apt-get update
如果您仍在使用已经不再更新的Magento 1,您应该考虑利用像Nexcess Safe Harbor这样的服务来确保您的商店的安全。
定期备份
没有人可以完全防范黑客的攻击,但有一些方法可以让您感到更安全:定期备份可以帮助您避免许多可能对您的业务产生严重影响的问题。
您应该定期保存备份副本,不要将它们保存在原始网站服务器上,并定期将备份恢复到沙盒中以检查其是否正常工作。
将备份保存在与网站服务器相同的服务器上不仅危险,因为如果服务器崩溃,您的备份应该是安全的,而且如果黑客入侵了您的服务器,他还将获得对备份副本的访问权限,这显然是不希望的。
使用复杂密码
根据SplashData的数据,123456是2013年最常见的密码之一(当然也是最不安全的之一)。
管理员密码是您的Magento商店安全的关键。它应该足够强大!简单的密码很容易被破解,所以应该使用超过十个字符,包括大小写字母和特殊字符如^$#%*,这样,即使使用最新的破解程序,也需要数年才能破解您的密码。
您可以使用LastPass密码生成器。
使用防火墙
您可以使用两种类型的防火墙来保护您的Magento商店。
WAF(Web应用程序防火墙)-保护您的在线商店免受Web安全漏洞(如SQLi、XSS、暴力破解、机器人、垃圾邮件、恶意软件、DD0S等)的攻击。您可以考虑实施基于云的防火墙,如Sucuri或Astra。
系统/网络防火墙-禁止公共访问除您的Web服务器之外的所有内容。如果您没有永久IP地址以通过防火墙访问它,请使用VPN或Port Knocking技术。
在RHEL/CentOS中,您可以在/etc/sysconfig/iptables中找到防火墙设置;对于Debian/Ubuntu,可以使用iptables-persistent(/etc/iptables-persistent/rules.v4)。
不要在其他网站上重复使用密码。
此Magento安全问题适用于您拥有的所有受密码保护的信息。根据passwordresearch.com的报告,超过15%的用户在许多服务中使用相同的密码。
很少有人知道,为几个登录应用相同的密码实际上会增加一次性失去所有帐户的风险。
再次强调:所有密码必须是唯一的,没有其他办法。请小心,把这篇文章放一边一段时间,并在必要时更改密码。否则,您由于粗心大意而面临受伤的风险。
定期更改密码
您的密码不应该是固定的。我们强烈建议至少每六个月更改一次密码。
即使密码被盗(即使黑客没有使用它),定期更改密码也会使早期泄漏的信息变得毫无价值。还要确保所有使用该网站的客户的密码也进行更改。
不要将密码存储在您的计算机上
大部分木马软件会窃取您保存的密码。您应该小心使用浏览器和FTP客户端,因为密码经常通过这些应用程序被窃取。
您应该永远不要在没有使用主密码(一种加密其余密码并保存访问详细信息的密码)的情况下保存密码。忽视这个建议很容易导致数据泄漏。
您可以尝试使用password manager。
注意错误或可疑活动
定期进行安全审查,以检查攻击迹象,并在客户有安全顾虑时进行审查。您可以使用 Admin Actions Log Magento extension 来达到这个目的,它已更新了以下对于网站安全至关重要的功能:
- 您可以设置一个通知,以便在登录尝试来自与之前登录不同的国家时收到成功的登录尝试。
- 您可以设置一个通知,以便在过去一小时内有多次登录尝试失败,这可能表示有人试图闯入。
- “403 Forbidden”状态由后端的登录失败页面返回,这有助于与服务器安全工具集成。
此外,您还可以使用 web security scanner 来自动和定期分析您的电子商务网站的漏洞。
使用HTTPS/SSL
如果您使用公共热点(例如商场)访问后端,那么您面临来自 MitM 攻击的风险。通过HTTPS让在线商店是安全的,因为所有的交易数据都是通过SSL/TLS协议从用户加密到您的服务器。
您可以选择使用 FREE SSL certificate 或 buy。
放弃FTP
FTP协议是在互联网还在起步阶段时引入的,当时安全性还不是问题。由于授权是通过明文进行的,可以轻松拦截,因此不应使用FTP协议。
使用SFTP协议,它还可以解决IP流(NAT)的问题,因为并非每个人都拥有公共IP进行Internet使用。按照此指南配置Magento的SFTP。
设置最小访问权限
您应该始终限制Web服务器活动的访问权限。您只需要在Magento的 app/etc、media和var目录下有记录,如果使用编译,则还需要includes/目录。只有Magento Connect使用可能需要扩展权限。
安全性最佳的组合如下:您让网站源代码属于第一个用户(例如,admin),而Web服务器将使用第二个用户(例如,Apache)运行代码。让我们看一个此组合的访问设置示例:
chown -R admin:apache /path/to/your/magento
find /path/to/your/magento -type f -print0 | xargs -r0 chmod 640
find /path/to/your/magento -type d -print0 | xargs -r0 chmod 750
chmod -R g+w /path/to/your/magento/{app/etc,media,var}
# 仅在使用编译时
chmod -R g+w /path/to/your/magento/includes
阻止所有不受欢迎的国家
如果您不向全球发货,请阻止其他国家。
例如,如果您只向美国发货,通过阻止其他国家,您可以保护自己免受任何攻击 – 众所周知,大量的恶意流量来自中国,通过阻止它,您可以避免来自该国的任何闯入尝试。
有很多方法可以做到这一点,具体过程取决于您使用的 WAF hosting。您应该与您的托管或安全提供商公司讨论此事以确保正确设置。
结论
我确信您可以通过遵循上述提示为您的Magento商店增加额外的安全性。对于中小型企业,您还应该探索 cloud-based VAPT solutions。