Month: June 2010

黑客攻防技术宝典 — Notes 2 避开客户端控件

可攻击的常见漏洞有:   1.Hidden 表单域   2.Cookie (用Paros之类的代理服务器可以拦截请求并修改Cookie值)   3.Session-ID   4.URL参数   5.服务器为了防止攻击,可能会对上述值进行HASH/加密。但攻击者可以想办法找出服务器使用的Hash/加密算法,比如有的服务器会用简单的Base64编码   6.绕开javascript校验和ActiveX的操作   7.反编译Applet 或 Flash 防御招术:    1.尽量不要把敏感数据传到客户端。比如说“价格”,总是可以从数据库里拿的,没必要传到客户端    2.服务端总是要去校验    3.当服务端发现攻击时,应该记下日志,有必要的情况下还要通知管理员,并且冻结用户的账户等等。

十大网站漏洞扫描器

原贴: http://sectools.org/web-scanners.html Nikto : A more comprehensive web scanner Paros proxy : A web application vulnerability assessment proxy WebScarab : A framework for analyzing applications that communicate using the HTTP and HTTPS protocols  (只是帮助记录HTTP报文信息,并非真正的漏洞扫描) WebInspect : A Powerful Web Application Scanner (非免费) Whisker/libwhisker : Rain.Forest.Puppy’s CGI vulnerability scanner and library (被Nikto集成了) Burpsuite : An integrated …

十大网站漏洞扫描器 Read More »

黑客攻防技术宝典 — Notes 1 解析网站找出漏洞

攻击的第一步就是: 枚举网站功能及其特征,然后通过分析找出漏洞 列出网站的所有功能   可以先以常规方式浏览网站一些URL。在这些URL的基础上,利用爬虫将其扩充,以达到穷尽网站功能的目标。常用爬虫工具有:Burp Spider、WebScarab和Paros 找出隐藏的内容   隐藏的内容可以访问,但其URL并没有通过链接暴露出来。这些功能很有可能是漏洞。   查找隐藏内容的办法:      1.有些爬虫可以自动用一些常用的URL来试探,比如 /admin, /account.      2.自已做一些分析,比如,如果已发现addDocument.do这样的链接,那可能就会有removeDocument.do,如果这个removeDocument.do没有权限控制的话,那我们就可以用游客身份删掉一些东西。      3.用Google搜搜。比如 site:www.test.com      4.观察该网站开发者所发的技术贴子,找出一些蛛丝马迹。有些开发者会把自己的名字留在CSS/JAVASCRIPT/HTML注释里      5.在URL中加一些常用的参数,或者改变一些布尔参数的值,比如 debug=true 找出网站的技术特征    找到这些特征,看看是否已经有众人所知的漏洞,比如 Tomcat某版本存在List漏洞    具体办法:       1.Response头中的 Server信息(服务器可能会有意伪造这个东西,这时可以用Httprint找出真相)       2.根据文件扩展名确定开发语言:如asp, jsp,py       3.故意搞个404错误,可能可以看出对方的服务器软件是什么       4.Session ID. 比如jsessionid=xxx 就表明对方用的是JAVA       5.如果能看出对方使用的开源组件也不错       6.有些参数名可能就是底层所用技术的关键词,比如 orderBy

高性能网站建设指南 — 笔记– 14.工具

YSlow for Firebug: 直接给出优化建议 IBM Page Detailer: 按下载先后顺序给出各个HTTP 请求的细节 (我试了一下,好像用不了,不知道为什么) Firebug中的Net选项卡: 功能与上面一样。我试了一下,好像很不准确。

如何使 jquery ui tabs 的每个tab代表一个非Ajax的链接

你有没有这样朴素的需求?   用一个Tab Group, 里面放两个tab, 并且每个tab代表一个链接;   切换tab时,不通过AJAX获得内容,而是重新渲染整个页面;   渲染后的页面里还是能看到这个Tab Group,只不过现在高亮的tab是另一个了。   如何用jquery ui的tabs实现这个东西?  我们一步一步来。     A.页面展现时应该高亮哪个tab? 让服务器端传一个参数过来吧。Tab 0对应的Servlet把这个参数值置为0, Tab 1则置为1.    $("#theTabs").tabs("select", ${tabIndex});      B. 分别给两个 tab指定链接 $("#theTabs").tabs( "url" , 0 , "servlet0.do" ); $("#theTabs").tabs( "url" , 1 , "servlet1.do" );   C.为Tab绑定select事件,使之被选中时触发URL跳转。请注意其中的 if(url)这个判断 $("#theTabs").tabs({ select: function(event, ui) { var url = …

如何使 jquery ui tabs 的每个tab代表一个非Ajax的链接 Read More »

[Freemarker] Freemarker 处理XML时的 null-safe问题(例示)

设XML有三层, grandfather.father.son, 其中son元素包含了一个字符串,比如 <son>John<son>. 如果 father是必填,而son都非必填,那么我们如何安全地显示 son 的值? 答: ${grandfather.father.son[0]!} 如果father和son都不是必填的呢? 答: <#if grandfather.father[0] ??> ${grandfather.father.son[0]!} </#if>

高性能网站建设指南 — 笔记– 11.精简javascript

减少javascript中的空格或字符,缩小javascript代码的字节数,减少传输时间。 你可以 do minification(去掉字符及注释),也可以do obfuscation(缩短函数名和变量名的长度)。不过后者会导致完全不可读的代码,并且有可能出错。 用什么工具?   JSMin 或 Dojo Compressor gzip压缩后还要精简吗?   Yes. gzip压缩可以起到主要作用,但精简能够进一步减小文件大小 css可以精简吗?   可以。但可能没什么用,因为CSS里的空格和注释一般比较少。

高性能网站建设指南 — 笔记– 10.把script/css放到独立文件中

script/css可以内联在HTML里,也可以放到外部文件中,哪种效率更高? 按理来说内联的效率应该更高。因为它没有新增HTTP请求。 但是,它也有个缺点,就是浏览器不会去缓存内联了的script/css 所以总的来说,还是用外部文件这种方式比较划算 话又说回来,首页可能是个例外。作为站长,你可能会希望首页的速度比其他页面要快,这时候可以考虑采用内联方案。