小编z80*_*000的帖子

你如何在iPhone应用程序中保密秘密数据?

假设我需要从iPhone应用程序访问Web服务.此Web服务要求客户​​端对HTTP请求进行数字签名,以证明应用程序"知道"共享密钥; 客户端密钥.请求签名存储在HTTP头中,请求只是通过HTTP(而不是HTTPS)发送.

这个密钥必须始终保密,但需要iPhone应用程序使用.

那么,鉴于您始终被告知永远不会在客户端存储任何敏感内容,您将如何安全地存储此密钥?

普通用户(99%的用户)很乐意使用该应用程序.会有某个人(一个敌人?)想要这个秘密客户密钥,以便通过冒充来对服务或客户密钥所有者造成伤害.这样的人可能越狱他们的手机,访问二进制文件,运行"字符串"或十六进制编辑器并四处寻找.因此,仅将密钥存储在源代码中是一个糟糕的主意.

另一个想法是将密钥存储在代码中而不是字符串文字中,而是存储在从字节文字创建的NSMutableArray中.

可以使用钥匙串,但由于iPhone应用程序永远不必提供密码来存储钥匙串中的东西,我担心有权访问应用程序沙箱的人可以并且能够简单地查看或轻松解码其中的项目.

编辑 - 所以我读到了关于钥匙串的信息:"在iPhone OS中,应用程序总是可以访问自己的钥匙串项目,并且无法访问任何其他应用程序的项目.系统会为钥匙串生成自己的密码,并存储密钥在设备上以任何应用程序都无法访问它."

所以也许这是存放密钥的最佳位置....如果是这样,我如何使用预先输入到应用程序钥匙串中的密钥?那可能吗?否则,如果没有密钥在源代码中,你怎么能在第一次启动时添加密钥?嗯..

编辑 - 提交的错误报告#6584858在http://bugreport.apple.com

谢谢.

security iphone cryptography

37
推荐指数
2
解决办法
7242
查看次数

为什么当前的websocket客户端实现不支持代理?

Web Socket检测是否存在代理服务器,并自动设置隧道以通过代理.通过向代理服务器发出HTTP CONNECT语句来建立隧道,代理服务器请求代理服务器打开到特定主机和端口的TCP/IP连接.一旦建立了隧道,通信就可以畅通无阻地通过代理.由于HTTP/S以类似的方式工作,因此SSL上的安全Web套接字可以利用相同的HTTP CONNECT技术.[1]

好的,听起来很有用!但是,在我到目前为止看到的客户端实现中(Go [2],Java [3])我没有看到任何与代理检测有关的内容.

我错过了什么或这些实施只是年轻?我知道WebSockets是非常新的,客户端实现可能同样年轻和不成熟.我只是想知道我是否遗漏了代理检测和处理方面的问题.

[1] http://www.kaazing.org/confluence/display/KAAZING/What+is+an+HTML+5+WebSocket

[2] http://golang.org/src/pkg/websocket/client.go

[3] http://github.com/adamac/Java-WebSocket-client/raw/master/src/com/sixfire/websocket/WebSocket.java

websocket

27
推荐指数
2
解决办法
2万
查看次数

我绝对需要至少3个节点/服务器用于Cassandra集群,还是2个就足够了?

当然可以运行单个节点集群,但我想要一定程度的容错能力.

目前我可以租用两台服务器(8GB RAM,私有VLAN @ 1GigE)而不是3台服务器.

我的理解是,3个节点是Cassandra集群所需的最小节点,因为2个节点之间不可能存在大多数节点,并且解决版本控制冲突需要大多数节点.哦等等,我想到"矢量时钟"和Riak?确认!Cassandra使用时间戳来解决冲突.

对于2个节点,建议的读/写策略是什么?我通常应该写入所有(两个)节点并从ONE读取(N = 2; W = N/2 + 1; W = 2/2 + 1 = 2)?像往常一样,Cassandra会使用暗示切换,即使是2个节点,是吗?

这两台服务器位于同一数据中心FWIW中.

谢谢!

fault-tolerance cassandra nosql

14
推荐指数
1
解决办法
1万
查看次数

如何回收稀疏文件的归零块?

考虑一个稀疏文件,其中1s写入文件的一部分.

我想回收磁盘上这些1的实际空间,因为我不再需要稀疏文件的那部分.包含这些1的文件部分应该成为一个"洞",就像1s自己写的那样.

为此,我将该区域清除为0.这并没有收回磁盘上的块.

我如何实际制作稀疏文件,再次稀疏?

这个问题与类似,但该问题没有被接受的答案.

考虑在库存Linux服务器上运行的以下事件序列:

$ cat /tmp/test.c
#include <unistd.h>
#include <stdio.h>
#include <fcntl.h>
#include <string.h>

int main(int argc, char **argv) {
    int fd;
    char c[1024];

    memset(c,argc==1,1024);

    fd = open("test",O_CREAT|O_WRONLY,0777);
    lseek(fd,10000,SEEK_SET);
    write(fd,c,1024);
    close(fd);

    return 0;
}

$ gcc -o /tmp/test /tmp/test.c

$ /tmp/test

$ hexdump -C ./test
00000000  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
*
00002710  01 01 01 01 01 01 01 01 …
Run Code Online (Sandbox Code Playgroud)

linux filesystems file sparse-file

12
推荐指数
2
解决办法
5518
查看次数

在将Cassandra集群部署到一组Linode VPS实例时是否存在"陷阱"?

我正在学习Apache Cassandra数据库[原文如此].

有没有人将Cassandra部署到像Linode或Slicehost的产品那样的专用硬件上有任何好/坏经验?

我认为Cassandra是一种很容易扩展Web服务以满足读/写/请求加载的好方法...只需将另一个运行Cassandra节点的Linode添加到现有集群中.是的,这意味着在同一个VPS上运行公共Web服务和Cassandra节点(许多人可以采取例外).

Cassandra的Linode式部署的优点:

  • 专用VLAN; Cassandra节点可以私下通信
  • 用于配置新Linode的API(可能使用安装Cassandra及其依赖项的"StackScript"进行配置等)
  • 价格合适

缺点:

  • 每个主机都是VPS,当然不是专用的
  • 一旦你决定要4GB RAM,RAM /成本比就不那么好了(参见SoftLayer专用)
  • 我认为只有1个磁盘,其中一个人更喜欢2个磁盘(1个用于提交日志,另一个磁盘用于数据文件本身).可能没什么问题,因为这是共享硬件无论如何.

编辑:发现这有点帮助:http://wiki.apache.org/cassandra/Cas​​sandraHardware

我看到1GB是最低的,但这是推荐吗?例如,我可以使用Linode 720进行部署(比如说Cassandra可以使用500 MB)吗?见http://www.linode.com/

database vps cassandra nosql linode

11
推荐指数
1
解决办法
2980
查看次数

是否有任何针对Cassandra的数据建模练习,如Retwis for Redis?

我正在尝试学习如何在我的应用程序中映射实体/演员/对象/事物以便在Cassandra中存储.Redis有一个很棒的教程,用于建模Twitter数据和称为Retwis的典型访问模式[1].我找到了几个Cassandra的例子.

你是如何开始为Cassandra的数据模型获得直觉的?

[1] http://retwis.antirez.com/

database data-modeling cassandra nosql

6
推荐指数
1
解决办法
1649
查看次数

您曾经使用自定义协议测试(功能/加载/压力)网络服务有哪些?

我最近创建了一个基于回合制的游戏服务器,可以接受数以万计的同时客户端连接(Linux上的长篇短篇小说).通信基于简单的,定制的,基于行的协议.该服务器允许客户端连接,在游戏比赛中寻找其他玩家,玩游戏(发送动作,聊天消息等),并在游戏结束时得到通知.

我现在要做的是通过模拟客户端连接来测试服务器.我希望能够支持成千上万的同时连接,所以这个测试对我来说非常重要.你们有什么用于自己的测试?

我正在研究的一些事情是:pexpect(python期望用于功能测试的lib)和用于负载测试的tsung.

我希望能够从我的笔记本电脑进行测试,因为我没有可连接的客户端机器集群.也许我需要使用ip别名或类似的东西来生成数以千计的出站套接字(每个接口AFAIK限制为65K).

无论如何,在我看来,我需要一些相当习惯的东西,但我想在我走这条路之前我会问.

谢谢!

testing performance networking network-programming

5
推荐指数
1
解决办法
517
查看次数

TCL中基于C10K的基于事件的服务器开发状态如何?

TCL是一个不错的简单的编程语言,但似乎并没有得到信贷和/或尊重,值得.我在1995年在大学时学到了这一点,并且很快忘记了它,最近又偶然发现了它.我最感兴趣的是TCL开发基于TCP的网络服务以及Web开发.

已经提到TCL使网络编程变得简单.但是,似乎TCL在封面下使用了select(),并且在考虑"Web规模"的情况下不能很好地扩展(参见C10K问题).我已经搜索了对libevent,libev,raw epoll/kqueue的支持,但我看不太多.

你知道用TCL编写的任何"现代"(缺乏更好的术语)基于事件的网络服务吗?您是否有基于TCL的服务器开发的指针,技巧或最佳实践?

谢谢!

networking events epoll tcp tcl

5
推荐指数
1
解决办法
616
查看次数

是否有与Facebook好友合作的人员选择器视图控制器?

我正在寻找像ABPeoplePickerNavigationController这样的现有视图控制器,而不是显示来自地址簿的联系人显示用户的Facebook好友.

我之前创建了一个自定义选择器,但在看到Words with Friends做了类似人员选择器的事情之后,它似乎是一个更好的解决方案...但我不知道他们是否从头开始创建他们的选择器也无法找到任何东西.

facebook ios facebook-ios-sdk

4
推荐指数
1
解决办法
1720
查看次数

为什么我看到"通过对等方重置连接"错误?

我正在使用python 2.6.1在Mac OS X 10.5盒子上测试cogen.我有一个简单的echo服务器和客户端泵,可以创建10,000个客户端连接作为测试.1000,5000等都工作得很好.但是,在大约10,000个连接处,服务器开始丢弃随机客户端 - 客户端看到"通过对等方重置连接".

我在这里缺少一些基本的网络背景知识吗?

请注意,我的系统配置为处理打开的文件(launchctl limit,sysctl(maxfiles等),ulimit -n都是有效的;在那里,完成了).此外,我已经证实cogen正在选择使用kqueue.

如果我给client-connect()调用添加一点延迟,一切都很好.因此,我的问题是,当短时间内连接频率很高时,为什么服务器会在压力下降其他客户端?有没有人遇到过这个?

为了完整起见,这是我的代码.

这是服务器:

# echoserver.py

from cogen.core import sockets, schedulers, proactors
from cogen.core.coroutines import coroutine
import sys, socket

port = 1200

@coroutine
def server():
    srv = sockets.Socket()
    srv.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
    addr = ('0.0.0.0', port)
    srv.bind(addr)
    srv.listen(64)
    print "Listening on", addr
    while 1:
        conn, addr = yield srv.accept()
        m.add(handler, args=(conn, addr))

client_count = 0

@coroutine
def handler(sock, addr):
    global client_count
    client_count += 1
    print "SERVER: [connect] clients=%d" % …
Run Code Online (Sandbox Code Playgroud)

python sockets network-programming system

3
推荐指数
1
解决办法
1万
查看次数

如何在输入验证中允许 UNICODE 代码点的子集?

我正在创建一项服务,可以“走向国际”到非英语市场。我不想将用户名限制为 ASCII 字符范围,但希望允许用户指定他们的“自然”用户名。好的,使用 UNICODE(并说 UTF-8 作为我的用户名文本编码)。

但!我不希望用户创建包含“符号”代码点的“非名称”用户名。例如,我不想允许像 ??????øøøøø 这样的用户名。

是否有 UNICODE 的“符号”代码点列表,我可以检查(可能使用正则表达式)以接受/拒绝给定的用户名?

谢谢!

unicode validation codepoint

3
推荐指数
1
解决办法
211
查看次数