浏览模式: 标准 | 列表 2013年11月的文章

升级nginx应对nginx的URI处理安全限制绕过漏洞安全漏洞(CVE-201...

11月20日,nginx官方更新邮件列表,对外通报Nginx 0.8.41 - 1.5.6 版本存在两类高危漏洞: 

  1. 通过Nginx规则限制后台地址访问IP、数据库等敏感地址访问的网站如果使用受影响版本,可能会造成限制失效。
  2. 网站存在上传功能,攻击者可以上传存在恶意代码的图片、txt、html文件即可向网站植入后门。 

bug的中文译文如下:

Nginx 的安全限制可能会被某些请求给忽略,(cve-2013-4547)。

当我们通过例如下列方式进行 URL 访问限制的时候,如果攻击者使用一些没经过转义的空格字符(无效的 HTTP 协议,但从 Nginx 0.8.41 开始因为考虑兼容性的问题予以支持)那么这个限制可能无效:

location /protected/ {

  deny all;

}

当请求的是 "/foo /../protected/file" 这样的 URL (静态文件,但 foo 后面有一个空格结尾) 或如下的配置:

location ~ \.php$ {

  fastcgi_pass ...

  }

当我们请求 "/file \0.php" 时就会绕过限制。

该问题影响 nginx 0.8.41 - 1.5.6,该问题已经在 Nginx 1.5.7 和 1.4.4 版本中修复。

补丁程序在:http://nginx.org/download/patch.2013.space.txt 

针对以上漏洞信息,附上3种解决方案:

1、升级nginx,如果使用的是lnmp一键安装包则可以非常方便升级:

  • wget soft.vpser.net/lnmp/upgrade_nginx.sh
  • sh upgrade_nginx.sh

然后输入1.4.4版本号后回车等待升级完成即可。

注:不建议升级到目前nginx官方的1.5.7测试版(mainline version),1.4.4为稳定版(stable version),legacy versions为历史稳定版。 

2、临时解决方案 

if ($request_uri ~ " ") {

  return 444;

} 

3、使用百度加速乐(呵呵)

Tags: nginx, bug, cve-2013-4547, mainline version, stable version, legacy versions

CentOS ping: unknown host 解决方法

先检查/etc/sysconfig/network-scripts/ifcfg-eth0配置文件是否正确设置:

  • 参考http://blog.is36.com/add_ip_to_centos_linux_vps/

然后再检查nameserver是否正确设置,#cat /etc/resolv.conf 

  • nameserver 114.114.114.114
  • nameserver 8.8.4.4

继续检查网关与路由表是否正常:# netstat -rn 

  • 若不正常则添加则增加网关(临时,重启后失效):# route add default gw 10.245.75.1
  • 修改/etc/rc.local文件,添加上面这条命令后保存,然后重启网卡或机器后永久生效

这3步操作完成,问题应该解决了。

Tags: centos, ping, unkown host

分享几枚免费的jquery的js调用网址

如果不想把jquery的js文件放在自己的服务器上,网上有调用网址可供使用,依次是新浪、百度、微软、google的,如下:

  • http://lib.sinaapp.com/js/jquery/1.8/jquery.min.js
  • http://libs.baidu.com/jquery/2.0.3/jquery.min.js
  • http://ajax.aspnetcdn.com/ajax/jQuery/jquery-2.0.3.min.js
  • http://ajax.googleapis.com/ajax/libs/jquery/2.0.3/jquery.min.js

其中2.0.3版是目前最新的jquery版本,2013-07-03发布的。

在复杂的网络环境中,如果仅使用其中一个js调用网址,则有时因为网络原因导致整个页面加载缓慢甚至失败,如果采取第一个首选,如果加载失败js就会加载第二个地址,则比较好解决这个问题:

  • <script type="text/javascript" src="http://libs.baidu.com/jquery/2.0.3/jquery.min.js"></script>
  • <script type="text/javascript">!window.jQuery && document.write('<script src=http://ajax.aspnetcdn.com/ajax/jQuery/jquery-2.0.3.min.js><\/script>');</script>

Tags: jquery

Mysql清空表(truncate)与删除表中数据(delete)的区别

因为某基于wordpress搭建的博客长久未除草,某天升级的时候发现已经被插入了几万条垃圾留言,如果一条条删除那可真是累人的活。遂考虑直接进入mysql直接清空表或者删除表中数据。

本文记录一下这2种操作模式的区别,目标对象是表wp_comments,里面的所有留言均是垃圾留言,均可删除。然后便有了以下2种方式(进入mysql操作界面后):

  1. truncate table wp_comments;
  2. delete from wp_comments;

其中truncate操作中的table可以省略。这两者都是将wp_comments表中数据清空,不过也是有区别的,如下:

  • truncate是整体删除(速度较快), delete是逐条删除(速度较慢)。
  • truncate不写服务器log,delete写服务器log,也就是truncate效率比delete高的原因。
  • truncate不激活trigger(触发器),但是会重置Identity(标识列、自增字段),相当于自增列会被置为初始值,又重新从1开始记录,而不是接着原来的ID数。而delete删除以后,Identity依旧是接着被删除的最近的那一条记录ID加1后进行记录。
  • 如果只需删除表中的部分记录,只能使用DELETE语句配合where条件。 DELETE FROM wp_comments WHERE……

全文完。

Tags: mysql, truncate, delete

时代互联手机站二次因MYSQL出错爆路径

为了快速浏览某域名是否被注册或者是whois信息,我会选择“时代互联手机站”,也就是www.times.mobi。今天浏览时代互联手机站打开http://www.times.mobi/domain/whois.php?chrDomain=baidu.com想查看baidu的whois信息,结果又一次报错如下:

Warning: mysql_pconnect() [function.mysql-pconnect]: Access denied for user 'nownetcn'@'10.0.61.137' (using password: YES) in /liusra2/now.cn/web/wap/conf/db.inc.php on line 5

Warning: mysql_select_db(): supplied argument is not a valid MySQL-Link resource in /liusra2/now.cn/web/wap/conf/db.inc.php on line 6

Warning: mysql_query(): supplied argument is not a valid MySQL-Link resource in /liusra2/now.cn/web/www.git/api/whois/whoisclass.inc.php on line 39

Access denied for user 'nownetcn'@'10.0.61.137' (using password: YES)SELECT * FROM WhoisCache WHERE Domain='baidu.com'


140325查询某域名又报错——太多的mysql连接

Warning: mysql_pconnect() [function.mysql-pconnect]: Too many connections in /liusra2/now.cn/web/mobile/conf/db.inc.php on line 5

Warning: mysql_select_db(): supplied argument is not a valid MySQL-Link resource in /liusra2/now.cn/web/mobile/conf/db.inc.php on line 6

Warning: mysql_query(): supplied argument is not a valid MySQL-Link resource in /liusra2/now.cn/web/www.git/api/whois/whoisclass.inc.php on line 39

Too many connectionsSELECT * FROM WhoisCache WHERE Domain='is36.com'

Tags: 时代互联手机站, mysql

Windows下命令行创建一个固定大小的文件

在Linux下可以通过dd命令创建一个固定大小的文件,而在windows下也同样可以,不过命令就不是dd了。

  1. 比如在Windows系统中瞬间生成一个100M的文件,如下操作:
  2. 进入命令提示符,然后输入fsutil file createnew test.txt 104857600
  3. 之后就会在当前命令提示符所在工作目录下生成了一个100M的test.txt文件了

其中104857600=100*1024*1024字节(Byte)

Tags: windows, 固定大小文件