我正在使用wss:// (Objective套接字库)与棘轮 ( PHP库)建立一个SocketRocket连接。
我计划通过这个套接字连接发送私有数据,然后使用https://请求将数据发送回服务器。
目标-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] };
...客户端是否有可能截获这些私有数据(在合理的缓冲区溢出、中间的man等.)?
发布于 2017-03-17 10:39:04
如果使用wss://和https://协议,则不必担心处于中间攻击的人,因为所发送的所有数据反正都是加密的。
但是,如果在任何情况下都必须通过不安全的协议或URL查询字符串发送数据,则可以使用protocol模块对数据进行加密,并以明文(eg:$_GET params)发送数据。
示例:http://php.net/manual/en/book.openssl.php#91210
在本例中,$crypttext将是二进制数据。可以将其编码为base64字符串,如果需要通过GET或POST请求发送url,则可以将其编码。
urlencode(base64_encode($crypttext))
在接收端,您可以使用base64解码和url解码来获取二进制信息,然后使用私钥解密数据,如示例所示。
base64_decode(urldecode($crypttext)
发布于 2017-03-14 23:26:31
我建议您的证书都是最新的,并确保您的私钥证书是受保护的,只有您才能访问。
需要记住的一点是,如果您正在进行任何日志记录,您可能最终会记录您想要安全的日志数据。我会再次检查您的日志策略,并确保您对此满意。有时,信息将作为查询参数沿url传递,然后将这些信息记录到服务器日志文件中。
如果您正在保存任何历史记录,请确保检查该记录或移动设备上的任何缓存,以防万一。
发布于 2017-03-20 23:09:07
注意:您将希望使用带有安全密码的TLS+协议和sha256+加密。
注意: SSL+协议是不安全的,并且可以由中间人代替.注意: 1.确保使用sha256+ 2创建证书。请签署证书。3.配置Apache或web服务器,使其与TLS和安全密码套件一起使用SSL。4.确保每个主机信任其他主机的ssl。(如果是双向的)
抱歉,这么笼统,但需要更多的信息。
你好,卫斯理
https://stackoverflow.com/questions/42530834
复制相似问题