创建表单时,您需要处理用户数据。 您应该首先确保用户数据的私密性和安全性。 我们看看能做些什么。
确保您的表单安全无虞
首先,请确保您请求的数据尽可能少。不要请求不需要的数据,并且始终质疑您是否需要请求的所有数据。数据减少意味着风险、费用和责任更少。此外,减少表单中的字段数量有助于降低表单复杂程度、提高表单填写难度,还能降低放弃率。
始终使用 HTTPS,尤其是对于包含表单的网页。使用 HTTPS 时,来自服务器和返回服务器的数据都会加密。
假如你在使用公共 Wi-Fi 网络,您打开一个电子商务网站并填写信用卡信息进行购买。 如果该网站使用 HTTP,则连接到同一公共 Wi-Fi 的任何人(具备使用 HTTP 相关技能)都可以看到您的信用卡信息。如果网站使用 HTTPS,数据会加密,从而防止任何人试图访问这些数据。
在您的网站上,您还应确保将所有 HTTP 请求重定向到 HTTPS。 详细了解如何将所有流量重定向到 HTTPS。
帮助用户确保数据的私密性
在第一个单元中,您了解了两种可能的数据转移方式:使用 GET
请求和使用 POST
请求。
借助 GET
请求,表单数据以查询字符串的形式包含在请求网址中。如果您提交使用 GET
请求的表单,浏览器会将包含表单数据的请求网址添加到您的浏览记录中。如果您要查找过去提交的表单(例如搜索表单),这会非常方便。如果提交了敏感数据,并且有权访问您的浏览器历史记录或本地网络的每个人都可以看到此信息,则没什么效果。
针对可能会提交个人数据或其他敏感数据的所有表单使用 POST
请求。这样,数据仅对处理数据的后端脚本可见。
那么,直接在浏览器中保存和处理个人数据呢?
您可以使用客户端存储空间(例如,localStorage
)在浏览器中存储个人数据。在隐私方面,这并不理想。
再次强调,有权访问您浏览器的所有用户都能读取这些信息。
您只能为个人数据存储加密的值。
确保用户可以安全地注册和登录
就隐私和安全而言,用户帐号身份验证是一个复杂的问题。与构建自己的安全身份验证系统相比,最好使用第三方身份提供方。
详细了解帐号身份验证和密码管理的最佳做法。
帮助用户访问自己的个人数据
许多地区都有与数据保护和隐私权相关的法律法规,包括加利福尼亚州的 CCPA 和印度的 PDPA。在欧盟 (EU) 提供的所有网站都必须遵守一般数据保护条例 (GDPR),即使网站并非位于欧盟也是如此。
GDPR 制定了与收集和处理欧盟境内的用户个人信息相关的准则。 必须征得用户同意才能处理个人数据,用户可以请求您随时存储的个人信息,而您必须正式宣布数据泄露。这对用户而言是一件好事,因为这有助于确保用户隐私得到尊重。详细了解 GDPR。
确保用户知道您计划如何处理个人数据。 信息透明是赢得信任的关键。 用户应始终能够访问、修改和删除您为他们保存的所有数据。
确保用户可以更新自己的个人数据
让用户能够轻松更新其个人数据,包括密码、电子邮件地址和用户名。通知用户其存储的个人数据发生了更改,并确保用户可以撤消更改。例如,在用户更改电子邮件地址后,向原先的电子邮件地址和新电子邮件地址发送电子邮件。
让用户能够轻松删除其帐号(包括所有相关数据),并在适当的情况下下载数据。在某些地区,删除帐号是一项法律要求。
需要额外的身份验证步骤(例如重新输入当前密码)才能查看或更改网站上的个人信息。
如需了解详情,请参阅:Web 应用隐私保护最佳实践。
确保所有数据均处于良好状态
在上一单元中,您学习了前端验证。前端验证很重要,但用户可能仍然能够提交无效数据。接下来,您还必须在后端验证数据,然后再将数据保存到数据库中。这样可以确保数据库中不会保存无效数据。
验证有助于确保数据格式有效,但您还是不应信任用户输入的数据。如何安全地输出数据?为防止跨站脚本攻击 (XSS),并确保所有数据都能安全地包含在 HTML 中,您必须在输出前清理数据。
详细了解如何在输出前对数据进行清理,并在可能的情况下使用 Sanitizer API。
确保所有提交内容均由真人提供
为帮助保护您的数据,您可以通过多种方式来防止聊天机器人提交垃圾内容。
第一种方式是使用 reCAPTCHA 等服务来区分真人和聊天机器人。为此,您需要在网页上添加 JavaScript 代码段,并向 Submit 按钮添加额外的属性。
reCAPTCHA 会执行各种检查,以确定您是否为真人。例如,它可能会要求您识别图片。 自动化软件(如聊天机器人)无法完成这些验证,也无法提交表单。
蜜罐
另一种方法是使用所谓的“Honeypot”,即在视觉上隐藏的表单字段。人类不会看到蜜罐区域,但机器人会填充它。 在后端,处理脚本可以检查该字段是否已填写。如果是,则表示提交内容可能来自聊天机器人,您可以忽略。
此外,Akismet 等服务也可以帮助您防范垃圾内容。Akismet 过滤器会合并在所有参与网站上捕获的垃圾内容的相关信息,然后使用这些网络垃圾规则来屏蔽日后的垃圾内容。Akismet 对用户来说是透明的,并且能拦截大多数垃圾邮件。
检查您的掌握程度
测试您对安全和隐私保护知识的掌握情况
使用表单转移个人数据的首选方法是什么?
GET
请求。POST
请求。如何防范垃圾内容?