Questions tagged «security»

与应用程序安全性和对软件的攻击有关的主题。请不要单独使用此标签,否则会造成歧义。如果您的问题与特定的编程问题无关,请考虑改为在Information Security SE上提问:https://security.stackexchange.com

4
流星有哪些安全机制?[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 7年前关闭。 改善这个问题 我们都知道,Meteor提供了miniMongo驱动程序,该驱动程序无缝地允许客户端访问持久层(MongoDB)。 如果有任何客户端可以访问持久性API,那么如何保护其应用程序呢? 流星提供了哪些安全机制,应在什么情况下使用它们?

11
保护网站管理员部分的最佳做法是什么?[关闭]
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,使其成为Stack Overflow 的主题。 8年前关闭。 改善这个问题 我想知道人们对确保网站的“管理”部分安全的最佳做法,特别是从身份验证/访问的角度来看。 当然,有一些显而易见的事情,例如使用SSL和记录所有访问权限,但是我想知道人们在这些基本步骤的哪些位置设置了标准。 例如: 您是否仅依靠与普通用户相同的身份验证机制?如果没有,那该怎么办? 您是否在同一“应用程序域”中运行“管理”部分? 您采取什么步骤来使管理部分未被发现?(或者您拒绝整个“模糊”的事情) 到目前为止,答复者的建议包括: 在每个管理员密码检查中引入人为的服务器端暂停,以防止暴力攻击[Developer Art] 使用同一数据库表为用户和管理员使用单独的登录页面(以停止XSRF和会话窃取授予对管理区域的访问权限)[Thief Master] 还考虑将Web服务器本机身份验证添加到管理区域(例如,通过.htaccess) [Thief Master] 在多次失败的管理员登录尝试之后,请考虑阻止用户IP [Thief Master] 管理员登录尝试失败后添加验证码[Thief Master] 为用户和管理员(例如,不要特别对待管理员)提供同样强大的机制(使用上述技术)[Lo'oris] 考虑二级身份验证(例如,客户端证书,智能卡,卡空间等)[JoeGeeky] 仅允许从受信任的IP /域访问,如果可能,将检查添加到基本HTTP管道(例如,通过HttpModules)。[JoeGeeky] [ASP.NET]锁定IPrincipal和Principal(使其不可变且不可枚举)[JoeGeeky] 联邦权利提升-例如,当任何管理员的权限升级时,通过电子邮件发送给其他管理员。 [JoeGeeky] 考虑管理员的细粒度权限-例如,而不是基于角色的权限,而是为每个管理员定义个别操作的权限[JoeGeeky] 限制管理员的创建-例如,管理员不能更改或创建其他管理员帐户。为此,请使用锁定的“超级管理员”客户端。[JoeGeeky] 考虑客户端SSL证书或RSA类型的密钥卡(电子令牌)[Daniel Papasian] 如果使用cookie进行身份验证,则将单独的cookie用于管理页面和普通页面,例如,将admin部分放在不同的域中。[丹尼尔·帕帕斯人] 如果可行,请考虑将管理站点保留在公共互联网之外的专用子网中。[约翰·哈索克] 在网站的管理员/正常使用环境之间移动时,请重新颁发身份验证/会话票证[Richard JP Le Guen]

3
如何限制Firebase数据修改?
Firebase提供数据库后端,以便开发人员可以专注于客户端代码。 因此,如果有人拿了我的firebase uri(例如https://firebaseinstance.firebaseio.com),则在本地进行开发。 然后,他们能否在我的Firebase实例之外创建另一个应用程序,进行注册并进行身份验证以读取我的Firebase应用程序的所有数据?

3
如何用河豚哈希长密码(> 72个字符)
上周,我读了很多有关密码哈希的文章,而Blowfish似乎是目前最好的哈希算法之一(但其中之一),但这不是这个问题的主题! 最多72个字符 河豚只考虑输入的密码中的前72个字符: <?php $password = "Wow. This is a super secret and super, super long password. Let's add some special ch4r4ct3rs a#d everything is fine :)"; $hash = password_hash($password, PASSWORD_BCRYPT); var_dump($password); $input = substr($password, 0, 72); var_dump($input); var_dump(password_verify($input, $hash)); ?> 输出为: string(119) "Wow. This is a super secret and …

11
如何在运行时检查权限而不抛出SecurityException?
我设计了一个函数,该函数可以从SD获取/设置资源,如果从sd中找不到资源,则从Asset获取资源,如果可能的话将资产写回到SD。 此函数可以通过方法调用来检查SD是否已安装并可以访问... boolean bSDisAvalaible = Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED); 我设计的功能可以从一个应用程序(项目)用于另一个应用程序(有或没有android.permission.WRITE_EXTERNAL_STORAGE) 然后,我想在不玩SecurityException的情况下检查当前应用程序是否具有此特定权限。 它是否存在“不错”的方式在运行时查询当前定义的权限?

6
如何保护REST API调用?
我正在开发一个宁静的Web应用程序,该应用程序在后端使用了一些流行的Web框架,例如(rails,sinatra,flask,express.js)。理想情况下,我想使用Backbone.js开发客户端。如何仅让我的javascript客户端与这些API调用进行交互?我不希望这些API调用是公开的,而不是通过curl浏览器上的链接输入或仅通过输入链接即可调用。


5
SSL和中间人的误解
我已经阅读了与该问题有关的大量文档,但仍然无法将所有内容整理在一起,因此我想提出几个问题。 首先,我将以我理解的方式简要描述身份验证过程,因为在这方面我可能会误会:客户端启动连接,服务器使用公钥,一些元数据和数字签名的组合来响应服务器的连接。受信任的权威。然后,客户端将决定是否信任服务器,并使用公共密钥对某些随机会话密钥进行加密并将其发送回去。只能使用存储在服务器上的私钥来解密此会话密钥。服务器执行此操作,然后HTTPS会话开始。 因此,如果我在上面是正确的,问题是在这种情况下中间人攻击如何发生?我的意思是,即使有人用公共密钥拦截了服务器(例如www.server.com)的响应,并且有某种手段使我认为他是www.server.com,他仍然无法解密我的会话密钥没有私钥。 说到相互认证,这是否完全关系到服务器对客户端身份的信心?我的意思是,客户端已经可以确定自己正在与正确的服务器通信,但是现在服务器希望找出谁是客户端,对吗? 最后一个问题是关于相互身份验证的替代方法。如果我在上述情况下充当客户端,如果在建立SSL会话后在HTTP标头中发送登录名/密码怎么办?如我所见,该信息无法被截取,因为连接已被保护,服务器可以依靠它来识别我。我错了吗?与相互身份验证相比,这种方法的缺点是什么(仅安全问题很重要,而实现的复杂性却不重要)?

25
您如何保护软件免于非法发行?[关闭]
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,使其成为Stack Overflow 的主题。 8年前关闭。 改善这个问题 我很好奇您如何保护您的软件免于破解,黑客攻击等。 您是否使用某种序列号检查?硬件按键? 您是否使用任何第三方解决方案? 您如何解决许可问题?(例如,管理浮动许可证) 编辑:我不是在谈论任何开源,而是严格的商业软件发行...

3
如何使用JavaScript读取HttpOnly Cookie
有没有办法用JavaScript读取安全的cookie? 我尝试使用来做到这一点document.cookie,据我在本文中关于安全cookie和HttpOnly标志所看到的,我无法以这种方式访问​​安全cookie。 有人可以建议解决方法吗?

9
密码哈希的非随机盐
更新:我最近从这个问题中学到,在下面的整个讨论中,我(而且我相信其他人也这样做)有点令人困惑:我一直称其为Rainbow表的实际上是一个哈希表。彩虹桌是更复杂的生物,实际上是Hellman哈希链的变体。尽管我相信答案仍然是相同的(因为它不能归结为密码分析),但其中的某些讨论可能有些偏斜。 问题是:“ 什么是彩虹桌?如何使用它们? ” 通常,我总是建议使用加密强度高的随机值作为盐,与哈希函数(例如,密码)配合使用,例如,防止Rainbow Table攻击。 但是,实际上在密码学上盐必须是随机的吗?在这方面,任何唯一值(每个用户唯一,例如userId)是否足够?实际上,这将防止使用单个Rainbow Table破解系统中的所有(或大多数)密码... 但是缺乏熵真的会削弱哈希函数的加密强度吗? 注意,我不是在问为什么使用盐,如何保护它(不需要),使用单个常量哈希(不要)或要使用哪种哈希函数。 只是盐是否需要熵。 到目前为止,感谢所有人提供的答案,但我想重点介绍一下我不太熟悉的领域。对密码分析的主要影响-如果有人从密码数学PoV中获得一些输入,我将不胜感激。 另外,如果还没有考虑其他向量,那也是很好的输入(请参阅多个系统上的@Dave Sherohman点)。 除此之外,如果您有任何理论,想法或最佳实践,请提供证明,攻击场景或经验证据作为支持。甚至是可以接受折衷的合理考虑...我对这个问题的最佳实践(B资本P大写)很熟悉,我想证明这实际上提供了什么价值。 编辑:这里有一些非常好的答案,但是我认为正如@Dave所说的,归结于Rainbow Tables的常见用户名...以及可能不太常见的名称。但是,如果我的用户名是全局唯一的怎么办?对于我的系统而言,不一定是唯一的,但对于每个用户而言,例如,电子邮件地址。 没有动力为单个用户建立RT(正如@Dave所强调的那样,salt不会保密),并且这仍然可以防止群集。唯一的问题是,我在不同的站点上可能拥有相同的电子邮件和密码-但无论如何,萨尔特不会阻止它。 因此,可以归结为密码分析-是否需要熵?(我目前的想法是,从密码分析的角度来看这不是必需的,但是从其他实际原因出发。)

6
SSL和TLS之间的区别
根据维基百科:http : //en.wikipedia.org/wiki/Transport_Layer_Security 似乎TLS替代了SSL,但是大多数网站仍在使用SSL吗?
89 security  ssl 


5
生成API密钥的最佳方法
因此,现在有许多不同的服务,例如Google API,Twitter API,Facebook API等。 每个服务都有一个API密钥,例如: AIzaSyClzfrOzB818x55FASHvX4JuGQciR9lv7q 所有密钥的长度和包含的字符都不同,我想知道生成API密钥的最佳方法是什么? 我不是在要求特定的语言,而只是在创建密钥的一般方法,是否应该加密用户应用程序的详细信息,散列或随机字符串的散列等。我们是否应该担心散列算法(MSD,SHA1,bcrypt)等? 编辑: 我已经和几个朋友(电子邮件/推特)进行了交流,他们建议只使用带有破折号的GUID。 不过,这对我来说似乎有点不客气,希望能得到更多的想法。
89 security  api-key 

3
如何保护RESTful Web服务?
我必须实现安全的RESTful Web服务。我已经使用Google进行了一些研究,但遇到了麻烦。 选项: TLS(HTTPS)+ HTTP基本(pc1oad1etter) HTTP摘要 两足式 OAuth 基于Cookie的方法 客户端证书(Tom Ritter和此处) 使用HMAC签署的请求且寿命有限 还有更多可能的选择要考虑吗?如果是OAuth,那么什么版本?有关系吗 从到目前为止的内容来看,带有承载令牌(没有签名)的OAuth 2.0似乎是不安全的。 我发现了另一篇有关基于REST的身份验证的非常有趣的文章。 保护您的REST API ...正确的方法

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.