首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何安全地将私有数据通过web套接字发送到objective客户端并返回到服务器?

如何安全地将私有数据通过web套接字发送到objective客户端并返回到服务器?
EN

Stack Overflow用户
提问于 2017-03-01 11:44:06
回答 3查看 855关注 0票数 5

我正在使用wss:// (Objective套接字库)与棘轮 ( PHP库)建立一个SocketRocket连接。

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

目标-c代码:

代码语言:javascript
复制
//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等.)?

EN

回答 3

Stack Overflow用户

发布于 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)

票数 2
EN

Stack Overflow用户

发布于 2017-03-14 23:26:31

我建议您的证书都是最新的,并确保您的私钥证书是受保护的,只有您才能访问。

需要记住的一点是,如果您正在进行任何日志记录,您可能最终会记录您想要安全的日志数据。我会再次检查您的日志策略,并确保您对此满意。有时,信息将作为查询参数沿url传递,然后将这些信息记录到服务器日志文件中。

如果您正在保存任何历史记录,请确保检查该记录或移动设备上的任何缓存,以防万一。

票数 1
EN

Stack Overflow用户

发布于 2017-03-20 23:09:07

注意:您将希望使用带有安全密码的TLS+协议和sha256+加密。

注意: SSL+协议是不安全的,并且可以由中间人代替.注意: 1.确保使用sha256+ 2创建证书。请签署证书。3.配置Apache或web服务器,使其与TLS和安全密码套件一起使用SSL。4.确保每个主机信任其他主机的ssl。(如果是双向的)

抱歉,这么笼统,但需要更多的信息。

你好,卫斯理

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42530834

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档