本文同步自我的博客园:http://hustskyking.cnblogs.com
该文章是本人两天的学习笔记,共享出来,跟大家交流。知识比较零散,但是对有一定 JS 基础的人来说,每个小知识都有助于开阔你的 Hack 视角。首先声明,本文只是 XSS 攻击的冰山一角,读者自行深入研究。
一、XSS学习提要
http://qdemo.sinaapp.com/ppt/xss/ 三水清 简单介绍 xss
http://drops.wooyun.org/tips/689 乌云 xss与字符编码
http://www.wooyun.org/whitehats/心伤的瘦子 系列教程
http://ha.ckers.org/xss.html 反射性XSS详细分析和解释
http://html5sec.org/ 各种技巧 ★★★★★
http://www.80sec.com/ 一些不错的文章
二、XSS攻击要点
注意:这些插入和修改都是为了避开浏览器自身的过滤,或者开发者认为的过滤。
1. document.write innerHTML eval setTimeout/setInterval等等都是很多XSS攻击注入的入口。
2. html实体编码
> "alert("Barret李靖")".replace(/./g, function(s){
return "" + s.charCodeAt(0)
/*.toString(16) 转换成16进制也可以滴*/
+ ";"
});
> "alert(1)"
3. 如果过滤 html 实体编码,可以改成URL编码
> encodeURIComponent("")
> "%26%23"
4. 利用 HTML5 新增字符
: 冒号

 换行
XSS
5. JS进制转换
> "\74\163\143\162\151\160\164\76\141\154\145\162\164\50\61\51\74\57\163\143\162\151\160\164\76"
> ""
6. Base64转换
> base64("");
> PHNjcmlwdD5hbGVydCgxKTwvc2NyaXB0Pg==
XSS
7. 浏览器解析非严格性
↓ ↓ ↓ ↓ ↓ ↓
① ② ③ ④ ⑤ ⑥
①中可插入 NUL字符(0x00) ②和④中空格可以使用 tab(0x0B)与换页键(0x0C),②还可以使用 / 替换 ⑤中的"在IE中也可替换成`。
位置 | 代码 | 可能插入或替代的代码
------------|--------------------------|-----------------------
<的右边 | <[here]a href="... | 控制符,空白符,非打印字符
a标签的后门 | | 其他引号
>之前 | | 任意字符
/之前 | ...<[here]/a>| 空白符,控制符
/之后 | ...| 空白符,控制符
>闭合之前 | … | 所有字符
8. 斜杠
在字符串中斜杠(/)可以用于转义字符,比如转义 " 和 ' ,双斜杠(//)可以用来注释。这样可以很轻松的改变之前的语句,注入内容。
9. 空格的处理方式
在解析的时候空格被转移成
,注入的时候可以使用 /**/
来替换。
10. 特殊属性
1)srcdoc属性(chrome有效)
2)autofoucus
3)object
11.绕过浏览器过滤(crhome)
?t=">
浏览器会过滤onerror中的代码,所以换种方式注入
?t=">
3. meta标签
Javascript: 协议可能被禁止,可以使用 data:
">
4. css注入
7. 阻止编码
?t=;alert("Barret李靖")
上面可以看到 ";" 被编码了,观察页面编码:
gbxxx系列编码,可以尝试宽字节:
?t=%c0%22alert("Barret李靖")
8. 攻击单行注释
URL对应的param中添加换行符(%0a)或者其他换行符。
?t=%0aalert("Barret李靖")//
// init('id', "%0aalert("Barret李靖")//");
被解析成
// init('id', "
alert("Barret李靖")//");
9. url
url中可以使用很多协议 http:// https:// javascript: vbscript: data:等等,利用这些属性,可以找到很多的空隙。
">XSS
10. Flash跨域注入
这个我不太熟悉,现在网页上Flash用的越来越少了,懒得继续看了。
11. 利用事件
12. 利用标签
四、XSS攻击实质
XSS攻击没太多神奇的地方,就是利用浏览器防御不周到或者开发者代码不健壮,悄悄对页面或者服务器进行攻击。
1. 绕过过滤
URL中的 <
,在DOM XSS中,可以使用 \u003c (unicode编码)表示,不过他有可能被过滤了,最后解析成<
,也可以使用 \x3c (Javascript 16进制编码),>
对应使用 \x3e。这种情况经常在 innerHTML 以及 document.write 中用到。
所谓的过滤包括人工过滤,也包括了浏览器HTML与JavaScript本身的过滤,程序员会在浏览器本身过滤过程中进行一些干扰和修改,这几个流程都给我们提供了很多 xss 攻击的入口。
1) 数据需要过滤,但是未过滤。导致XSS。比如:昵称、个人资料。 2) 业务需求使得数据只能部分过滤,但过滤规则不完善,被绕过后导致XSS。比如:日志、邮件及其它富文本应用。
2. 利用源码中js的解析
比如第二部分提出的第11点,浏览器的拦截
?t=">
这样的插入会被拦截,当你发现源码中有这么一句话的时候:
function parseURL(){
//...
t.replace("WOW", "");
//..
}
便可以修改如上参数:
?t=">alert("Barret李靖")
直接绕过了chrome浏览器对危险代码的防御。
五、学会XSS攻击
1. 寻找可控参数
攻击入口在哪里?一般是有输入的地方,比如URL、表单、交互等。
含参数的URL中找到参数 value 值的输出点,他可能在html中输入,也可能是在javascript中
实验各种字符(< , > " '等),判断是否被过滤,测试方式,手动输入测试
确定可控范围,是否可以使用unicode编码绕过,是否可以使用HTML编码绕过,是否可以使用Javascript进制编码绕过等等
2. 开始注入
注入细节上面都是,基本的思维模式:
3. 修补注入错误
注入后保证没有语法错误,否则代码不会执行,注入了也没用。这里的意思是,你注入的一个参数可能在脚本多处出现,你可以保证一处没语法错误,但是不能保证处处都正确
4. 开搞 测试的时候alert("Barret李靖"),弹出成功再继续其他更邪恶的注入方式。
六、XSS分类
为什么留到后面说。XSS也了解了很多次了,每次都是先从概念触发,感觉没啥意思,什么反射性、DOM型、储存型等等,还不如先去实践下,凭着自己对XSS的理解,多看几个网站的源码,找找乐趣。
存储型和反射型相比,只是多了输入存储、输出取出的过程。简单点说:
反射型是:输入--输出; 存储型是:输入--进入数据库*--取出数据库--输出。
这样一来,大家应该注意到以下差别:
反射型是:绝大部分情况下,输入在哪里,输出就在哪里。 存储型是:输入在A处进入数据库, 而输出则可能出现在其它任何用到数据的地方。
反射型是:输入大部分位于地址栏或来自DOM的某些属性,也会偶尔有数据在请求中(POST类型) 存储型是:输入大部分来自POST/ GET请求,常见于一些保存操作中。
因而我们找存储型的时候,从一个地方输入数据,需要检测很多输出的点,从而可能会在很多点发现存储型XSS。
七、辅助工具
http://ha.ckers.org/xsscalc.html
chrome插件 (xss Encode,百度之)
抓包工具,fiddler4 chales
白名单过滤工具github/js-xss
八、小结
简单小结:
& 号不应该出现在HTML的大部分节点中。
括号<>是不应该出现在标签内的,除非为引号引用。
在ext节点里面,<左尖括号有很大的危害。
引号在标签内可能有危害,具体危害取决于存在的位置,但是在text节点是没有危害的。
。。。
关注漏洞报告平台 Wooyun,多动脑筋,手动 hack。最重要的还是先黑客再红客。
九、参考资料
http://drops.wooyun.org/tips/689
http://drops.wooyun.org/tips/147
http://www.web-tinker.com/article/20468.html
http://www.wooyun.org/whitehats/心伤的瘦子
https://www.owasp.org/index.php/XSS_Filter_Evasion_Cheat_Sheet
你可能感兴趣的:(hack,xss)
ETCD 六 etcd总体架构
wanghaichao1234
etcd etcd 架构 数据库
etcd源码结构etcd项目代码的目录结构:包名用途apiprotobuf定义client/v3客户端sdkcontribraftexample实现etcdctl命令行客户端实现,用于网路的操作etcdutl命令行管理工具,直接操作etcd数据文件。hack基准测试、测试集群、k8s部署、分支管理、证书等pkg实用程序包的集合raftraft实现server.auth角色身份验证server.em
golang-101-hacks(3)——包
_羊羽_
注:本文是对golang-101-hacks中文翻译,原文地址在“Go”中,包分为两种类型:(1)main包:用于生成可执行的二进制文件,main函数是程序的入口点。下面以helllo.go为例:packagemainimport"greet"funcmain(){greet.Greet()}(2)其他类型的包也可以在细分成两类:库文件包:用来生成可以被其他人重用的目标文件。如greet.go这个
2020-04-09奋进的周四
深山含笑空凝峡谷
从小就特别希望和别人不一样。瞪着一双很乖的眼睛目不转睛看老师,嘴上不说心里没放下过独特眼光和taste也是从幼年就形成了。要视角不同,创新,玩点别的花样和审美有些概念让自己想起来就会有点兴奋比如life-hacker/量化自我/digitalnormad/自由编舞师/读书社群leader/coach/创作者自我的形成/个体的觉醒/作为创作者,一定要有信心——我做的创作的,即使有人做过类似的了,我做
Prism 教程
yang_B621
Prism IOC
http://t.csdnimg.cn/VXSSvhttps://blog.csdn.net/u010476739/article/details/119341731Prism-随笔分类-Hello——寻梦者!-博客园(cnblogs.com)C#IoC学习笔记-缥缈的尘埃-博客园(cnblogs.com)WPF_SchuylerEX的博客-CSDN博客
Apache POI用法
JH3073
apache
一、ApachePOI是什么ApachePOI是用Java编写的免费开源的跨平台的JavaAPI,ApachePOI提供API给Java程序对MicrosoftOffice格式档案读和写的功能,其中使用最多的就是使用POI操作Excel文件。二、POI结构HSSF-提供读写MicrosoftExcelXLS格式档案的功能XSSF-提供读写MicrosoftExcelOOXMLXLSX格式档案的功能
从零开始学习黑客技术,看这一篇就够了
网络安全-旭师兄
学习 web安全 安全 开源 网络
黑客,对于很多人来说,是一个神秘的代名词,加之影视作品夸张的艺术表现,使得黑客这个本来只专注于技术的群体,散发出亦正亦邪的神秘色彩。黑客源自英文hacker一词,最初曾指热心于计算机技术、水平高超的电脑高手,尤其是程序设计人员,逐渐区分为白帽、灰帽、黑帽等。其中,白帽黑客被称为道德黑客。他们不会非法入侵用户网络,而是通过一系列测试检查公司安全系统的效率;黑帽黑客恰好与白帽黑客相反,他们往往为了个人
最新网络安全(黑客)——自学篇
黑客小雨
web安全 安全
*需要的小伙伴关注我第一阶段:基础操作入门,学习基础知识入门的第一步是学习一些当下主流的安全工具课程并配套基础原理的书籍,一般来说这个过程在1个月左右比较合适。在这个阶段,你已经对网络安全有了基本的了解。如果你学完了第一步,相信你已经在理论上明白了上面是sql注入,什么是xss攻击,对burp、msf、cs等安全工具也掌握了基础操作。这个时候最重要的就是开始打地基!所谓的“打地基”其实就是系统化的
代码中TODO关键字和标签的使用案例以及其解释
RelievedCy
python TODO
代码中TODO关键字和标签的使用案例以及其解释关键字标签案例解释TODO需要完成的任务#TODO:实现计算列表平均数的函数标记需要完成的任务,方便后续开发FIXME需要修复的问题#FIXME:该函数有时返回不正确的结果标记需要修复的问题,方便后续开发HACK非正式的解决方案#HACK:该代码可行,但可能存在更优方案标记使用非正式解决方案的代码,方便后续优化或修改XXX需要注意的地方#XXX:该函数
微信小程序入门【三】:实现简单登录退出和个人信息页面
山岫
微信小程序 微信小程序 小程序
效果图预览这个框很是惆怅,但是真机调试没出现过,这个bug下次再解决吧。这次说说登录。效果图:附上代码:home.wxml-->-->-->-->Hi游客{{userInfo.nickName}}-->退出登录@技术支持:江阔jk921home.wxss/*pages/scroll/scroll.wxss*/.top{width:100%;height:400rpx;background-colo
Web应用防火墙
Smile灬凉城666
网络安全 WAF 安全
一、定义与目的WAF是一种特殊类型的防火墙,专门设计用于监视、过滤和阻挡进出Web应用的HTTP流量。其主要目的是保护Web应用免受如XSS(跨站脚本)、SQL注入、会话劫持等网络攻击。二、工作原理WAF工作在应用层,即OSI模型的第七层。它通过对HTTP/HTTPS请求进行解析、协议检测、攻击识别和恶意行为阻断等步骤来保护Web应用。具体来说,WAF会解析进入Web应用的HTTP/HTTPS请求
如何识别和防范跨站脚本攻击(XSS)?
盼盼盼
xss 安全 网络
识别和防范跨站脚本攻击(XSS)需要一系列的措施,包括输入验证、输出编码、安全配置和用户教育。以下是一些关键步骤:识别XSS异常行为:观察网站行为是否异常,例如页面上突然出现未经预期的内容或功能。错误消息:检查错误消息中是否包含敏感信息,这可能是由于未经过滤的输入导致的。安全工具:使用浏览器插件或安全扫描工具来检测潜在的XSS漏洞。代码审计:定期进行代码审计,查找可能的安全漏洞,特别是在处理用户输
从零开始学习黑客技术,看这一篇就够了
网络安全-旭师兄
学习 安全 开源 web安全 网络
黑客,对于很多人来说,是一个神秘的代名词,加之影视作品夸张的艺术表现,使得黑客这个本来只专注于技术的群体,散发出亦正亦邪的神秘色彩。黑客源自英文hacker一词,最初曾指热心于计算机技术、水平高超的电脑高手,尤其是程序设计人员,逐渐区分为白帽、灰帽、黑帽等。其中,白帽黑客被称为道德黑客。他们不会非法入侵用户网络,而是通过一系列测试检查公司安全系统的效率;黑帽黑客恰好与白帽黑客相反,他们往往为了个人
hackcon ctf 2018 | pwn wp
fantasy_learner
BOF漏洞点:栈溢出利用过程栈溢出跳转callMeMaybe函数获得flagexpSheSellsSeaShells90流程分析:给出了输入的栈地址有一个栈溢出点没有nx利用过程:根据以上三点,得出可以使用ret2shellcode使用shellcraft生成shellcode利用栈溢出,输入并跳转到shellcodeexpSimpleYetElegent150这道题目做了最久,卡在了能否根据_d
2024年云曦网络安全实验室2024春季学期开学考复现Writeup
2301_82257383
程序员 web安全 android 安全
构造的payloa为http://172.16.17.201:50183/Gentle_sister.php/?my_parameter[]=1可以直接访问也可以Hackbar工具传参。通过使用my_parameter[]=1,相当于是告诉服务器,我们在传递的是一个包含1的数组而非数字或字符串,在这种情况下,$_GET[‘my_parameter’]得到的将是一个数组,而不是一个单一的值。原本脚本
【网络安全】空字节绕过:URL回调+XSS+SQL绕WAF
秋说
网络安全 web安全 xss sql 漏洞挖掘
未经许可,不得转载。文章目录空字节URL回调XSSSQL空字节\0,也称为null字节,是一个值为零的特殊字符。在编程中,通常用来表示字符串的结束。攻击者可以利用null字节注入来绕过一些验证或过滤机制。以下三个漏洞,空字节功不可没。URL回调密码重置功能,发起请求后,邮箱会收到链接。请求包中存在callbackUrl参数:在参数中添加/test,发包后,邮箱中的链接为https://compan
Java Web安全与Spring Config对象实战
福建低调
本文还有配套的精品资源,点击获取简介:本课程深入探讨JavaWeb开发中的安全实践,包括认证与授权、输入验证、CSRF和XSS防护以及SQL注入防御等关键安全措施。同时,介绍SpringSecurity框架的应用,以及Config对象在Spring配置管理中的作用,包括依赖注入和外部化配置。课程还包括实战演练,通过设置安全环境和安全漏洞模拟,帮助开发者提升应用的安全性和故障排查能力。1.Web安全
【网络安全】URL解析器混淆绕过CSP实现XSS
秋说
网络安全 web安全 xss 漏洞挖掘
未经许可,不得转载。文章目录前言正文前言许多流行的静态网站生成器都存在图像CDN功能,它们通过优化网站中的图像来加快页面加载速度。例如:1、OptimizingImages|Next.js利用内置的next/image组件优化图像(nextjs.org)2、NuxtImage:Nuxt应用的图像优化即插即用的图像优化功能,使用内置优化器对图像进行调整(image.nuxt.com)这些工具的目标都
调查了 12,000 名女性开发者发现,女性比男性更懂 Java!
Java架构学习者
华为的中国芯将何庭波这位神秘低调的程序媛推入公众视野。在华为地位堪比任正非的她在谈及“工程师”这一身份时表示,“我觉得工程师本身就是一个很不了的职业,这也是我一生的荣耀和自豪”。理工科行业的性别鄙视链由来已久,“女子本弱”论和对于有色人种的偏见一样扎根于各文化背景下。而放眼当下,年轻一代女性已经为进入科技行业做好了准备。“精英统治下,技能即一切”——程序媛arecoming!近日,HackerRa
XSS和sql注入部分场景测试用例样例
谷隐凡二
测试 xss sql 测试用例
目录1.SQL注入测试用例设计基本SQL注入复杂SQL注入盲注测试2.XSS攻击测试用例设计基本XSS攻击复杂XSS攻击DOM-basedXSS1.SQL注入测试用例设计SQL注入攻击通常通过在输入字段中插入恶意SQL代码,试图操纵数据库查询。设计这些测试用例时,需要涵盖各种常见的SQL注入技术。基本SQL注入用例1:使用单引号:输入:'OR'1'='1预期结果:应拒绝输入并返回错误消息,不应允许
网络安全最新网络安全-SSRF漏洞原理、攻击与防御(1),2024年最新网络安全程序员架构之路该如何继续学习
2401_84265972
程序员 网络安全 学习 面试
如何自学黑客&网络安全黑客零基础入门学习路线&规划初级黑客1、网络安全理论知识(2天)①了解行业相关背景,前景,确定发展方向。②学习网络安全相关法律法规。③网络安全运营的概念。④等保简介、等保规定、流程和规范。(非常重要)2、渗透测试基础(一周)①渗透测试的流程、分类、标准②信息收集技术:主动/被动信息搜集、Nmap工具、GoogleHacking③漏洞扫描、漏洞利用、原理,利用方法、工具(MSF
【网络安全】如何预防xss
不会代码的小徐
web安全 xss 安全
XSS(Cross-SiteScripting,跨站脚本攻击)是一种代码注入攻击。攻击者通过在目标网站注入恶意脚本,使其在用户浏览器中执行,从而窃取用户敏感信息如Cookie和SessionID。CSS在前端已经被用了,为了避免歧义用了XSS作为缩写。XSS的本质是恶意代码与网站正常代码混在一起,浏览器无法分辨它们的可信度,最终导致恶意代码被执行。XSS的危害浏览器无法区分恶意代码和正常代码,它们
ASP.NET Core 入门教学十六 防止常见的Web攻击
充值内卷
asp.net 前端 后端
在ASP.NETCore中,防止常见的Web攻击是非常重要的,以确保应用程序的安全性。以下是一些常见的Web攻击类型及其防范措施:1.跨站脚本攻击(XSS)跨站脚本攻击(XSS)是一种通过在网页中注入恶意脚本来攻击用户的浏览器的技术。为了防止XSS攻击,可以采取以下措施:输入验证:对用户输入进行严格的验证和清理。输出编码:在将用户输入的数据插入到HTML页面中时,进行适当的编码。ASP.NETCo
HtmlSanitizer: 一个保护你的网站免受XSS攻击的.Net开源项目
编程乐趣
xss .net 前端
Html跨站脚本攻击(XSS)是非常常见的,比如博客评论、论坛帖子、社交媒体发布动态等一些用户提交文本的地方,都有可能遭受恶意提交Html代码。为了确保用户提交内容的安全,我们就需要对用户提交内容进行过滤。01项目简介HtmlSanitizer是一个强大的库,它能够审查和清理HTML内容,移除或转义那些可能被用于XSS攻击的标签和属性。这个工具的核心功能是提供一个安全的方式来处理用户提交的HTML
Vue + ElementUI 实现全国各个省份相对应城市的联动选择_vue+elementui 省市区联动
2401_84617681
程序员 前端 面试 学习
打开全栈工匠技能包-1小时轻松掌握SSR两小时精通jq+bs插件开发生产环境下如歌部署Node.js开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】网易内部VUE自定义插件库NPM集成谁说前端不用懂安全,XSS跨站脚本的危害webpack的loader到底是什么样的?两小时带你写一个自己loader:rules="rules"label-width="150px">定
【无标题】XSS安全防护:responseBody (输入流可重复读) 配置
syfjava
RuoYi-Vue-Plus 学习 RuoYi-Vue-Plus
接上文:配置XSS过滤器XXS安全防护:拦截器+注解实现校验-CSDN博客XSS(跨站脚本)攻击是一种网络安全威胁,允许攻击者注入恶意脚本到看似安全的网站。当用户浏览这些被注入恶意代码的网页时,恶意脚本会在用户的浏览器环境中执行,这可能导致多种安全问题,如窃取敏感数据、劫持用户会话等。这些攻击利用了应用程序对用户输入处理不当的问题。预防方法包括输入验证、输出编码等。https://blog.csd
Node.js 入门:中间件与安全性深度解析
Switch616
前端 node.js 中间件 chrome 服务器 架构 前端 前端框架
Node.js入门:中间件与安全性深度解析目录认证与授权使用jsonwebtoken实现JWT身份验证用户注册与登录:认证流程与实践️权限管理:安全访问控制详解️安全性防止SQL注入:参数化查询与ORM的最佳实践防止XSS攻击:用户输入处理与安全防护使用HTTPS和SSL/TLS:加密传输与数据安全⚠️错误处理️全局错误处理:确保应用稳定性的关键异常捕获与日志记录:有效排查问题的核心认证与授权使用
Java12 Excel和Json文件解析
Stringzhua
JavaSE excel json
Excel文件解析:Excel文件解析(EasyExcel框架解析)Excel文件解析(ApachePOl框架解析)(1)Excel文件对象创建:POI《1》创建工作簿对象:XSSFWorkbookworkbook=newXSSFWorkbook();《2》创建工作表对象:XSSFSheetsheet=workbook.createSheet();《3》创建行对象:Rowrow=sheet.cre
【网络安全】Bingbot索引投毒实现储存型XSS
秋说
网络安全 web安全 漏洞挖掘
未经许可,不得转载。文章目录前言Bingbot如何运作正文漏洞步骤前言Bing是由微软开发的搜索引擎,提供网页、视频、图片和地图等多种搜索功能。其目标是通过呈现有条理且相关的搜索结果,帮助用户做出更明智的决策。Bingbot是微软开发的网络爬虫,也被称为蜘蛛或搜索引擎机器人,主要用于探索和索引Bing搜索引擎的网页。自2010年10月推出以来,Bingbot通过外部和内部链接发现新网页,并更新已存
微信小程序手写签名,使用canvas 2d 丝滑连笔,不卡顿
無苼
微信小程序 小程序
最近产品让我写个手写签名,上网百度了一下,基本上快速连笔都很卡,于是自己参考资料重写了一下,体验效果拉满,话不多说上代码。WXML代码重签确认WXSSpage{background-color:#e7e7e7;}.btn{width:100%;display:flex;justify-content:space-around;align-items:center;height:60px;posit
SecurityHeaders:为.Net网站添加安全标头,让Web更加安全、避免攻击!
编程乐趣
.net 安全 前端
网站的安全对于任何一家公司都是非常重要的。为了保证Web安全,其中Http安全标头就是非常重要一个的措施。设定正确的安全头可以增强网站的安全性,因为它们可以帮助防止各种网络攻击,如跨站脚本(XSS)、点击劫持(Clickjacking)和内容类型嗅探(ContentTypeSniffing)等。下面推荐一个开源项目,可以让我们轻松地添加安全相关的HTTP头到网站中。01项目简介NetEscapad
遍历dom 并且存储(将每一层的DOM元素存在数组中)
换个号韩国红果果
JavaScript html
数组从0开始!!
var a=[],i=0;
for(var j=0;j<30;j++){
a[j]=[];//数组里套数组,且第i层存储在第a[i]中
}
function walkDOM(n){
do{
if(n.nodeType!==3)//筛选去除#text类型
a[i].push(n);
//con
Android+Jquery Mobile学习系列(9)-总结和代码分享
白糖_
JQuery Mobile
目录导航
经过一个多月的边学习边练手,学会了Android基于Web开发的毛皮,其实开发过程中用Android原生API不是很多,更多的是HTML/Javascript/Css。
个人觉得基于WebView的Jquery Mobile开发有以下优点:
1、对于刚从Java Web转型过来的同学非常适合,只要懂得HTML开发就可以上手做事。
2、jquerym
impala参考资料
dayutianfei
impala
记录一些有用的Impala资料
1. 入门资料
>>官网翻译:
http://my.oschina.net/weiqingbin/blog?catalog=423691
2. 实用进阶
>>代码&架构分析:
Impala/Hive现状分析与前景展望:http
JAVA 静态变量与非静态变量初始化顺序之新解
周凡杨
java 静态 非静态 顺序
今天和同事争论一问题,关于静态变量与非静态变量的初始化顺序,谁先谁后,最终想整理出来!测试代码:
import java.util.Map;
public class T {
public static T t = new T();
private Map map = new HashMap();
public T(){
System.out.println(&quo
跳出iframe返回外层页面
g21121
iframe
在web开发过程中难免要用到iframe,但当连接超时或跳转到公共页面时就会出现超时页面显示在iframe中,这时我们就需要跳出这个iframe到达一个公共页面去。
首先跳转到一个中间页,这个页面用于判断是否在iframe中,在页面加载的过程中调用如下代码:
<script type="text/javascript">
//<!--
function
JAVA多线程监听JMS、MQ队列
510888780
java多线程
背景:消息队列中有非常多的消息需要处理,并且监听器onMessage()方法中的业务逻辑也相对比较复杂,为了加快队列消息的读取、处理速度。可以通过加快读取速度和加快处理速度来考虑。因此从这两个方面都使用多线程来处理。对于消息处理的业务处理逻辑用线程池来做。对于加快消息监听读取速度可以使用1.使用多个监听器监听一个队列;2.使用一个监听器开启多线程监听。
对于上面提到的方法2使用一个监听器开启多线
第一个SpringMvc例子
布衣凌宇
spring mvc
第一步:导入需要的包;
第二步:配置web.xml文件
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi=
我的spring学习笔记15-容器扩展点之PropertyOverrideConfigurer
aijuans
Spring3
PropertyOverrideConfigurer类似于PropertyPlaceholderConfigurer,但是与后者相比,前者对于bean属性可以有缺省值或者根本没有值。也就是说如果properties文件中没有某个bean属性的内容,那么将使用上下文(配置的xml文件)中相应定义的值。如果properties文件中有bean属性的内容,那么就用properties文件中的值来代替上下
通过XSD验证XML
antlove
xml schema xsd validation SchemaFactory
1. XmlValidation.java
package xml.validation;
import java.io.InputStream;
import javax.xml.XMLConstants;
import javax.xml.transform.stream.StreamSource;
import javax.xml.validation.Schem
文本流与字符集
百合不是茶
PrintWrite()的使用 字符集名字 别名获取
文本数据的输入输出;
输入;数据流,缓冲流
输出;介绍向文本打印格式化的输出PrintWrite();
package 文本流;
import java.io.FileNotFound
ibatis模糊查询sqlmap-mapping-**.xml配置
bijian1013
ibatis
正常我们写ibatis的sqlmap-mapping-*.xml文件时,传入的参数都用##标识,如下所示:
<resultMap id="personInfo" class="com.bijian.study.dto.PersonDTO">
<res
java jvm常用命令工具——jdb命令(The Java Debugger)
bijian1013
java jvm jdb
用来对core文件和正在运行的Java进程进行实时地调试,里面包含了丰富的命令帮助您进行调试,它的功能和Sun studio里面所带的dbx非常相似,但 jdb是专门用来针对Java应用程序的。
现在应该说日常的开发中很少用到JDB了,因为现在的IDE已经帮我们封装好了,如使用ECLI
【Spring框架二】Spring常用注解之Component、Repository、Service和Controller注解
bit1129
controller
在Spring常用注解第一步部分【Spring框架一】Spring常用注解之Autowired和Resource注解(http://bit1129.iteye.com/blog/2114084)中介绍了Autowired和Resource两个注解的功能,它们用于将依赖根据名称或者类型进行自动的注入,这简化了在XML中,依赖注入部分的XML的编写,但是UserDao和UserService两个bea
cxf wsdl2java生成代码super出错,构造函数不匹配
bitray
super
由于过去对于soap协议的cxf接触的不是很多,所以遇到了也是迷糊了一会.后来经过查找资料才得以解决. 初始原因一般是由于jaxws2.2规范和jdk6及以上不兼容导致的.所以要强制降为jaxws2.1进行编译生成.我们需要少量的修改:
我们原来的代码
wsdl2java com.test.xxx -client http://.....
修改后的代
动态页面正文部分中文乱码排障一例
ronin47
公司网站一部分动态页面,早先使用apache+resin的架构运行,考虑到高并发访问下的响应性能问题,在前不久逐步开始用nginx替换掉了apache。 不过随后发现了一个问题,随意进入某一有分页的网页,第一页是正常的(因为静态化过了);点“下一页”,出来的页面两边正常,中间部分的标题、关键字等也正常,唯独每个标题下的正文无法正常显示。 因为有做过系统调整,所以第一反应就是新上
java-54- 调整数组顺序使奇数位于偶数前面
bylijinnan
java
import java.util.Arrays;
import java.util.Random;
import ljn.help.Helper;
public class OddBeforeEven {
/**
* Q 54 调整数组顺序使奇数位于偶数前面
* 输入一个整数数组,调整数组中数字的顺序,使得所有奇数位于数组的前半部分,所有偶数位于数组的后半
从100PV到1亿级PV网站架构演变
cfyme
网站架构
一个网站就像一个人,存在一个从小到大的过程。养一个网站和养一个人一样,不同时期需要不同的方法,不同的方法下有共同的原则。本文结合我自已14年网站人的经历记录一些架构演变中的体会。 1:积累是必不可少的
架构师不是一天练成的。
1999年,我作了一个个人主页,在学校内的虚拟空间,参加了一次主页大赛,几个DREAMWEAVER的页面,几个TABLE作布局,一个DB连接,几行PHP的代码嵌入在HTM
[宇宙时代]宇宙时代的GIS是什么?
comsci
Gis
我们都知道一个事实,在行星内部的时候,因为地理信息的坐标都是相对固定的,所以我们获取一组GIS数据之后,就可以存储到硬盘中,长久使用。。。但是,请注意,这种经验在宇宙时代是不能够被继续使用的
宇宙是一个高维时空
详解create database命令
czmmiao
database
完整命令
CREATE DATABASE mynewdb USER SYS IDENTIFIED BY sys_password USER SYSTEM IDENTIFIED BY system_password LOGFILE GROUP 1 ('/u01/logs/my/redo01a.log','/u02/logs/m
几句不中听却不得不认可的话
datageek
1、人丑就该多读书。
2、你不快乐是因为:你可以像猪一样懒,却无法像只猪一样懒得心安理得。
3、如果你太在意别人的看法,那么你的生活将变成一件裤衩,别人放什么屁,你都得接着。
4、你的问题主要在于:读书不多而买书太多,读书太少又特爱思考,还他妈话痨。
5、与禽兽搏斗的三种结局:(1)、赢了,比禽兽还禽兽。(2)、输了,禽兽不如。(3)、平了,跟禽兽没两样。结论:选择正确的对手很重要。
6
1 14:00 PHP中的“syntax error, unexpected T_PAAMAYIM_NEKUDOTAYIM”错误
dcj3sjt126com
PHP
原文地址:http://www.kafka0102.com/2010/08/281.html
因为需要,今天晚些在本机使用PHP做些测试,PHP脚本依赖了一堆我也不清楚做什么用的库。结果一跑起来,就报出类似下面的错误:“Parse error: syntax error, unexpected T_PAAMAYIM_NEKUDOTAYIM in /home/kafka/test/
xcode6 Auto layout and size classes
dcj3sjt126com
ios
官方GUI
https://developer.apple.com/library/ios/documentation/UserExperience/Conceptual/AutolayoutPG/Introduction/Introduction.html
iOS中使用自动布局(一)
http://www.cocoachina.com/ind
通过PreparedStatement批量执行sql语句【sql语句相同,值不同】
梦见x光
sql 事务 批量执行
比如说:我有一个List需要添加到数据库中,那么我该如何通过PreparedStatement来操作呢?
public void addCustomerByCommit(Connection conn , List<Customer> customerList)
{
String sql = "inseret into customer(id
程序员必知必会----linux常用命令之十【系统相关】
hanqunfeng
Linux常用命令
一.linux快捷键
Ctrl+C : 终止当前命令
Ctrl+S : 暂停屏幕输出
Ctrl+Q : 恢复屏幕输出
Ctrl+U : 删除当前行光标前的所有字符
Ctrl+Z : 挂起当前正在执行的进程
Ctrl+L : 清除终端屏幕,相当于clear
二.终端命令
clear : 清除终端屏幕
reset : 重置视窗,当屏幕编码混乱时使用
time com
NGINX
IXHONG
nginx
pcre 编译安装 nginx
conf/vhost/test.conf
upstream admin {
server 127.0.0.1:8080;
}
server {
listen 80;
&
设计模式--工厂模式
kerryg
设计模式
工厂方式模式分为三种:
1、普通工厂模式:建立一个工厂类,对实现了同一个接口的一些类进行实例的创建。
2、多个工厂方法的模式:就是对普通工厂方法模式的改进,在普通工厂方法模式中,如果传递的字符串出错,则不能正确创建对象,而多个工厂方法模式就是提供多个工厂方法,分别创建对象。
3、静态工厂方法模式:就是将上面的多个工厂方法模式里的方法置为静态,
Spring InitializingBean/init-method和DisposableBean/destroy-method
mx_xiehd
java spring bean xml
1.initializingBean/init-method
实现org.springframework.beans.factory.InitializingBean接口允许一个bean在它的所有必须属性被BeanFactory设置后,来执行初始化的工作,InitialzingBean仅仅指定了一个方法。
通常InitializingBean接口的使用是能够被避免的,(不鼓励使用,因为没有必要
解决Centos下vim粘贴内容格式混乱问题
qindongliang1922
centos vim
有时候,我们在向vim打开的一个xml,或者任意文件中,拷贝粘贴的代码时,格式莫名其毛的就混乱了,然后自己一个个再重新,把格式排列好,非常耗时,而且很不爽,那么有没有办法避免呢? 答案是肯定的,设置下缩进格式就可以了,非常简单: 在用户的根目录下 直接vi ~/.vimrc文件 然后将set pastetoggle=<F9> 写入这个文件中,保存退出,重新登录,
netty大并发请求问题
tianzhihehe
netty
多线程并发使用同一个channel
java.nio.BufferOverflowException: null
at java.nio.HeapByteBuffer.put(HeapByteBuffer.java:183) ~[na:1.7.0_60-ea]
at java.nio.ByteBuffer.put(ByteBuffer.java:832) ~[na:1.7.0_60-ea]
Hadoop NameNode单点问题解决方案之一 AvatarNode
wyz2009107220
NameNode
我们遇到的情况
Hadoop NameNode存在单点问题。这个问题会影响分布式平台24*7运行。先说说我们的情况吧。
我们的团队负责管理一个1200节点的集群(总大小12PB),目前是运行版本为Hadoop 0.20,transaction logs写入一个共享的NFS filer(注:NetApp NFS Filer)。
经常遇到需要中断服务的问题是给hadoop打补丁。 DataNod