当涉及到站点安全框架时,我理解“不要自己滚”的咒语。
不管怎么说,对于大多数情况来说。
我将在一个将文本消息集成到系统中的站点上进行协作。
我想使用现有的、经过良好测试的安全框架来保护用户数据,但我也需要它来保护用户的电话号码。
我不想成为一个对用户手机号码列表负责的人,这些用户的手机号码被劫持和发送垃圾邮件。
社区可以提供什么建议?
发布于 2008-09-23 13:46:22
请注意,应用于密码的技术在这里不适用。您可以存储一个加盐和散列的密码(尽管这样做的价值可能有争议),但这不适用于电话号码。
如果有人插孔你的服务器,他们可以做服务器能做的任何事情。这必须包括恢复电话号码,但不包括恢复密码,如果它被很好地散列。因此,电话号码只是保护机密数据的一种特殊情况。
如果手机号码确实是应用程序中唯一的敏感数据,那么你可以考虑隔离应用程序发送短信的部分,并对手机号码进行非对称加密。在不同的进程中(或在不同的机器上)运行一个应用程序,该应用程序具有解密电话号码的密钥。这个应用程序的界面可能只有一个函数,接受加密的no和要发送的消息。保持这个应用程序简单,并测试和审计它的鼻烟。要么对外界隐藏它,要么使用身份验证来证明请求确实来自你的主应用程序,或者两者兼而有之。
数据库和应用程序的主要部分都不能解密手机号码(例如,你不能搜索它们),但它们可以加密它们,以便添加到数据库中。
一般的技术被称为“特权分离”,上面只是一个例子。
请注意,在加密之前,通常需要用随机数据填充电话号码(如在散列密码中加盐)。否则,可以在不知道私钥的情况下回答“加密的电话号码是X吗?”的问题。从垃圾邮件发送者窃取你的分发列表的POV来看,这可能不是问题,但从声称你的电话号码被安全存储的POV来看,这可能不是一个问题,因为这意味着暴力攻击变得可行:只有数十亿个电话号码,而且对于给定的用户,可能会大幅缩小范围。
抱歉,这并没有直接回答你的问题:我不知道是否有一个PHP框架可以帮助实现特权分离。
修改为add:事实上,在我看来,在“保持特权应用程序简单”的标题下,你可能根本不想使用框架。这在某种程度上取决于你是否认为你更有可能在你真正需要的少量代码中留下bug,而不是框架作者在他们编写的大量(但更广泛使用的)代码中留下bug。但这是一个巨大的过于简单化。
发布于 2008-09-23 13:42:22
由于您需要能够检索电话号码,因此您真正能做的唯一一件事是保护它们(除了保护您的数据库的正常操作之外)就是加密它们。这意味着您需要:
当然,不滚动您自己的建议仍然适用,使用AES或其他具有合理密钥长度的备受推崇的密码。
发布于 2010-11-04 03:06:25
我很高兴地宣布PHP的漏洞安全系统的发布
这个项目代表为PHP带来Spring security在Java中提供的那种安全性,Spring Security以前是Acegi Security System for Spring。它的设计目的是吸引Spring Security用户,因为它们的理念是相同的。这是为PHP站点增加安全性的一种不太显眼的方式。配置是使用底层IoC/DI作为Spring Security使用Spring IoC/DI进行的。
该框架附带了一个示例配置,可以像这样使用:
$context = new substrate_Context(
'./path/to/hole-security/hole-security-config.php'
);
$context->execute();
$hole_Security = $context->get('hole_FilterChainProxy' );
$hole_Security->doFilter();只需确保框架的引导程序代码在您选择的MVC的引导程序之前执行。
WebSite:http://code.google.com/p/hole-security/
文档:目前您可以在适用的地方使用Spring Security的参考文档。您可以使用Acegi Security参考文档了解大致情况,因为漏洞安全性使用相同的配置方式,但请记住,它是基于Spring Security的。
许可:它是在Apache许可版本2.0下发布的。
特点:漏洞安全带来了一个可插拔的安全系统,您可以在其中采用您的环境的安全需求。目前有一个非常简单的安全系统,因为它是在第一个版本上,但有了它带来的基础,你可以建议或请求将新功能添加到项目中。
目前的特点:
https://stackoverflow.com/questions/120977
复制相似问题