Month: July 2010

跨层的API不好重用

这是老生常谈。但有时候你在争论时有可能一时间举不出任何例子,所以这里就写一个例子来阐述这个简单的道理。 比如说,网页上某表单的输入校验中引用了Session中的对象,在Servlet环境中这没问题;但有一天,客户要求提供一个Web Service,实现这个表单相同的功能,那就没办法重用这段校验代码,因为Web Service里找不到也不需要这个Session对象。 深入一点,可以说:     每个API都有个核心逻辑,这个逻辑的性质决定了它应处的层次;如果这个API引用该层次的上一层(比如Service引用了Session),那这个API就没办法重用;但如果它引用的是下一层(比如Service引用了DAO),那它的重用性就不受影响。

[POI-HSSF] 例示Logical Row/Column 和 Physical Row/Column 的区别

HSSF是处理Excel的API. 在这个API的语境中,Row/Column 有 "Logical" 和 "Physical" 的区别。 Logical和Physical分别是什么意思? 我不敢望文生义,去网上搜又搜不到,最后只好自己测试一下。 你看了下面的测试结果,就知道这两个东西的区别了: totallyEmpty.xls (全空的Excel) get Physical NumberOfRows: 0 get Logical FirstRowNum: 0 get Logical LastRowNum: 0 —-Let’s walk through the physical rows: 没有东西可遍历 —-Let’s walk through the logical rows: 没有东西可遍历 excelPath: row_2_4_6.xls (1、3、5行为空,2、4、6不空,1-based) get Physical NumberOfRows: 3 get Logical FirstRowNum: 0 get Logical LastRowNum: 5 —-Let’s walk …

[POI-HSSF] 例示Logical Row/Column 和 Physical Row/Column 的区别 Read More »

Skipfish是免费的网页扫描工具中最好的

毕竟是Google出的,果然不差,比Nikto要强大的多,推荐使用! FYI,这里可以下载到编译好、可在Windows上直接运行的版本:   http://www.shortinfosec.net/2010/03/compiling-latest-skipfish-for-windows.html 使用方法: skipfish -h

Tamper Data 确实很不错

在攻击的时候,如果你要提交一个表单,它可以先弹出一个对话框,然后让你增删改所有POST的参数,然后再发送POST请求 它还提供了一些常用的攻击字符串,比如 SQL注入、XSS攻击等

黑客攻防技术宝典 — Notes 10 攻击Web服务器

1.服务器配置中的漏洞   a.默认的用户名/密码还留着,比如Tomcat里的 root/root   b.默认的内容,比如Tomcat中的/admin, /example   c.目录List功能没有关闭,可能导致敏感信息泄漏   d.没有禁止PUT/DELETE等危险的HTTP方法 (攻击办法:使用OPTIONS请求头查探服务器所支持的方法) 2.服务器软件的漏洞: 论坛上已报知的软件漏洞,并且管理员一直没打补丁

黑客攻防技术宝典 — Notes 9.6 针对客户端的攻击 — 共用电脑造成的漏洞

常见漏洞有:    1.持久性的Cookie    2.缓存的WEB页中含有敏感信息    3.缓存的历史访问中含敏感信息    4.自动完成 防止攻击:    1.敏感数据不要放在Cookie中    2.敏感页面应禁止缓存    3.URL中不要含敏感信息     4.敏感信息的输入框应禁止自动完成 (autocomplete=off)

黑客攻防技术宝典 — Notes 9.5 针对客户端的攻击 — 会话固定攻击

攻:   1.攻击者匿名访问某个站点,多点几下   2.站点此时已经生成会话,其会话ID被串在URL后面 http://hello.com/hi.jsp?sessionid=xxx (或者放在Cookie里)   3.攻击者把这个URL发给被害人 (或者通过XSS漏洞把Cookie注入到被害者的浏览器里)   4.用户用这个URL登录   5.攻击者在自己家里继续用 http://hello.com/hi.jsp?sessionid=xxx 浏览网站,这时侯他已经以被害人的身份在系统中游荡了 防:   用户登录成功后,系统应生成新会话

黑客攻防技术宝典 — Notes 9.4 针对客户端的攻击 — JSON挟持

攻: 如果网银中的“显示余额”功能是用 Ajax + JSON 做的,就可以按照 XSRF 的方式窃取这个信息.    1.用户登录网银了    2.然后他去一个论坛    3.论坛里有篇文章,其中有人利用XSS漏洞注入了一个脚本         <script>              var script = document.createElement("script");              script.src = "http://…/查看我的余额.json? callback=sendToAttacker";              document.getElelementsByTag("head")[0].appendChild(script);              function sendToAttacker(jsonData){                  //jsonData.余额                  sendToMySite(jsonData.余额)              }                      </script>     4.用户查看这篇文章,中标 ============================================================ 防:   1.能防RF,就能防JSON挟持   2.故意在JSON数据前面弄点乱七八糟的东西,这样就导致 script.scr=查看.json 出错,但浏览器拿到JSON时却不会出错   3.使“查看余额.json”只支持POST

浏览器的同源策略

如果脚本试图向本站(域名、端口相同)发送HTTP请求,浏览器会允许发出这种请求并返回响应 如果脚本试图向他站发送HTTP请求,浏览器仍会允许发出请求,但并不会返回响应 但是,可以通过以下代码绕过这个限制: var s = document.createElement("SCRIPT"); document.getElementsByTagName("HEAD")[0].appendChild(s); s.src="http://xxx.com/someJson.do";

黑客攻防技术宝典 — Notes 9.3 针对客户端的攻击 — 请求伪造 RF

其原理仍是挟持受害人的session,然后利用这个session去做点别的事情 按攻击的发生地点,RF (Request Forgery)可分两种: 1.本站RF (OSRF)        a.已登录的受害人访问本站页面,此页面中有攻击者注入的脚本        b.这个脚本调用 http://本站/转账给攻击者.jsp  由于受害人已登录,这个脚本可以成功执行     Note: 攻击者并非一定要注入脚本。注入图片也可以:             <img src=”http://本站/转账给攻击者.jsp”/> 2.跨站RF (XSRF)        a.已在normal.com登录的受害人访问attacker.com的页面,此页面中有攻击者注入的脚本        b.这个脚本调用 http://normal.com/转账给攻击者.jsp  由于受害人已登录,这个脚本可以成功执行 如何防止: 在表单页面生成一个随机的Token,处理表单时检查一下这个Token是否正确。 如果有害脚本读取这个表单页面,解析出token呢?- 不可能。因为浏览器同源策略不允许ajax脚本读取其他域名的页面。 不能通过HTTP Referer来判断请示是否来自本站,因为这个很容易伪造。