我的理解的口头禅"不滚你的自己"当谈到网站的安全框架。

对于大多数情况下无论如何。

我会合作,在一个网站,将文本的通讯系统。

我想用一个现有的、久经考验的安全框架,以保护用户的数据,但我需要它也能保护一个用户的电话号码。

我不想成为一个负责一个列表中的用户手机号码得到劫持和垃圾邮件。

什么建议可以对社会提供什么?

有帮助吗?

解决方案

请注意,应用于密码的技术不适用于此处。您可以存储盐渍和散列的密码(虽然这样做的价值可能存在争议),但这对电话号码不起作用。

如果有人插入您的服务器,他们可以做任何服务器可以做的事情。这必须包括恢复电话号码,但不包括恢复密码,如果它已经散列好。因此,电话号码只是保护机密数据的一个特例。

如果手机nos确实是应用程序中唯一的敏感数据,那么您可以查看发送文本的应用程序部分,以及非对称加密手机号码。在不同的进程(或在不同的计算机上)运行具有解密电话号码密钥的应用程序。这个应用程序的界面可能有一个功能,加密否和要发送的消息。保持这个应用程序简单,并测试和审核它的鼻涕。要么将其隐藏在外部世界,要么使用身份验证来证明请求确实来自您的主应用程序,或两者兼而有之。

数据库和应用程序的主要部分都无法解密电话号码(例如,您无法搜索它们),但是他们可以加密它们以添加到数据库中。

一般技术称为“特权分离”,以上只是一个例子。

请注意,在加密之前,通常需要使用随机数据填充手机号码(例如,使用哈希密码加盐)。否则,可以在不知道私钥的情况下回答问题“加密的电话号码X?”。这可能不是垃圾邮件发送者窃取您的分发列表的POV的问题,但是POV声称您的电话号码是安全存储的,这是一个问题,因为这意味着暴力攻击变得可行:只有几十亿电话号码,对于给定的用户,可能会大幅缩小范围。

很抱歉,这并没有直接回答你的问题:我不知道是否有一个PHP框架可以帮助实现权限分离。

[编辑添加:事实上,我发现在“保持特权应用程序简单”的标题下,您可能根本不想使用框架。这有点取决于你是否认为你或多或少会在你真正需要的少量代码中留下错误,而不是框架作者在更大(但更广泛使用)的代码量中留下了错误。写了。但这是一个巨大的过度简化。]

其他提示

因为你需要的是能够检索该电话号码,只有件事你真的可以做的来保护他们(超出正常的事情你会对保护数据库)是加密他们。这意味着你需要:

  • 确定的关键不泄漏当你无意中漏一个数据库。
  • 确保你的系统不帮忙解密的电话号码时,有人设法SQL注入您的体系。

当然,该建议的不是自己仍然适用,使用AES或其他一些受人尊敬的密码有一个合理的密钥的长度。

我高兴地宣布推出针对PHP的漏洞安全系统

这个项目代表PHP为Spring提供了一种安全性,它由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的引导程序之前执行。

网站: http://code.google.com/p/hole-security/

文档: 目前,您可以使用适用于其的Spring Security参考文档。您可以使用Acegi Security参考文档获得一般性建议,因为漏洞安全性使用相同的配置方式,但请记住它基于Spring Security。

许可: 它是在Apache License Version 2.0下发布的。

特点: hole-security带来了可插拔的安全系统,您可以在其中采用环境的安全要求。目前有一个非常简单的安全系统,因为它在第一个版本上,但它带来了基础,你可以建议或要求将新功能添加到项目中。

目前功能:

  1. 在作为概念证明的内存dao身份验证中,您可以切换到首选的dao或实现,从数据库或存储它的任何位置获取用户数据。在期货发布中,将创建一个基于PDO的实现。

  2. 要应用于网址格式的已配置过滤器。可以插入Url路径匹配器,目前它附带了一个ant样式路径匹配器。

  3. 授权管理器可以在您的应用程序中用于决定何处做某事,始终从基材上下文中获取参考。

  4. 如果应用了hole_HttpSessionContextIntegrationFilter,则可以从应用程序的任何代码访问共享安全上下文。您可以使用此上下文保存与会话相关的信息,而无需直接使用会话对象。

  5. 您可以使用自定义登录页面并根据hole_AuthenticationProcessingFilter配置对其进行自定义,也可以根据自定义登录页面自定义hole_AuthenticationProcessingFilter。

  6. 默认密码编码器是纯文本,没有编码。期货发布将实现MD5,Sha Based,Base64和其他相关编码。您可以创建自己的密码编码器并进行配置。

  7. 所有对象都会根据需要加载,如果没有加载请求不用于请求的过滤器。这样可以提高应用程序的性能 还有其他与洞穴安全相关的功能。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top