备忘,查了半天:
客户在访问我提供的WebService(预定义,即WSDL模式)的时候,在Linux服务器上运行example的时候是ok的,但是在他的windows开发机上运行失败。
报了俩错:
WARNING是I/O warning : failed to load external entity,
FATAL ERROR是: Fatal error: Uncaught SoapFault exception: [WSDL] SOAP-ERROR: Parsing WSDL:Couldn't load from 'somewhere' in somefileStack trace: #0 somefile: SoapClient->SoapClient('https://tg.qq.c...', Array) #1 {main} thrown in somefile on line
官方文档说requirements是GNOME Xml Library, 就是libxml必须高于2.5.4
但是实际上WSDL的SoapClient还必须加载cURL模块,如果服务端是https,则还需要加载openssl模块
在windows下就是需要php_curl.dll和php_openssl.dll, curl同时依赖于libeay32.dll, ssleay32.dll, openssl依赖于libeay32.dll
Recently in LJAMP Category
闲的无聊看自己的access log, 发现几条好玩的记录:
61.143.61.81 - - [18/May/2010:04:37:04 +0800] "GET /cert/bazs.cert HTTP/1.0" 404 212 "-" "Mozilla/4.0"
222.81.81.128 - - [21/May/2010:13:26:05 +0800] "GET /cert/bazs.cert HTTP/1.0" 404 212 "-" "Mozilla/4.0"
202.101.104.125 - - [22/May/2010:07:46:02 +0800] "GET /cert/bazs.cert HTTP/1.0" 404 212 "-" "Mozilla/4.0"
cert/bazs.cert 是宫刑部的爬虫么?
============华丽的分割线============
63.220.4.250 - - [23/May/2010:00:20:51 +0800] "GET /include/dialog/zhmnselect_soft_post.php HTTP/1.1" 404 237 "-" "Mozilla/4.0"
63.220.4.250 - - [23/May/2010:00:20:51 +0800] "GET /include/dialog/select_soft_post.php HTTP/1.1" 404 233 "-" "Mozilla/4.0"
select_soft_post.php 是dedeCMS5.5中的文件, 貌似是有个页面变量未初始化的bug...
============终于是个大陆的爬虫了============
218.65.59.6 - - [23/May/2010:04:17:17 +0800] "GET /pgjxupfile.htm HTTP/1.1" 404 212 "-" "Mozilla/4.0"
218.65.59.6 - - [23/May/2010:04:17:18 +0800] "GET /upfile.htm HTTP/1.1" 404 208 "-" "Mozilla/4.0"
218.65.59.6 - - [23/May/2010:04:17:18 +0800] "GET /upfile.htm HTTP/1.1" 404 208 "-" "Mozilla/4.0"
218.65.59.6 - - [23/May/2010:04:17:18 +0800] "GET /cvqwupfile_adpic.asp HTTP/1.1" 404 218 "-" "Mozilla/4.0"
218.65.59.6 - - [23/May/2010:04:17:19 +0800] "GET /upfile_adpic.asp HTTP/1.1" 404 214 "-" "Mozilla/4.0"
218.65.59.6 - - [23/May/2010:04:17:19 +0800] "GET /upfile_adpic.asp HTTP/1.1" 404 214 "-" "Mozilla/4.0"
218.65.59.6 - - [23/May/2010:04:17:19 +0800] "GET /edyzupfile_article.asp HTTP/1.1" 404 220 "-" "Mozilla/4.0"
218.65.59.6 - - [23/May/2010:04:17:20 +0800] "GET /upfile_article.asp HTTP/1.1" 404 216 "-" "Mozilla/4.0"
218.65.59.6 - - [23/May/2010:04:17:20 +0800] "GET /upfile_article.asp HTTP/1.1" 404 216 "-" "Mozilla/4.0"
218.65.59.6 - - [23/May/2010:04:17:20 +0800] "GET /uzafupfile_flash.asp HTTP/1.1" 404 218 "-" "Mozilla/4.0"
218.65.59.6 - - [23/May/2010:04:17:21 +0800] "GET /upfile_flash.asp HTTP/1.1" 404 214 "-" "Mozilla/4.0"
218.65.59.6 - - [23/May/2010:04:17:21 +0800] "GET /upfile_flash.asp HTTP/1.1" 404 214 "-" "Mozilla/4.0"
218.65.59.6 - - [23/May/2010:04:17:21 +0800] "GET /ewpqupfile_photo.asp HTTP/1.1" 404 218 "-" "Mozilla/4.0"
218.65.59.6 - - [23/May/2010:04:17:22 +0800] "GET /upfile_photo.asp HTTP/1.1" 404 214 "-" "Mozilla/4.0"
218.65.59.6 - - [23/May/2010:04:17:22 +0800] "GET /upfile_photo.asp HTTP/1.1" 404 214 "-" "Mozilla/4.0"
218.65.59.6 - - [23/May/2010:04:17:22 +0800] "GET /nrdrupfile_soft.asp HTTP/1.1" 404 217 "-" "Mozilla/4.0"
218.65.59.6 - - [23/May/2010:04:17:23 +0800] "GET /upfile_soft.asp HTTP/1.1" 404 213 "-" "Mozilla/4.0"
218.65.59.6 - - [23/May/2010:04:17:23 +0800] "GET /upfile_soft.asp HTTP/1.1" 404 213 "-" "Mozilla/4.0"
218.65.59.6 - - [23/May/2010:04:17:23 +0800] "GET /kypxupload.asp HTTP/1.1" 404 212 "-" "Mozilla/4.0"
218.65.59.6 - - [23/May/2010:04:17:24 +0800] "GET /upload.asp HTTP/1.1" 404 208 "-" "Mozilla/4.0"
218.65.59.6 - - [23/May/2010:04:17:24 +0800] "GET /upload.asp HTTP/1.1" 404 208 "-" "Mozilla/4.0"
218.65.59.6 - - [23/May/2010:04:17:24 +0800] "GET /axwwupload_Dialog.asp HTTP/1.1" 404 219 "-" "Mozilla/4.0"
218.65.59.6 - - [23/May/2010:04:17:25 +0800] "GET /upload_Dialog.asp HTTP/1.1" 404 215 "-" "Mozilla/4.0"
os: ubuntu 9.04
htags: 5.6.1 (apt-get install global)
运行global-htags(manual)生成html文件时,提示缺少文件
htags: skeleton file '/usr/share/gtags/global.cgi.tmpl' not found.
除了global.cgi.tmpl之外,还缺少bless.sh.tmpl和style.css, 这三个文件没有打包。
详细地址参见: http://cvs.savannah.gnu.org/viewvc/global/global/htags/
而gtags本身已经废弃了,所以需要创建gtags目录
mkdir -p /usr/share/gtags/
wget http://cvs.savannah.gnu.org/viewvc/*checkout*/global/global/htags/global.cgi.tmpl.in
wget http://cvs.savannah.gnu.org/viewvc/*checkout*/global/global/htags/bless.sh.tmpl
wget http://cvs.savannah.gnu.org/viewvc/*checkout*/global/global/htags/style.css
懒得下载的话,自行编译也可以 -_-#!
==========分割线==========
htags页面搜索提示500 International Error
在Apache2的ErrorLog提示Premature End of Script Headers, 解决办法是:
将HTML/cgi-bin/global.cgi第一行的 #! @PERL@ 改成 #!/usr/bin/perl
如果搜索时提示Error: Tag file (GTAGS) not found. 需要检查GPATH, GRTAGS, GSYMS, GTAGS四个文件是否在HTML的同级目录
==========分割线==========
遗憾的是: htags在php方面只支持php4, 未表明支持php5, 似乎是对php的oo没有支持
==========分割线==========
bash history的格式
.bash_history默认是只有操作命令,没有操作时间
abs说跟history相关的有一个$HISTTIMEFORMAT(Bash Ver >= 3.0)
通过设置HISTTIMEFORMAT可以实现操作时间的记录
如果设置了HISTTIMEFORMAT这个变量,history就会记录下命令操作时的timestamp并写入history
给HISTTIMEFORMAT赋值会使执行history自动格式化出时间
HISTTIMEFORMAT仅仅用于history显示,记录到文件的始终是timestamp
HISTTIMEFORMAT的格式参照man strftime, ubuntu需要装manpages-dev,centos貌似都带
history不实时保存, 容量和多控制台操作保存问题
以下内容扔bashrc还是profile看个人习惯了, 记得export就好
shopt -s histappend
PROMPT_COMMAND='history -a'
清除.bash_history
暴力的方法是: history -c
不暴力的方法是: 先vim fakefile, 进去之后:vsp .bash_history, 保存了也看不到vim在操作.bash_history
至于.bash_history的最后修改时间,也不是没有办法,再说谁在意呢?
统计No.10
history | awk '{CMD[$2]++ ;count++ ;}END {for (a in CMD) print CMD[a] " " CMD[a]/count*100 "% " a;}' | grep -v "./" | column -c3 -s " " -t | sort -nr | nl | head -n 10
Companion.JS@IE ~= Firebug@Firefox
安装Companion.JS之前需要安装Microsoft Script Debugger
Microsoft Script Debugger for XP , 2k, 2k3, NT下载地址
eclipse的vim插件有:
免费的VimPlugin和Vrapper,收费的viPlugin
VimPlugin需要gvim的支持, 但是使用的时候发现gvim loading非常的慢,而且貌似只能启用一个vim like编辑窗口, 非常的不好用不稳定, eclipse3.5死了好多次
Vrapper比较的不错,但是貌似不支持command line? %s替换都不能,不过command提示在编辑器的下方,比viPlugin在窗口的最下方,感觉好很多。
Vrapper和VimPlugin默认都是网络安装, Vrapper网络安装的时候会提示There are no categorized items, 需要点击取消Group items by category才能显示
viPlugin很好用, 很赞, 没有网络安装...破解的话写入Xq@a*4到/PATH_TO_ECLIPSE_ROOT/viPlugin.license即可
PuTTYgen下载地址: Putty Download Page
生成一对公钥私钥,保存
将公钥导入到目标主机的~/.ssh/authorized_keys
点击Options的Connection
Data中填入用户名
ssh/Auth中Browse私钥
确定保存
再次登录即可
==========
禁止publickey 方式登录
Disable login using public key in SSH
==========
其实,SecureCRT更好用更专业,但是需要破解...除了exe本身不自带sftp功能之外,对我而言,pietty和SecureCRT真没什么差别,pietty貌似更简单更好用
啥叫DDOS? 某同学在内网测试并发2000个视频请求导致内网无法访问就是DDOS...
slowloris的流量消耗相比洪水DDOS来说低了不少,但是有点出乎我意料的少, retry5秒 10k并发才200Kbits/s的均速, 难怪通过Tor主机也能攻击, 我用slowloris测试攻击内网的的Dell1950纯属浪费, 或许应该找几个真实的生产服务器试试slowloris的效果?
curl看了几个有名的站,不是IIS+squid就是Nginx,后面还负载均衡..., 这年头谁用lone Apache啊...
===============================
It basically uses a concept of keeping an HTTP session alive indefinitely (or as long as possible) and repeating that process a few hundred times
rfc2616上没有说是header上做手脚怎么样怎么样的,一贯遵循rfc的IIS,我人肉telnet模拟了一下slowloris的发包,发了个X-a:b 之后再怎么CRLF也拿不到数据了, 也没有发现IIS会主动断掉或者怎么样的, 果然是搞不清IIS的实现...这或许是闭源的好处? 有时候看看IIS的实现也是个不错的事情(1, 2)
下面是解决办法:
Apache HTTP DoS tool mitigation
Mitigating the Slowloris HTTP DoS Attack
其实slowloris的这个方法有点老了, 大概在2000年就有人用了? 当然这个攻击的技术含量没法跟人家低速洪水攻击10cent的路由器比。
Multiple HTTP Server Low Bandwidth Denial of Service (slowloris.pl)
下载地址在这里
攻击原理:
攻击方先发送一个http header:
GET / HTTP/1.1\r\n
Host: Target host\r\n
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Trident/4.0; .NET CLR 1.1.4322; .NET CLR 2.0.503l3; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; MSOffice 12)\r\n
Content-Length: 42\r\n
结果就少了一个\r\n, Apache说: 我等!
攻击方再发一坨X-a: b\r\n
Apache已经找不到人生的目标了,继续等...,
攻击方不停的新建连接,等到Apache连接数耗尽,目标达到
受影响(affects)的httpd:
Apache 1.x/2.x, dhttpd, GoAhead WebServer, Squid, others...?
不受影响(Not affects)的httpd:
IIS6.0,IIS7.0, lighty, others...?
Slowloris有几个很重要的基本参数:
tcp connection timeout:默认5秒
re-try timeout:默认100秒
connections:1000
Multithreading:Enabled
剩下的就是perldoc ./slowloris.pl的事情了,没装perldoc直接去看文件末尾也能看懂
结果:成功!
结果:有效果,不满意,平均访问5次只有1次被拒绝
结果:有进步,平均访问3次只有1次能正常
结果:完全拿不到返回结果了...NagiosNRPE也报错,嘿嘿
结果:强大的squid啊...攻击完全没效果
结果:嘿嘿, 把squid列到affects里面不是没有原因滴, 基本上可以判定完全无法访问
结果: 完全无效,Nginx撑连接果然很强悍, 某人说某web2.0网站因配置出了点错导致Nginx撑了70W连接,木有垮掉
攻击方:
1. 找了个国外的位于Tor匿名网络内主机,但是资源受限, 最多2k并发, 用来攻击Apache
2. Core2 4300@1.80GHZ 双核 + 2GB内存 ubuntu desktop 8.04.2跑10K个connection木有问题,但是20k个就会报out of memory最后segment fault退出, slowloris的攻击能力可能仅限于内存
攻击的时候去访问网页,会一直卡在等待结果的状态,一旦终止攻击脚本,立刻就可以拿到返回结果
相比SYN,Slowloris有一定缺陷,攻击停止的时候会在Apache的AccessLog中突然产生大量连续重复的日志,返回值400 305, 很容易被追踪到。没有修改脚本的话,攻击squid的时候日志中会出现Unsupported method in request 'X-a: b__'
Lighty暂时没测试, 据说即使Nginx受到影响,但是适当的配置timeout num limit_conn limit_per 可以解决掉slowloris。
Apache和squid的生命周期真的已经到尽头了么?
Slowloris blog
Bugzilla@Squid-cache: Squid vulnerable to Dos via partial HTTP requests
SLOWLORIS A NGINX (ATAK TYPU DOS) <-波兰语,英文版在此
Apache vs Nginx : Web Server Performance Deathmatch
Slowloris HTTP DoS工具试用
Slowloris HTTP DoS

