gpt4 book ai didi

security - 安全网络登录示例/教程

转载 作者:行者123 更新时间:2023-12-02 22:08:17 26 4
gpt4 key购买 nike

为网络应用程序创建登录表单的方法有很多种,但其中大多数都存在这样或那样的缺陷:

  • 密码以明文形式传输/保存
  • 登录对话框容易受到 XSS 攻击或 SQL 注入(inject)

是否有如何创建安全登录表单的示例或教程?

最佳答案

我同意卡洛斯关于缺乏“完美”安全系统的观点,不仅对于登录,而且对于任何其他组件。唯一要做的就是通过遵循最佳实践来最大程度地降低风险,但始终记住,完全安全并不存在,因此您的问题很难回答,尽管有一些很好的例子 there 没有什么是完美的,安全性是一个非常快速发展的话题。

对我来说,要解决的主要问题是:

-数据传输:用户总是要输入密码,并且必须在处理之前将其发送到您的系统,因此如果您使用一个开放的 channel 。要解决此问题,您必须使用通过加密 channel (SSL) 传输数据,没有其他方法,除非您放弃通用密码(例如使用一次性使用 token ,或将身份验证委托(delegate)给第三方,例如 Facebook connect 或 openId )。请参阅"How to Make a Secure Login Form with SSL"

-输入卫生:为了避免 XSS 和 SQL 注入(inject),请将来自客户端的任何输入视为潜在风险点,因此您必须对来自外部的任何内容进行验证 --> doc 。另一个 good practice 是永远不要在查询中直接使用输入,而是在准备好的语句或存储过程中用作绑定(bind)变量。

-密码存储:密码应始终使用单向哈希算法加密存储,因此即使有人访问您的数据库,也无法恢复原始密码。还要使用盐化、多次散列等技术...还要注意选择不弱或过时的算法(例如 MD5),随着 CPU 能力的增加,该算法很容易被暴力破解。

-基础设施:让您的机器、操作系统、框架、库始终更新,以避免错误和 0day 攻击。当今的任何系统都非常复杂,系统的安全性取决于其最薄弱的组件。

-其他需要考虑的事项:定期检查您的安全策略,看看是否需要更新任何内容、实现密码策略(过期、重复使用等)、日志访问、使用监控工具你的系统等等等等

毕竟,您仍然可以确定,如果有人有足够的时间和资源,您的系统就会崩溃。

关于security - 安全网络登录示例/教程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6136769/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com