Tag: 安全

Lua的能力:有什么经验?

关于Lua和Javascript是否支持对象能力模型, 在cap-talk邮件列表上有一些讨论 ,结论是由于支持通过setfenv将环境限制为被调用的函数,以及不可伪造的引用不可变对象的可能性, OCM可以实施。 我们有没有看到这是如何工作的? 我很感兴趣的是从现有的应用程序中删除漏洞利用非常有用,慷慨的脚本支持在Lua,不幸的是允许在各种情况下完全shell访问。 需要一些shell访问权限:对象能力模型似乎是一种pipe理事物的好方法。 但是我担心我可以做出多less有说服力的事实,这种方法实际上在可靠的混乱实践中是可validation的。 一些链接: 较老的问题: 我如何创build一个安全的Lua沙箱? erights.org的背景: 从对象到function Lua wiki: SandBoxes和ReadOnlyTables – 显示setfenv的行动; 显示了在正确的情况下可以只读的表格的基本思想

贵公司如何做“企业”密码pipe理?

我们在这里谈到了个人密码pipe理,但是您如何在公司范围内pipe理您的密码?

自MS14-059以来,System.Web.MVC不会复制到bin文件夹中。 如何防止由于Windows更新而创build缺lessDLL的生成?

今天早上有报道说,我们的QA服务器上的Web应用程序被完全破坏,从Web.config报告了以下错误: 无法加载文件或程序集“System.Web.Mvc,Version = 5.1.0.0,Culture = neutral,PublicKeyToken = 31bf3856ad364e35”或其某个依赖项。 该系统找不到指定的文件 记住看到提到MVC的Windows Update,我做了一些挖掘,发现很多 人 报告最近的Windows Update中断MVC。 在深入了解这些问题和我们的服务器之后,似乎被咬的东西与其他问题中的东西并不匹配,但确实有关联。 以下是我们所知道的: 我们的应用程序被破坏使用ASP.NET MVC 5.1 MVC是通过NuGet安装的 我们的BuildServer和QA服务器没有安装MVC 5.1(因此没有安装GAC) 我们相信已经破裂导致了“糟糕的构build”被创造出来: 尽pipe没有在GAC中安装MVC 5.1,但是通过Windows Update在BuildServer上安装了一个用于MVC 5.1的补丁 该补丁已将MVC 5.1的“更新”版本放入GAC中 当DLL在GAC中时,CopyLocal = true被忽略; 因此,自补丁以来,这意味着从BuildServer生成的应用程序在输出文件夹中不再具有System.Web.MVC 由于System.Web.MVC不在我们的QA服务器的GAC中(它们尚未打补丁),因此应用程序现在失败,因为无法findSystem.Web.MVC 假设上面描述的行为是正确的,这意味着任何时候MS通过Windows Update 为我们没有的GAC中的NuGet DLL提供服务,我们的BuildServer将开始生成不完整的构build(错过了那些已经注入到GAC中的DLL) 。 升级到MVC 5.2解决了这个问题(可能是因为它没有打补丁,所以没有注入到GAC中)。 该DLL现在被复制到输出文件夹。 除了版本号更改(没有添加/编辑<Private>节点)之外,升级到5.2.2的差异没有变化。 我们不希望启动GACing的一切,也不会创build手动构build步骤来将所有的DLL复制到bin文件夹中,以防MS修补它们。 那么,我们今天可以改变什么呢,以确保我们不会因为未来的MS修补其他DLL而无声无息地生成回构build错误的BuildServer?

在github,bitbucket等存储库网站上托pipe敏感数据有多安全?

这只是一个好奇心的问题。 我想知道在Github,Bitbucket等存储库网站上托pipe敏感数据的安全性如何? 是否足够安全地摆脱本地机器上的所有代码,并将其全部存储在那里? 从保守公司机密的angular度来看安全呢? 我注意到这些网站吹捧像谷歌和雅虎这样的大公司使用他们的服务,但是这些大公司是否真的把这些商业秘密和重要的公司代码存储在这样的网站上? Github有一个页面( http://help.github.com/security ),里面有一些有趣的信息,显示他们正在推销它,就像我所描述的那样愚蠢。 但在实践中,像Google这样的大公司是否真的发现他们的专有秘密和大量的代码真的是安全的,可以在这样的网站上窥探和灾难性的事件?

是否有可能把二进制图像数据到HTML标记,然后在任何浏览器像平常一样显示图像?

这是一个重要的安全问题,我相信这应该是可能的。 一个简单的例子: 你运行一个社区门户。 用户已经注册并上传他们的照片。 只要允许显示图片,应用程序就会提供安全规则。 例如,用户必须是系统各方的朋友,以便您可以查看其他人上传的图片。 问题在于:有人可能会爬取您的服务器的图像目录。 但是你想保护你的用户免受这种攻击。 如果可以将图像的二进制数据直接放入HTML标记中,则可以限制用户对图像目录的访问权限,并将您的Web应用程序运行分组,并将图像数据直接传递给Apache用户和组HTML。 唯一可能的弱点就是你的web应用运行的用户的密码。 有没有可能?

良好的安全备份开发人员在家

对于在国内进行研发的程序员来说,做一个好的,安全的备份方法,不能丢失任何工作。 条件: 备份必须始终在合理的范围内。 Internet连接不能保证始终可用。 解决scheme必须是免费的或在合理的价格,并在上面2。 状况报告 这是现在只考虑免费的选项。 答案中提供了以下开源项目 (这里和其他地方): BackupPC是一个高性能的企业级系统,用于将Linux,WinXX和MacOSX个人电脑和笔记本电脑备份到服务器磁盘。 Storebackup是将文件存储在其他磁盘上的备份工具。 mybackware :这些脚本是为小型MySQL安装的基本灾难恢复而创build的SQL转储文件。 Bacula通过不同种类的计算机networking来pipe理计算机数据的备份,恢复和validation。 从技术上讲,这是一个基于networking的备份程序。 AutoDL 2和Sec-Bk :AutoDL 2是一个可扩展的传输独立自动文件传输系统。 它适用于将文件从临时服务器上传到生产服务器场中的每台服务器[…] Sec-Bk是一组简单的实用程序,可将文件安全地备份到远程位置,甚至是公共存储位置。 rsnapshot是用于备份本地和远程系统的文件系统快照实用程序。 rbme :使用rsync进行备份可以获得永久性的增量备份,可以作为完整备份(每天),因此可以轻松恢复或进一步复制到磁带等。 Duplicity通过生成encryption的tar格式卷并将其上载到远程或本地文件服务器来备份目录。 […]使用librsync,[增量档案] simplebup ,在被修改的情况下,对正在开发的文件进行实时备份。 这个工具也可以用来监视其他目录。 它旨在作为即时自动备份,而不是作为版本控制。 这是非常容易使用。 其他可能性: 使用分布式版本控制系统(DVCS),如Git (/ Easy Git ), Bazaar , Mercurial回答需要在本地提供备份。 使用免费的在线存储空间作为远程备份,例如:压缩您的工作/备份目录并将其发送到您的Gmail帐户。 策略 看到crazyscot的答案

应该如何在服务器端使用Facebook用户访问令牌?

前言 我正在开发几个Web服务和一些客户端(Web应用程序,手机等),这些客户端将通过HTTP与所述服务进行接口。 我目前的工作是为产品devise一个authentication和授权解决scheme。 我已决定利用Facebook,Google,Microsoft,Twitter等外部身份提供商进行身份validation。 我试图解决这个问题,“当请求到达我的服务器时,我怎么知道用户是谁,我怎么能确定?”。 下面还有更多的问题 要求 依靠外部身份来表明我正在处理的是谁(“userId”本质上就是我所关心的)。 系统应该使用基于令牌的authentication(而不是cookie,例如基本authentication)。 我相信这是跨多个客户端和服务器进行扩展,同时提供松散耦合的正确select。 工作stream程 基于我对基于令牌的身份validation的阅读和理解,以下是我如何想象工作stream程。 现在让我们在网页浏览器上关注Facebook 。 我的假设是,其他外部身份提供者应该有类似的能力,虽然我还没有确认。 请注意,截至撰写时,我将基于Facebooklogin版本2.2以下 客户端:使用JavaScript SDK启动Facebook的login Facebook:用户authentication和批准应用程序权限(例如访问用户的公开个人资料) Facebook:向包含用户的访问令牌,ID和签名请求的客户端发送响应 客户端:在浏览器会话中存储用户访问令牌( 方便地由SDK处理 ) 客户端:通过在授权标头中发送用户的访问令牌+用户的标识(潜在地在自定义标头中)向我的Web服务请求安全资源, 服务器:从请求头读取用户访问令牌,并通过向Facebook提供的debug_tokengraphicsAPI发送请求来启动validation Facebook:使用用户访问令牌信息(包含appId和userId)回应服务器 服务器:通过比较appId与预期(本身已知)和userId与客户端请求上发送的内容的比较来完成令牌的validation 服务器:用请求的资源响应客户端(假定愉快的授权path) 我想象的步骤5-9将重复随后的请求到服务器(而用户的访问令牌是有效的 – 没有过期,从FB侧撤销,应用程序权限改变等) 以下是帮助您完成步骤的图表。 请理解这个系统不是一个单一的页面应用程序(SPA)。 提到的Web服务是API端点,将JSON数据本质上提供给客户端; 他们不提供HTML / JS / CSS(除了Web客户端服务器)。 问题 首先,根据我的序言和要求,有没有明显的差距/陷阱? 正在执行一个出站请求到Facebookvalidation访问令牌(上面的步骤6-8) 每客户端请求 /推荐? 我至less知道,我必须validation来自客户端请求的访问令牌。 但是,第一个后续validation的推荐方法对我来说是未知的。 如果有典型的模式,我有兴趣听到它们。 根据我的要求,我明白他们可能是依赖于应用程序; 然而,我只是不知道该找什么。 一旦我有一个基本的想法,我会尽职尽责。 例如,可能的想法: 首次validation完成后,将访问令牌+ userId对散列,并将其存储在分布式caching中(所有Web服务器均可访问),并且有效期等于访问令牌。 在随后来自客户端的请求中,对访问令牌+用户ID对进行散列并检查其在caching中的存在。 如果存在,则请求被授权。 […]

如何使用Shift-JIS和CP932创buildSQL注入攻击?

我正在写一些unit testing,以确保我的代码不容易在各种字符集下的SQL注入。 根据这个答案 ,您可以通过使用以下字符集之一注入\xbf\x27来创build漏洞: big5 , cp932 , gb2312 , gbk和sjis 这是因为如果您的助手configuration不正确,它会看到0x27并尝试转义它,使其成为\xbf\x5c\x27 。 但是, \xbf\x5c实际上是这些字符\xbf\x5c的一个字符,因此引号( 0x27 ) \xbf\x5c转义。 但是,正如我通过testing发现的,这不完全正确。 它适用于big5 , gb2312和gbk但在sjis和cp932都不是0xbf27或cp932 。 都 mb_strpos("abc\xbf\x27def","'",0,'sjis') 和 mb_strpos("abc\xbf\x27def","'",0,'cp932') 返回4 。 即PHP不会将\xbf\x27看作单个字符。 这将返回false为big5 , gb2312和gbk 。 另外,这个: mb_strlen("\xbf\x5c",'sjis') 返回2 (它为gbk返回1 )。 所以,问题是:是否有另一个字符序列,使sjis和cp932容易受到SQL注入,或者他们实际上不是脆弱的? 或者说是PHP说谎,我完全错了,MySQL会完全不同的解释?

如何实施SAML SSO

SAML SSO通常如何实施? 我已经阅读了关于将SAML与Google Apps结合使用以及SAML上的维基百科条目(nb废弃)。 维基百科条目将讨论如何使用包含SAMLRequest和SAMLResponse的详细信息的表单进行回复。 这是否意味着用户必须实际提交表单才能继续进行单点login? 谷歌条目谈到使用redirect,这对我来说似乎更加无聊。 但是,它也谈论了使用表单来提交用户必须提交的响应(尽pipe它的确谈到了使用JavaScript来自动提交表单)。 这是做这个的标准方式吗? 使用redirect和JavaScript的表单提交? 有没有人知道如何去实现Windows域和J2EE Web应用程序之间的SSO的任何其他良好的资源。 Web应用程序位于单独的networking/域上。 我的客户想要使用CA Siteminder (使用SAML)。

使用Maven有多安全?

有人设置maven仓库和/或ipstream的伪装以提供伪装的原始库副本,但注入恶意或有害代码的风险和可能性或情景是什么。 有什么步骤和做法来防止这种风险和可能性?