标签: security

什么是最好的分布式蛮力对策?

首先,一点背景:我正在为CodeIgniter实现一个auth + auth系统并不是什么秘密,到目前为止我赢了(可以这么说).但是我遇到了一个非常重要的挑战(大多数auth库完全错过了,但我坚持正确处理它):如何智能地处理大规模,分布式,可变用户名的暴力攻击.

我知道所有常用的技巧:

  1. 限制每个IP /主机的失败尝试次数并拒绝违规者访问(例如Fail2Ban) - 由于僵尸网络变得越来越智能,它们不再起作用
  2. 将上述内容与已知的"坏"IP /主机(例如DenyHosts)的黑名单相结合- 它依赖于僵尸网络下降为#1,它们越来越不会
  3. IP /主机白名单与传统的身份验证相结合(对于动态IP用户而言,在大多数网站上都是无用的)
  4. 在N分钟/小时内设置失败尝试次数的站点范围限制,并在此之后限制(暂停)所有登录尝试,持续数分钟/小时(DoS攻击你的问题变为僵尸网络儿童游戏)
  5. 没有登录/密码选项的所有用户的强制性数字签名(公钥证书)或RSA硬件令牌(毫无疑问是坚如磐石的解决方案,但仅适用于封闭的专用服务)
  6. 强制执行的超强密码方案(例如> 25个带有符号的无意义字符 - 再次对临时用户来说太不切实际)
  7. 最后,CAPTCHA(在大多数情况下都可以工作,但对用户来说很烦人,对于一个坚定的,足智多谋的攻击者几乎无用)

现在,这些只是理论上可行的想法.有很多垃圾想法可以打开网站(比如琐碎的DoS攻击).我想要的是更好的东西.更好的是,我的意思是:

  • 它必须安全(+)抵御DoS和暴力攻击,并且不会引入任何新的漏洞,这些漏洞可能会让稍微狡猾的机器人继续在雷达下运行

  • 它必须是自动化的.如果需要人工操作员验证每次登录或监控可疑活动,那么它无法在真实场景中运行

  • 它必须适用于主流网络使用(即可由非程序员执行的高流失率,高流量和开放式注册)

  • 它不会妨碍用户体验到临时用户会感到烦恼或沮丧(并可能放弃网站)

  • 它不能涉及小猫,除非它们真的是非常安全的小猫

(+)'安全',我的意思是至少和偏执的用户保密密码一样安全

所以 - 让我们听听吧!你会怎么做?你知道我没有提到过的最佳实践(哦,请你说)吗?我承认我对自己有所了解(结合3和4的想法),但我会让真正的专家在让自己尴尬之前说话;-)

security authentication brute-force

149
推荐指数
7
解决办法
2万
查看次数

"忘记密码"实施的最佳方式?

我正在寻找实现"忘记密码"功能的最佳方法.

我提出了2个想法:

  1. 当用户点击忘记密码时,用户需要输入用户名,电子邮件以及出生日期或姓氏.然后,具有临时密码的邮件将被发送到用户电子邮件帐户.用户使用临时密码登录并重置其密码.

  2. 类似,但电子邮件中会包含一个链接,让用户重置密码.

或者任何人都可以建议我更好更安全的方式?我也想发送临时密码或链接,强制用户在24小时内重置密码,否则临时密码或链接将无法使用.怎么做?

security authentication passwords forgot-password

149
推荐指数
9
解决办法
9万
查看次数

在什么情况下HTTP_REFERER将为空

我知道可以获得一个空的HTTP_REFERER.在什么情况下会发生这种情况?如果我得到一个空的,它是否总是意味着用户改变了它?获得一个空的一个与获得一个空的一样?在什么情况下我也能得到它?

security http-referer http cross-domain http-headers

149
推荐指数
4
解决办法
10万
查看次数

这个复选框如何重新运行,我该如何使用它?

我最近注册了oneplusone网站https://account.oneplus.net/sign-up,并注意到这个复选框重新开始

复选框recaptcha

它是如何工作的,我如何在我的网站上使用它?比那些神秘的单词/数字要好得多:)

recaptcha网站没有提及任何新的重新收回方法... https://www.google.com/recaptcha/intro/index.html

security recaptcha

149
推荐指数
4
解决办法
7万
查看次数

ASP.NET Identity的默认密码哈希 - 它是如何工作的并且是否安全?

我想知道在MVC 5和ASP.NET Identity Framework附带的UserManager中默认实现的Password Hasher是否足够安全?如果是这样,如果你可以向我解释它是如何工作的?

IPasswordHasher界面如下所示:

public interface IPasswordHasher
{
    string HashPassword(string password);
    PasswordVerificationResult VerifyHashedPassword(string hashedPassword, 
                                                       string providedPassword);
}
Run Code Online (Sandbox Code Playgroud)

正如你所看到的,它不需要盐,但在这个帖子中提到:" Asp.net身份密码哈希 ",它确实在幕后加盐.所以我想知道它是如何做到的?这盐来自何处?

我担心的是盐是静态的,使它非常不安全.

c# asp.net security passwords asp.net-identity

148
推荐指数
5
解决办法
11万
查看次数

为什么这段代码容易受到缓冲区溢出攻击?

int func(char* str)
{
   char buffer[100];
   unsigned short len = strlen(str);

   if(len >= 100)
   {
        return (-1);
   }

   strncpy(buffer,str,strlen(str));
   return 0;
}
Run Code Online (Sandbox Code Playgroud)

此代码容易受到缓冲区溢出攻击,我正在试图找出原因.我认为它与len被宣布为一个short而不是一个int,但我不是很确定.

有任何想法吗?

c security buffer-overflow

148
推荐指数
3
解决办法
2万
查看次数

如何将SecureString转换为System.String?

有关创建以System.String出它不保护你的SecureString的所有预订一边,怎么能做到呢?

如何将普通的System.Security.SecureString转换为System.String?

我相信很多熟悉SecureString的人会回应说,永远不应该将SecureString转换为普通的.NET字符串,因为它会删除所有安全保护. 我知道.但是现在我的程序用普通字符串完成所有操作,我正在尝试增强其安全性,虽然我将使用返回SecureString的API给我,但我并不是想用它来增加我的安全性.

我知道Marshal.SecureStringToBSTR,但我不知道如何取出BSTR并从中制作System.String.

对于那些可能要求知道我为什么要这样做的人,好吧,我正在从用户那里获取密码并将其作为html表单POST提交以将用户登录到网站.所以......这真的必须使用托管的,未加密的缓冲区.如果我甚至可以访问非托管的,未加密的缓冲区,我想我可以在网络流上进行逐字节流写入,并希望这样可以保证密码的安全性.我希望能够回答至少其中一种情况.

.net c# security encryption

147
推荐指数
6
解决办法
9万
查看次数

本地存储可以被认为是安全的吗?

我需要开发一个可以长时间离线运行的Web应用程序.为了使其可行,我无法避免在本地存储中保存敏感数据(个人数据,而不是您只存储散列的数据类型).

我接受这不是推荐的做法,但是我没有做多少选择来保护数据:

  • 使用stanford javascript加密库和AES-256将所有内容整合到本地存储中
  • 用户密码是加密密钥,不存储在设备上
  • 通过ssl从单个受信任服务器提供所有内容(在线时)
  • 使用owasp antisamy项目验证进出服务器上本地存储的所有数据
  • 在appcache的网络部分中,不使用*,而是仅列出与受信任服务器连接所需的URI
  • 通常尝试应用OWASP XSS备忘单中建议的指南

我很欣赏魔鬼经常处于细节之中,并且知道对于本地存储和基于javascript的安全性存在很多怀疑.任何人都可以评论是否有:

  • 上述方法的根本缺陷是什么?
  • 这些缺陷的任何可能的解决方案?
  • 当html 5应用程序必须长时间离线运行时,是否有更好的方法来保护本地存储?

谢谢你的帮助.

security html5 owasp local-storage html5-appcache

147
推荐指数
3
解决办法
9万
查看次数

Google身份验证器可用作公共服务吗?

是否存在在自运行(例如LAMP堆栈)Web应用程序上使用Google身份验证器(双因素身份验证)的公共API ?

security authentication google-oauth

146
推荐指数
6
解决办法
10万
查看次数

Google+ +1小工具如何突破iframe?

不知何故,将鼠标悬停在Google+加一个窗口小部件上可能会引入工具提示类型的交易,该交易明显大于<iframe>其所包含的元素.我已经检查了DOM以确认这一点.*

iframe边界

所以:

  1. 什么?怎么样!?

  2. 如果恶意使用,这不是点击劫持的大好机会吗?(想象一下有人为这些社交小部件做MITM!)

*更新:我看到的是工具提示消息是第二个动态创建的消息iframe.

html browser security iframe google-plus-one

145
推荐指数
1
解决办法
1万
查看次数