我们正在构建一个新的Web应用程序堆栈.后端功能将基于服务,但由于其中一些服务需要暴露给公共互联网,我需要保护它们.我使用标准成员资格/角色提供程序模型锁定服务URL部分成功.我在那一刻遇到麻烦的部分是,如果我们要在我们的服务堆栈上构建一个iOS(或Android)应用程序,我们将如何处理安全性?
我完全乐于接受建议.到目前为止,我已在下面的设置中包含了一些信息.
ASP.NET网站使用在HTTPS连接上运行的SQL成员资格/角色提供程序/表单身份验证.只有Default/Login/FAQ页面可以公开访问.所有其他页面都位于名为"/ Secure"的文件夹中,需要您进行身份验证.
WCF WebService.所有支持的功能都通过此服务提供.端点仅在本地Intranet上可用.ASP.NET网站代码背后使用标准服务参考与服务进行对话.
WCF REST/JSON服务.上述某些功能在WCF REST/JSON服务中重新包装.这是使用" WCF REST模板40 "设置的.然后使用System.Web.Routing将服务路由到"/ Secure/jsonsvc/*".因为它位于/ Secure文件夹下,所以它继承了任何请求的membership/roleprovider安全性.例如,xmlhttp从客户端JQuery小部件调用此服务,仅适用于已登录我们网站的用户.
将来,外部应用程序(例如IPad应用程序)可能需要使用这些相同的WCF Rest/JSON服务.鉴于缺少HTTP站点/会话/登录上下文,最好的方法是什么?
可能重复:
在PHP中生成安全随机数
我们需要生成一个加密随机字符串,用作身份验证令牌,该令牌将绑定到数据库中的会话数据.我们使用的是PHP,它似乎没有内置合适的随机数生成器.我们如何使用php生成N长度的加密安全随机字符串?
另请注意,由于我们的应用程序的性质,shell_exec不在桌面上.