如果我有一个域https://somedomain.example
并且有一个有效的SSL证书,我是否必须采取任何其他预防措施来加密客户端和我的服务器之间的数据,或者我现在唯一关心的是保护服务器上的数据我的MySQL数据库中的AES加密。
基本上,我是否将客户端和服务器之间的所有安全性都归结为SSL,例如Facebook和Google是如何做到这一点的?
答案 0 :(得分:2)
简单地使用SSL将处理所有加密,因此数据将在传输中受到保护。
针对XSS和CSRF的身份验证,授权和防御需要单独处理。 (尽管可以使用SSL客户端证书进行身份验证)。
特别值得注意的是,如果攻击者可以将JS注入页面,那么它可以访问浏览器中的数据(与传输时不同),它不会被加密。
答案 1 :(得分:2)
这可能不完全是您的意思,但即使使用SSL,最好在数据库中使用密码盐。您没有充分的理由在数据库中存储纯文本密码。即使存储在服务器上的数据并不是那么敏感,因为如果您的数据库遭到入侵,用户通常会在网站上使用相同的密码,您可能会将密码发送给严重的网上银行。
就我个人而言,我更倾向于更进一步,并在腌制密码的基础上实施挑战响应计划。这很容易实现,这样我的服务器很少见到用户的实际密码,但注册时除外。在我看来,我的服务器知道的越多越好。