gpt4 book ai didi

php - 如何通过 Web 套接字将私有(private)数据安全地发送到 Objective-C 客户端并返回到服务器?

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:40:34 25 4
gpt4 key购买 nike

我正在建立到 ratchetwss:// 连接(一个 PHP 套接字库)使用 SocketRocket (一个 Objective-c 套接字库)。

我计划通过此套接字连接发送私有(private)数据,然后使用 https:// 请求将数据发送回服务器。


Objective-C 代码:

//initiate global variable
@property (nonatomic) NSMutableArray* keys;

...

//receive the private data with SocketRocket
- (void)webSocket:(SRWebSocket *)webSocket didReceiveMessage:(nonnull NSString *)string
{
[_keys insertObject:string];
}

...

//$_POST the file data with sthttp
STHTTPRequest *r = [STHTTPRequest requestWithURLString:@"https://example.com/test.php"];
r.POSTDictionary = @{ @"key":_keys[0] };
...

客户端是否有任何可能的方法可以拦截此私有(private)数据(在合理范围内 [缓冲区溢出、中间人等...])?

最佳答案

如果您使用 wss://和 https://协议(protocol),您不必担心中间人攻击,因为所有发送的数据无论如何都是加密的。

然而,如果在任何情况下您必须通过不安全的协议(protocol)或 URL 查询字符串发送数据,您可以使用 PHP 的开放 SSL 模块自行加密数据并以明文形式发送(例如:$_GET params)。

例子: http://php.net/manual/en/book.openssl.php#91210

在此示例中,$crypttext 将是二进制数据。如果您需要通过 GET 或 POST 请求发送它,可以将其编码为 base64 字符串和 url 编码。

urlencode(base64_encode($crypttext))

在接收端可以进行base64解码和url解码得到二进制信息,然后使用私钥解密数据,如示例所示。

base64_decode(urldecode($crypttext)

关于php - 如何通过 Web 套接字将私有(private)数据安全地发送到 Objective-C 客户端并返回到服务器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42530834/

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