小编Jen*_*and的帖子

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

首先,一点背景:我正在为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万
查看次数

空白图像编码为data-uri

我已经构建了一个图像滑块(基于极好的bxSlider),它会在滑入视图之前及时预加载图像.它已经很好用,但我不认为我的解决方案是有效的HTML.

我的技术如下:我生成滑块标记,第一张幻灯片图像像往常一样插入(带有<img src="foo.jpg">),后续图像在数据属性中被引用<img data-orig="bar.jpg">.然后Javascript data-orig -> src在必要时调整更改,触发预加载.

换句话说,我有:

<div class="slider">
    <div><img src="time.jpg" /></div> 
    <div><img src="data:" data-orig="fastelavn.jpg" /></div> 
    <div><img src="data:" data-orig="pels_strik.jpg" /></div> 
    <div><img src="data:" data-orig="fashion.jpg" /></div> 
</div>
Run Code Online (Sandbox Code Playgroud)

为了避免空src=""属性(在某些浏览器对性能有害),我插入了有效插入空白图像作为占位符.src="data:"

问题是,我似乎无法在文档中找到data-URI来说明这是否是一个有效的数据URI.我基本上想要解析为空白/透明图像的最小数据URI,因此浏览器可以立即解析src并继续(没有错误或网络请求).也许src="data:image/gif;base64,"会更好?

html5 web-standards data-uri

67
推荐指数
7
解决办法
6万
查看次数

ASP.NET身份验证登录和使用浏览器后退按钮注销

我正在寻找一个解决方案,供用户使用浏览器的后退按钮,一旦注销就导航到上一页.

我在asp.net中构建了一个Web应用程序,并使用自定义成员资格提供程序进行身份验证和授权.一切正常,除非用户点击退出链接退出应用程序并重定向到默认封面页,如果用户点击浏览器上的BACK BUTTON,它实际上会回到原来的状态.数据仍将显示.

当然,他们无法在该页面上做任何事情,点击任何链接,他们将再次重定向到登录页面.但是显示这些信息会让很多用户感到困惑.

我只是想知道是否有任何方式我可以清除浏览器的历史记录,因此使用不能返回,或者当他们点击后退按钮并让他们重定向到登录页面.

谢谢

asp.net asp.net-membership back-button

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

包含/内部条件的PHP行为

如果我将一个includerequire语句放在一个求值的条件中false,那么PHP解释器是否会完全跳过包含文件,还是会加载它以防万一?

一个例子是:

if ($some_user_var) {
    require 'this.php';
} else {
    //do stuff
}
Run Code Online (Sandbox Code Playgroud)

我读到了某个地方,require无论条件如何,翻译都将包含在内,但include不会.如果是这种情况,只需切换requireinclude可能意味着由于I/O减少和解析开销而导致的免费加速.

如果我正在运行像eAccelerator这样的预处理器,它可能会有所不同,但我们假设我没有.

php performance conditional include

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

您更喜欢Web开发的O/S,为什么?

在O/S选择方面,我认为自己相当通用.我两年前一直使用DOS/Windows PC,两年前将我的主笔记本电脑换成了Mac,并且在为我的Comp.Sci学习时使用了多种版本的Unix/Linux/BSD.学位.

然而,当我正在努力改善我的开发环境时,我开始怀疑我是否会更好地为具有不同O /​​ S风格的PC废弃Macbook(以支持不同的工具和IDE) .

你更喜欢(网络)开发的O/S,为什么?(更喜欢在多个平台上拥有实际编码经验的人的答案)

(注意:我知道这个问题讨论客户端与服务器O/S - 我感兴趣的是整个开发环境,而不仅限于'Windows人群')

operating-system development-environment

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

Hive ParseException - 无法识别'end''string'附近的输入

尝试从现有DynamoDB表创建Hive表时出现以下错误:

NoViableAltException(88@[])
at org.apache.hadoop.hive.ql.parse.HiveParser_IdentifiersParser.identifier(HiveParser_IdentifiersParser.java:9123)
at org.apache.hadoop.hive.ql.parse.HiveParser.identifier(HiveParser.java:30750)
...more stack trace...
FAILED: ParseException line 1:77 cannot recognize input near 'end' 'string' ',' in column specification
Run Code Online (Sandbox Code Playgroud)

查询看起来像这样(简化以保护无辜者):

CREATE EXTERNAL TABLE moveProjects (cid string, end string, category string)
STORED BY 'org.apache.hadoop.hive.dynamodb.DynamoDBStorageHandler'
TBLPROPERTIES ("dynamodb.table.name" = "Projects",
    "dynamodb.column.mapping" = "cid:cid,end:end,category:category");
Run Code Online (Sandbox Code Playgroud)

基本上,我正在尝试创建一个包含ProjectsDynamoDB表内容的Hive表,但是create语句会从Hive/Hadoop中抛出一个解析错误.

hadoop hive mapreduce bigdata amazon-dynamodb

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

登录:背景详细信息

登录网站时会发生什么?

我知道存储cookie和一些信息(什么信息?)被发送到服务器......但也许更详细一些?

authentication login

8
推荐指数
3
解决办法
1278
查看次数

散列中'character'和'octet'之间的区别

我看到术语"八位"在文学弹出约随机数的散列,它似乎是"性格"的代名词,虽然一种模式的话是如何使用的.

这让我相信两者之间存在正式的区别.如果有人能够告诉我它是什么,我会很感激.

(请不要,关于八进制字符代码或八进制(基数8)数字的讲座;我在谈论名词 '八位字节',而不是形容词)

编辑:事实证明,我正在寻找的词是"八位字节".

hash character salt character-encoding octal

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

没有PHP/Web开发人员应该使用哪些工具?

有很多用于PHP开发的IDE,但我很好奇所有其他出色的小工具和应用程序以及人们每天使用的网站,以使PHP开发变得更容易.

php development-environment

6
推荐指数
3
解决办法
1652
查看次数

jQuery:如何为`$ .ajax启用`timeout`({dataType:'jsonp'...`?有什么解决方案吗?

jQuery的:如何启用timeout$.ajax({dataType:'jsonp'...?有什么解决方案吗?http://jsfiddle.net/laukstein/2wcpU/4

$.ajax({
    type:"GET",
    url:'http://lab.laukstein.com/ajax-seo/.json',
    dataType:'jsonp',
    timeout:200, // Not working with dataType:'jsonp'
    success:function(data){$('#content').html(data.content);},
    error:function(request,status,error){$('#content').html('request failed');}
});
Run Code Online (Sandbox Code Playgroud)

我不喜欢使用一些插件,比如http://code.google.com/p/jquery-jsonp.

ajax jquery jsonp timeout

6
推荐指数
1
解决办法
4476
查看次数