gpt4 book ai didi

php - 身份验证系统 - 每次都必须更改的返回信息

转载 作者:行者123 更新时间:2023-12-03 18:28:08 24 4
gpt4 key购买 nike

我有一个包含身份验证系统(登录名和密码)的应用程序(用 Delphi 制作)。

该系统使用 PHP,应用程序使用 HTTP 从 PHP 获取结果获取 方法。
如果登录名和密码正确,系统返回“OK”,如果不正确,系统返回“NO”。

像这样...

procedure Check;
var
x: string;
begin
x:=Get('www.mywebsite.com/auth.php?user=xxxxxx&pass=zzzzzz');
if x='OK' then
UnlockFeatures
else
MessageBox(0,'You're not VIP','Error',0);
end;

嗯,它工作得很好,但是用嗅探器、数据包编辑器或代理很容易绕过这个系统。

所以,我想获得一些每次都会改变的信息(在 PHP 中),并且我的应用程序可能会获得相同的信息。

我能做些什么?

我不需要代码。只是提示,建议,请...

谢谢...

最佳答案

一般来说,我建议你不要试图比每个人都聪明并发明全新的自行车——你 99% 会因一些愚蠢的错误而失败,从而使你的方法完全不安全。有很多优先级,例如 DVD 加密或 Win95 安全性。您最好尝试一些行业认可的机制,这些机制多年来都经过了安全性测试,应该已经为 Delphi 和 PHP 提供了现成的实现。很少有

  • TLS (https://协议(protocol)) http://en.wikipedia.org/wiki/Transport_Layer_Security - 这不会提供对 MITM 的保护攻击,但这听起来正是您所要求的,并且需要最少的更改。
  • 您可以尝试实现 SSO通过integrated windows authentication如果你的服务器支持
  • 您可以尝试设置 OpenIDOAuth环境。通常他们的 v.1 会比 v.2 简单
  • 您可以尝试退出 HTTP 并使用 XMPP/Jabber身份验证 - 他们非常重视安全性,并且存在 PHP 和 Delphi 库。虽然它不应该比仅使用 TLS 更安全,但您可能希望愚蠢的攻击者不会为非 HTTP 协议(protocol)做好准备(Facebook 之外没有互联网等)。
  • 您可以使用类似蓝牙的方法进行一次特殊连接(“握手”)(当客户端和服务器都受到控制时),只是为了交换和存储特殊的“ token ”。这是使用“受控环境”进行第一次连接并使用一些标记来证明“我们以前见过”在以后使用通用 challenge/response 的连接上的通用特征。特征。对于每个客户端-用户-服务器组合,这些 token 应该是唯一的!如果您要创建一个服务器全局客户端共享的一组 token - 它们只会很容易地从一个客户端复制到另一个客户端,并且没有更多的安全性。
  • 这些可能是一些不重要的系数RNG .构造为服务器并由客户端和服务器保存。然后服务器用 RNG 种子“挑战”,客户端应该用适当的随机值响应,证明他知道系数。
  • 这些可能是一些asymmetric crypto ,其中 token 是一些随机“消息”,然后服务器发送客户端加密 key 并期望由它们加密的正确消息,或者 token 是密码并且服务器生成随机文本并期望它是正确的加密数字签名被传回。您可以在 Torry.net 找到加密库举些例子。 Lockbox3和 Spring4Delphi 是 Delphi 实现某些加密标准的经过测试和关注最多的加密库之一。

  • 考虑您的优先事项并做出选择。
    您是否能够在稍后一键切换所有身份验证层,完全不关心与未更新客户端的向后兼容性,那么您可能会选择最简单的一个,然后在需要时才对其进行增强。如果您的用户懒于升级,那么您最好从初学者中选择最安全的方法,因为以后您将没有实用的方法来禁用不安全的实现。

    关于php - 身份验证系统 - 每次都必须更改的返回信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12626644/

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