Month: 五月 2014

用 Nginx 限制模块减轻 DDoS 攻击

方法一:
防ddos攻击
Sysctl 修改

 

加入如下文本

 

优化Linux内核参数

 

在末尾增加如下文本

 

 

 

 

方法二:
Nginx 内核带有限制并发和速率模块,我们可以用这个模块来缓和 VPS 的 Load。
我们需要 Nginx 的:
limit_zone
语法:limit_zone zone_name $variable memory_max_size
环境:http
limit_conn
语法:limit_conn zone_name max_clients_per_ip
环境:http, server, location
limit_rate (可选)
语法:limit_rate speed
环境:http, server, location, if in location
例子:

 
总结:
1、总速度可以去到 200KB/秒左右,一个连接可以去到 100KB,两个就 200KB(数学题)
2、如果你在下载, 又打开网页就,会返回 503 “Service unavailable”,因为太多连接
3、缓解 DDoS 还得靠那几个 timeout 的部分
重要提醒:
1、限制模块是不能防止 DDoS,它是用来减小 Load
2、真正的方法应该是,找出那个攻击者 IP,再用 iptables 封掉它
3、非必要时,不要用这个限制模块,它会给你的网站带来不便

各种防范WEB攻击的方法 , web是如此脆弱….

事实上,WEB应用是很脆弱的。因为这种应用的灵活性很大,用户输入的自由度也很高,所以对于WEB应用的恶意攻击也比较容易。
本文对常见的16种WEB攻击,给出了部分解决方案。
1. SQL注入(SQL Injection)
对于固定的SQL语句,一般在应用程序层不做处理,推荐添加一个包装类,把这些固定的SQL操作控制起来。
而对于动态生成的SQL语句,就需要对用户的输入进行处理,一般的处理是把【’】转换成【“】 。
如:
abc”def”ghi’jkl’mno →abc”def”ghi’’jkl’’mno
2. 跨站点脚本攻击(XSS,Cross Site Scripting)
如果用户输入,URL参数在页面上表示时,必须对特殊文字进行过滤处理。
2-1 如果用户输入和URL参数中含有下列敏感文字,则删除 之:
Script  Object Embed Applet
2-2 如果用户输入和URL参数中含有下列敏感文字,则转换 之:
&    →    &
<    →    &lt;
>    →    &gt;
“     →    &quot;
‘      →    &#39;
3. 操作系统命令注入(OS Command Injection)
要尽量避免执行系统命令,如果非使用不可的话,要对以下的用户输入或者参数做处理:
| ! & `      命令执行总要使用的字符
“ ‘            字符串的区分字符
/ –            命令参数指定时使用的字符
“. / ¥       目录指定时使用的字符
< >          文件操作是使用的字符
$             环境变量指定时使用的字符
( { [ ] } )   命令间的区分字符
4. 换行字符注入(Line Feed Code Injection)
在用户的输入信息中,检查是否不包含【0x0d】【0x0a】 这种换行的输入。
5. LDAP注入(LDAP Injection)
在LDAP使用的场合,要检查用户输入信息中,是否不包含下列LDAP的保留字:
(    )     *    ¥    NULL
6. Xpath注入(XPath Injection)
在XPath使用的场合,要检查用户输入信息中,是否不包含下列Xpath的保留字:
<    >    “    ‘    &
7. SSI注入(SSI Injection)
检查用户输入中,是否不包含SSI相关的危险关键字。
8. 目录遍历(Directory Traversal)
检查用户输入中,是否不包含访问文件系统的特殊文字【/】 和【\】 。
9. 强制浏览(Forced Browsing)
这种攻击的防止比较复杂,一般的策略是:
验证请求是否是从合法的页面发送而来的,一般是检查请求的Referer。
用户授权控制,认证认可
对于静态资源来说,WEB程序是无法防止这种强制浏览攻击的,只有通过设置中间件(如WEB服务器)来防止:
对公开化网站目录的设定(比如在站点目录下禁止显示文件列表)
在URL中指定目录的时候,必须提供index文件(如index.html等)
对于下载文件的存放位置,要特别谨慎的设置
10. 跨站点请求伪装(Cross Site Request Forgery)
明确页面的操作流程,对于不符合操作流程而来的请求进行过滤。
11. 不正确的文件和目录分配(Invalid Allocation of Files and Directories)
不公开的配置文件,备份文件,数据文件等,不要在站点的公共目录(WebRoot或者www/htdocs)下存放
WEB应用程序使用的库文件,不要再站点的公共目录下存放。
适合在公共目录下存放的资源如下所示:
/var/www/htdocs/
Img/
css/
data/
index.html
12. 不正确的错误处理(Invalid Error Handling)
一定要进行错误处理,错误处理的消息要显示为用户可理解的内容,不要把中间件(WEB服务器)的错误消息显示出来。
13. 不必要的信息(Unnecessary Information)
比如在用户登陆时,提示的这样的错误信息【用户密码不正确】,从侧面就说明了系统中存在一个叫做【userid】的用户。这就为恶意攻击者提供了情报。
所以,在处理系统显示的消息是,点到为止,不能暴露多余的用户细节。
14. 后门和调试选项(Backdoor & Debug Option)
避免特殊的密码输入和认证策略
指定调试选项是,调试选项和程序的参数都可以改变和查看
要做出测试专用的页面
对于程序后门,可以通过代码复查力度强化来进行防止。
而对于调试选择,要统一开发标准,使用统一的调试开关。
15. 客户端注释(Client Side Comment)
对于WEB应用来说,客户端可以通过浏览器直接看到页面的代码。发送到浏览器的代码中,可以开发者的注释。对于恶意攻击者来说,这些注释信息会暴露出WEB应用的很多细节。
比如说下面所说的注释就应该引起关注:
对于请求参数的注释
Javascript的内部逻辑的注释
注释外的Javascript内部逻辑和URL请求
对应策略如下:
对于代码的注释,事先要有统一的代码规范
尽量使用服务器端得注释标签,如JSP的【<%– –%>】,这样的注释内容不会发送到客户端。
16. 缓冲区溢出(Buffer Over Flow)
如果用户输入中包含了超过服务器缓冲区大小的输入,很可能会导致服务器存储不足,甚至导致服务器停机。
对策如下:
一定要检查用户输入的大小
文件上传是,对于上传文件的大小进行检查和限制。

国内各大互联网公司技术站点

阿里系列(18)

1、阿里巴巴中国站用户体验设计部UED

2、淘宝网UED官方博客

3、支付宝用户体验部UED

4、支付宝官方博客

5、阿里巴巴国际站UED团队

6、淘宝良无限(无名良品)用户体验团队博客UED

7、淘宝一淘用户体验中心UX

8、阿里集团数据平台官方博客

9、阿里巴巴集团数据库技术团队

10、淘宝网综合业务平台团队博客

11、淘宝JAVA中间件团队博客

12、淘宝搜索技术博客

13、支付宝中间件团队

14、天猫UED

15、淘宝核心系统团队RDC

16、阿里 RDS Blog

17、淘测试

18、量子恒道官方博客

腾讯系列(13)

1、MacQQ的项目团队 IBlog

2、财付通设计中心 UID

3、QQ邮箱博客

4、QQ客户端团队博客

5、腾讯用户研究与体验设计中心 CDC

6、腾讯Web前端 Alloy 团队 Blog

7、腾讯微信博客

8、腾讯游戏官方设计团队TGideas

9、QQ游戏设计中心GDC

10、腾讯移动互联网设计团队MXD

11、腾讯电商用户设计体验部ECD

12、腾讯社交用户体验设计部ISUX

13、腾讯大讲堂

百度系列(3)

1、百度泛用户体验部UUX

2、百度无线用户体验部MUX

3、百度商业用户体验部UED

搜狐系列(3)

1、搜狐移动门户中心用户体验团队MUED

2、搜狐畅游视觉设计中心团队VC

3、搜狐焦点用户体验设计UED

新浪系列(2)

1、新浪微博用户体验设计中心UDC

2、新浪UED

360(2)

1、奇虎360公司应用开发部Web前端

2、360UXC用户体验设计中心

其他(8)

1、携程旅行前端开发团队UED

2、人人网FED

3、搜狗设计团队UED博客

4、网易用户体验设计中心UEDC

5、迅雷用户体验设计中心CUED

6、19楼UED

7、5173用户体验设计团队

8、爱词霸UED团队

这里只是记录一下~~~~

 

php实现贝叶斯算法(Naive Bayes)

首先为了再次避免家里的thinkpad跟上次一样回潮发毛了 , 我这半年第二次打开它..=.=#, 然后发神经了 , 突然临时就尝试实现了这么一个算法 . 由于这台笔记本没有php环境 , 代码在editplus写了近一小时,写出来后 , 放到自己博客空间执行 , 居然一次测试通过 ! 囧~~~~ .然后写了一个多小时备注 , 囧~~~~~ .
我就发出来给大家批评吧 , 看看我这代码是不是有坑…..

另外一个非常重要的内容就是: php不适合做贝叶斯算法计算 , 随着你的样本数据增加 php脚本内存会溢出的.

建议用c等编译语言实现

给wp添加统计连接

在以下路径:wp-content\themes\twentyten(你的模板)里面footer.php文件里,将代码添加在最后面的</body></html>前面

iostat命令说明