Tag: 安全

随机数在范围使用PHP

有没有办法根据最小和最大生成一个随机数? 例如,如果min是1,最多20,它应该产生1到20之间的任何数字,包括1和20?

这黑客试图做什么?

如果您search: http://www.google.co.uk/search?q=0x57414954464F522044454C4159202730303A30303A313527&hl=en&start=30&sa=N 你会看到很多例子,试图沿着下面的黑客行为: 1) declare @q varchar(8000) select @q = 0x57414954464F522044454C4159202730303A30303A313527 exec(@q) — 它究竟在做什么? 它试图在哪个数据库? 你知道有关这方面的任何build议吗?

如何在RESTful应用程序中防止CSRF?

跨站点请求伪造(CSRF)通常通过以下方法之一进行阻止: 检查引用 – RESTful但不可靠 将令牌插入表单并将令牌存储在服务器会话中 – 不是真正的RESTful 神秘的一次性URIs – 与令牌相同的原因不是RESTful 手动为这个请求发送密码(不是与HTTPauthentication一起使用的caching密码) – RESTful但不方便 我的想法是使用用户秘密,一个神秘但静态的表单id和JavaScript来生成令牌。 <form method="POST" action="/someresource" id="7099879082361234103"> <input type="hidden" name="token" value="generateToken(…)"> … </form> GET /usersecret/john_doe由来自经过validation的用户的JavaScript获取。 回应: OK 89070135420357234586534346这个秘密在概念上是静态的,但可以每天/每小时更改…以提高安全性。 这是唯一的保密的事情。 阅读隐藏的(但静态为所有用户!)formsID与JavaScript,与用户密码一起处理: generateToken(7099879082361234103, 89070135420357234586534346) 将表单连同生成的令牌一起发送到服务器。 由于服务器知道用户密码和表单ID,因此可以在发送之前运行与客户端相同的generateToken函数,并比较两个结果。 只有当两个值相等时,动作才会被授权。 这种方法有什么问题,尽pipe它没有JavaScript不起作用。 附录: 无状态的CSRF保护

在生产环境中部署debugging符号(pdb文件)的风险是什么?

我有一个应用程序loggingexception痕迹,我希望这些堆栈跟踪在生产环境中包含文件名和行号。 我想出了如何部署带有程序集的debugging符号,但是在研究这个问题的过程中,我遇到了这个问题 ,这意味着在生产环境中包含pdb文件并不是一个好主意。 接受的答案评论说:“…debugging信息可以泄露敏感数据,并成为一个攻击媒介,取决于你的应用程序是什么。 那么可能会暴露什么样的敏感数据呢? debugging符号如何被用来危害应用程序? 我对技术细节很好奇,但是我真正想要的是评估包含任何给定应用程序和生产环境的debugging符号风险的实用方法。 或者换句话说:可能发生的最坏的事情是什么? 编辑:后续问题/澄清 所以根据目前所有人的答案,似乎这个问题可以简化一点.NET应用程序。 从迈克尔·马多克斯(Michael Maddox)的回答中 , 约翰·罗宾斯(John Robbins)的这篇博客引起了我的注意: .NET PDB只包含两条​​信息,源文件名和它们的行以及本地variables名称。 所有其他信息已经在.NET元数据中,因此不需要在PDB文件中复制相同的信息。 对我来说,这里重申了其他人对Reflector的评论,其含义是真正的问题是访问组件。 一旦确定了,关于PDB的唯一决定是你是否在意暴露文件名,行号和局部variables名(假设你没有向最终用户展示堆栈跟踪)。 还是我过分简化了这个太多了?

stream浪者默认情况下不安全?

编辑2 :TL; DR: 2013年答案是肯定的,但是这个缺陷已经被修正了 按照vagrantup.com上的“入门指南”,我似乎最终得到了一个虚拟机,它接受了2222端口上的SSH连接,这样任何人都可以访问我的虚拟机,并使用默认凭据(用户名=密码= vagrant或vagrant_insecure_private_key)。 这是真的? 如果是,为什么它不被认为是一个严重的安全漏洞? 如果我将敏感数据复制到虚拟机中,该怎么办? 编辑 :对于那些认为互联网上的任何人能够读取您的来源和执行您的虚拟机上的任意代码并不是那么糟糕,我推荐阅读这个博客文章“打破”部分http://blog.ontoillogical。 COM /博客/ 2012/10月31日/磨合和-外的stream浪汉/ 简而言之:按预期运行Vagrant也可以让任何人进入你的主机/开发机器(例如,通过使用恶意的git post-commit hook)。

java.security.InvalidAlgorithmParameterException:在Linux上,trustAnchors参数必须是非空的,或者为什么默认信任库是空的

当你的谷歌这个exception: java.security.InvalidAlgorithmParameterException: the trustAnchors parameter must be non-empty ,多个结果出现。 但是没有确切的解决办法,只能猜测。 问题出现了(至less在我的情况下),当我尝试使用通过SSL打开连接。 它可以在我的Windows机器上正常工作,但是当我将它部署到Linux机器(安装sun的jre)时,会失败,出现上述exception。 问题是由于某种原因JRE的默认信任库是空的(大小只有32字节,而在Windows上是80kb)。 当我把我的jre/lib/security/cacerts文件从windows复制到linux时,它工作正常。 问题是 – 为什么linux jre有一个空的信任存储? 请注意,这发生在一个Amazon EC2实例,AMI Linux,所以这可能是由于一些亚马逊政策(我认为Java是预先安装的,但我不确定)

任何真实世界使用的“代码访问安全性”是什么?

警告: 自从问这个问题以来,.Net和.Net内核的较新版本已经删除和/或更改了“代码访问安全性”(CAS)。 原问题: 我正在为70-536 .NET框架 – 应用程序开发基础考试进行学习 ,因为我一直在编程.NET多年,这不应该很难! 然而,我不得不学习“代码访问安全性”(CAS),因为我从来没有需要使用或configuration它,我想知道是否有其他人已经发现它的真实生活中的用法? 请提供您何时使用CAS的例子,它是解决scheme的一部分,而不是问题的一部分。 (到目前为止,其他所有东西都与我在.NET编程年代所做的任务有一些关系) 相关问题: 为什么要使用CAS(代码访问安全性)? 除了微软使用它之外,这个例子很less有真实的例子。 任何人真的使用代码访问安全来保护他们的程序集和/或方法? 什么是.NET中的代码访问安全性 – 很好地定义了CAS,但没有给出实例。 。 NET代码访问安全性:有用还是过于复杂? 目前为止的结果。 CAS在托pipe第三方代码时非常有用。 例如,一个networking托pipe公司可以使用它来阻止客户的Asp.net代码破坏服务器。 (当.NET用作VBA的替代品时,Office也使用它) 到目前为止,在Microsoft应用程序之外使用的唯一详细示例是: 我最近做的一个项目有类似的东西:允许用户上传一个库,并testing它的性能(“谁制造最好的algorithm”)。 不用说,我们在那里需要大量的CAS。 中国科学院似乎对获得JITDCauthentication是有用的,就像美国国防部,但是我不知道CAS是否有任何实际价值,或者如果只是盒子滴答作响。 (如果您需要绕过使用CAS的主机,并且您有机器上的pipe理员权限,则可以将您的程序集放入GAC中。) outlook未来, .net 4中的CAS稍微复杂一些 。 至less它看起来像新的微软考试将不会有包括中科院的“基础”考试。 我不知道它是否会进入新的Winforms / WPF考试。

什么是API密钥?

这几天我几乎在所有的跨服务应用程序中都看到了这个词。 API密钥究竟是什么,它有什么用途? 另外,公钥和私钥之间的区别是什么?

将JsonRequestBehavior设置为AllowGet时,可以披露什么“敏感信息”

当我returning Json (使用内置的MVC JsonResult helper )时,每次从浏览器的地址栏中testing一个新的URL ,我都得到了相同的旧错误: 此请求已被阻止,因为在GET request使用此信息时,敏感信息可能会泄露给第三方网站。 要允许GET requests ,请将JsonRequestBehavior设置为AllowGet 。 而不是咕噜在承认和火焰小提琴做一个职位请求,这一次,我想知道到底什么是一个GET请求公开POST请求不?

如何散列密码

嘿,我想在手机上存储密码的散列,但我不知道该怎么做。 我似乎只能findencryption方法。 散列密码的最佳方法是什么? 谢谢