Tag: security

我用什么命令查看我的服务器的ECDSA密钥指纹是什么?

我在Google上看到了关于如何查看RSA密钥指纹而不是ECDSA指纹的信息。

在.NET 4.0中,我如何“沙盒”内存中的程序集并执行一个方法?

这就是为什么要问这个问题的原因: www.devplusplus.com/Tests/CSharp/Hello_World 。 虽然以前也有类似的问题,但网上有很多答案有几个问题: 这必须做“.Net 4.0”风格,而不是传统模式。 程序集在内存中,只能在内存中, 不能写入文件系统。 我想限制所有访问文件系统,networking等 像这样的东西: var evidence = new Evidence(); evidence.AddHostEvidence(new Zone(SecurityZone.Internet)); var permissionSet = SecurityManager.GetStandardSandbox(evidence); 到目前为止,我找不到一种方法来创build一个AppDomain,并加载一个不在文件系统上的程序集 ,而是在RAM中。 再次说明其他解决scheme无法正常工作的原因:1.很多是4.0以前版本,2.许多依赖于指向文件系统的“.Load”方法。 答案2:我有一个程序集引用,因为它是由CSharpCodeProvider类生成的,所以如果你知道一种方法把它变成一个字节数组,那将是完美的! 示例代码显示安全缺陷 var provider = new CSharpCodeProvider(new Dictionary<String, String> { { "CompilerVersion", "v4.0" } }); var compilerparams = new CompilerParameters { GenerateExecutable = false, GenerateInMemory = true, }; var compilerResults = […]

寻找在Ruby on Rails中构build安全REST API的build议

我正在开始为我正在开发的一个项目构build一个REST API,这让我做了一些关于使用RoR构buildAPI的最佳方法的研究。 我很快就发现,默认情况下,模型向全世界开放,只需在URL末尾添加一个“.xml”并传递适当的参数即可通过URL调用。 那么下一个问题就来了。 如何保护我的应用程序以防止未经授权的更改? 在做一些研究时,我发现了一些关于attr_accessible和attr_protected文章,以及如何使用它们。 我在07年5月份发现了这个网站的具体url( 这里 )。 就像所有的事情一样,我确信事情从那时起就发展了。 所以我的问题是,这仍然是在RoR中保护REST API的最好方法吗? 如果不是在“新项目”或“现有项目”scheme中build议什么?

API密钥与HTTP身份validation相比,RESTful API中的OAuth

我正在为我维护的其中一个应用程序构build一个RESTful API。 我们目前正在寻求build立各种东西,需要更多的控制访问和安全。 在研究如何确保API的时候,我发现了一些关于使用什么forms的不同观点。 我已经看到一些资源说HTTP-Auth是要走的路,而其他人则更喜欢API密钥,甚至其他人(包括我在这里发现的问题)OAuth发誓。 然后,当然,那些喜欢API密钥的人说,OAuth是专为代表用户访问的应用程序devise的(据我所知,如使用您的Facebook帐户login非Facebook网站),而不是用户直接访问他们特别注册的网站上的资源(如访问Twitter服务器的官方Twitter客户端)。 然而,OAuth的build议似乎甚至是最基本的authentication需求。 那么我的问题是 – 假设这些都是通过HTTPS完成的,三者之间的一些实际区别是什么? 什么时候应该考虑其他人?

这个新的ASP.NET安全漏洞有多严重,我该如何解决这个问题?

我刚刚在网上读到了一个新发现的ASP.NET安全漏洞。 你可以在这里阅读细节。 问题在于ASP.NET实现AESencryptionalgorithm的方式,以保护这些应用程序在用户会话期间生成的用于存储信息的cookie的完整性。 这有些模糊,但是这是一个更可怕的部分: 攻击的第一阶段需要几千个请求,但一旦攻击成功,攻击者获得密钥,就完全隐身了。所需的密码知识是非常基础的。 总而言之,我对安全/密码学知之甚less,不知道这是否真的如此严重。 那么,所有的ASP.NET开发人员都应该担心这种技术可以在几秒钟内拥有任何ASP.NET网站 ? 这个问题如何影响一般的ASP.NET开发人员? 它会影响我们吗? 在现实生活中,这个漏洞有什么后果? 最后:是否有一些解决方法可以防止此漏洞? 感谢您的回答! 编辑:让我总结我得到的答复 所以这基本上是一种“填充甲骨文”式的攻击。 @Sri对这种types的攻击是什么意思提供了一个很好的解释。 这是一个令人震惊的video关于这个问题! 关于这个漏洞的严重性:是的,这确实是严重的。 它让攻击者了解应用程序的机器密钥。 因此,他可以做一些非常不想要的事情。 在应用程序的机器密钥的刺激下,攻击者可以解密authenticationcookie。 更糟的是,他可以用任何用户的名字来生成authenticationcookie 。 因此,他可以在网站上出现任何人。 该应用程序无法区分你或黑客谁产生身份validationcookie与你自己的名字。 它也可以让他解密(也生成) 会话cookie ,虽然这不像以前那样危险。 不太严重:他可以解密encryption的ViewState页面。 (如果您使用ViewState存储有信心的数据,那么不应该这样做!) 非常令人意想不到 :凭借机器密钥的知识,攻击者可以从您的Web应用程序下载任何任意文件,甚至那些通常无法下载的文件! (包括Web.Config等) 这里有一些我没有解决的问题,但有助于提高Web应用程序的安全性。 您可以使用受保护的configuration来encryption敏感数据 使用HTTP仅Cookie 防止DoS攻击 现在,我们来关注这个问题。 Scott Guthrie在他的博客上发表了一篇关于它的文章 ScottGu的关于漏洞的FAQ博客文章 ScottGu关于漏洞的更新 微软有一个关于它的安全公告 了解漏洞 有关该漏洞的其他信息 解决scheme 启用customErrors并创build一个所有错误都redirect到的错误页面。 是的, 即使是404s 。 (ScottGu说,区分404s和500s对于这种攻击是必不可less的。)另外,在你的Application_Error或Error.aspx放置一些随机延迟的代码。 (生成一个随机数字,并使用Thread.Sleep睡了这么长时间。)这将使攻击者无法确定您的服务器上发生了什么。 有些人build议切换回3DES。 从理论上说,如果你不使用AES,你不会遇到AES实现中的安全弱点。 事实certificate,这是不build议的 […]

内容安全政策如何运作?

我在开发者控制台中遇到了一堆错误: 拒绝评估一个string 拒绝执行内联脚本,因为它违反了以下内容安全策略指令 拒绝加载脚本 拒绝加载样式表 这是关于什么的? 内容安全政策如何运作? 如何使用Content-Security-Policy HTTP标头? 具体来说,如何… …允许多个来源? …使用不同的指令? …使用多个指令? 处理端口? …处理不同的协议? …允许file://协议? …使用内联样式,脚本和标签<style>和<script> ? …允许eval() ? 最后: 'self'究竟是什么意思?

如何防止Firebase中的重复用户属性?

我正在使用FirebaseSimpleLogin来创build用户并处理身份validation。 当我通过$createUser()方法尝试创build一个简单login的新用户时,如果电子邮件地址已被使用,则firebase将不会创build该用户。 不过,我也使用$set()将我创build的用户保存到我的user.uid ,然后创build它们,并使用user.uid作为键。 当试图写入数据库时​​,即使用户名不唯一,firebase也会保存logging,因为只需简单login就可以使用电子邮件和密码。 那么我怎样才能validation一个用户名是唯一的,当它不被用作用户对象的关键? 我正在创build像这样的新用户: $scope.createUser = function() { $scope.auth.$createUser('trinker@gmail.com', 'password').then(function(user, err) { if (!err) { ref.child('users/' + user.uid).set({ email: user.email, username: user.username }); console.log("success!"); }else{ console.log(err.message); } }); } 而我的用户对象如下所示: { "users" : { "simplelogin:28" : { "email" : "trinker@gmail.com", "username" : "jtrinker" }, "simplelogin:30" : { "email" : "test@gmail.com", "username" : […]