0x01 简介
XSS(Cross-site script),跨站脚本,为了避免和CSS混淆,简写为XSS。
XSS两个条件
用户的输入作为html进行显示或直接在JS中进行处理
未对用户的输入进行校验、编码
XSS分类
反射XSS(Reflected XSS,非持久型)
引用Webgoat上图 ,比较清晰。
恶意用户发现xss注入点,构造包含恶意代码的链接,通过一些手段使用户点击链接并请求服务器,服务器返回并在浏览器执行恶意代码(js)。攻击者达到获取相关信息等目的。
反射XSS是一次性的,利用一些社工手段效果惊人,比如垃圾邮件、小广告等。
和反射XSS相同的是,请求都经过Server端,区别在于XSS payload 存储在服务端(文件、DB等)。当用户访问注入XSS的页面,脚本执行。
存储XSS受害范围更大,常见博客、评论等功能点。
DOM(Document object model),JS可操作DOM动态更新文档的内容、结构和样式。
基于DOM的XSS是基于反射XSS的另一种形式。 这两者都是通过发送一个带有反映到浏览器的输入的链接来触发的。
和反射XSS的区别在于,Payload不需要到达服务端,只在客户端处理。
DOM XSS相对比较少见,工作中几乎没遇到过。查了下乌云上漏洞,还是有一些,列举几个供扩展阅读。
中国农业银行主站DOM-XSS
优酷分享iframe播放器页面存在dom xss漏洞
国泰证券某站SQL注入&DOM XSS(泄露客户敏感信息)
0x02 漏洞危害
通过盗取用户cookie实现会话劫持,httponly无效;
js可提交请求,所以通过xss漏洞构造get/post请求完成一些操作,比如修改数据、删除数据、获取信息等。
伪造登录表单,获取用户凭证信息
扩展阅读:https://www.freebuf.com/articles/web/103097.html
XSS蠕虫是一种借助Ajax技术实现对Web应用程序中存在的XSS漏洞进行自动化利用传播的蠕虫病毒,它可以将一些用户数据信息发送给Web应用程序然后再将自身代码传递进入Web应用程序,等到被感染用户访问Web应用程序时,蠕虫自身将又开始进行数据发送感染。
百度空间XSS蠕虫
XSS因为执行JS脚本,危害较大,但是也看具体的漏洞环境,有一些较好的攻击平台可利用(如 BeEF)。
0x03 漏洞检测
常见注入点
搜索框,回显key
输入框,回显用户信息
错误返回,回显用户输入
隐藏html元素,回显用户输入
评论、博客等
其他用户输入可回显的点
注意一点,这里说的输入不单单至用户通过输入框填写的数据,也包含下拉框、选择框等交互的地方,任何从客户端发往服务器的数据如果在服务器回显,都有可能造成xss问题。
常用Payload
列举典型的几个插入点,详细看后文附件。
直接插入script,其他常用的如img、svg,常用js事件函数onload、onclick、onmouseover等
单引号、双引号闭合标签属性,插入js时间函数
’ onload=javascript:alert('xss')
分号阻断,直接写js
;alert('xss')
//background
//background image
//expression
常用工具
商用Web扫描器,如Webinspect、AppScan、AWVS,代码扫描工具,如Fortify、Checkmarx、Coverity都可以覆盖XSS扫描。
商业工具覆盖漏洞广,黑盒工具使用时注意提供完整的流量(请求地址、参数)避免漏扫。
工具扫描,逃避不了的一个问题,误报。
除了Web扫描器,一些XSS平台、XSS fuzzing工具可以利用,详细参考文末链接。
关于绕过
XSS本身就可以写一本书,一方面因为玩的就是Html、JS、浏览器,导致千变万化甚至千奇百怪的Payload,另一方面就是绕过技巧了。
为什么这么多绕过技巧?
说一个遇到的很好玩的故事。一般报告中,XSS通过弹窗做poc,给出修复建议。有一次就遇到一个非常可爱的开发,黑名单过滤了alert关键字。What?这不是跟没做一样么,何况实际利用,一般也不alert弹窗了吧(不排除会弹窗通过社工重定向进行其他利用)。多么可爱的开发。
不闲扯了,列举常见的一些绕过技巧,重在记录思路。详细的绕过可以 RSnake's: "XSS Cheat Sheet",Freebuf也有牛人做了翻译的中文版本,参考文末列表。
// 隔断,绕过关键字
<
http get参数,对特殊字符过滤,使用URL编码绕过,也可以直接URL全编码
%3CIMG%20SRC%3Djavascript%3Aalert%28%27XSS%27%29%3E
html实体编码本身存在的意义是防止与HTML本身语义标记的冲突
html中正常情况只识别:html10进制,html16进制。
回显输出在html中,过滤了script < > / \ http: 等特殊字符
JS提供了四种字符编码的策略:
三个八进制数字,如果数字不够,在前面补零,如a的编码为\141
两个十六进制数字,如果数字不够,在前面补零,如a的编码为\x61
四个十六进制数字,如果数字不够,在前面补零,如a的编码为\u0061
对于一些控制字符,使用特殊的C类型的转义风格,如\n和\r
当输入内容回显在js中,过滤了特殊字符<> ' " & %等
关于编码绕过,可是试试chrome扩展xss encode和JsFuck,非常神器。
当点击链接时,以data协议解析,页面以html/text方式解析,编码为base64,payload还原。
代码相关
涉及html输出、js操作html输出、js跳转的函数,需格外注意。
如下为个人记录的一些关键字,先记录,后续慢慢在补充。
API:innerHTML, $(xx).html()
PHP key: echo print
Java key:System.out.print println
JS: window.location.href location.pathname window.print document.write
0x04 防御
http-only
Cookie在消息头中被设置为HttpOnly,阻止Javascript直接访问cookies,应对XSS盗取cookie进行会话劫持的风险。
严格来说,并不是直接的防护,比较xss还是存在的。不过体现一种纵深防御的概念。
CSP
CSP(Content Security Policy),内容安全策略是一个额外的安全层,用于检测并削弱某些特定类型的攻击,包括跨站脚本 (XSS) 和数据注入攻击等。
实际上的防护原理,和httponly类似,通过制定策略限制外部资源的加载,增加利用难度/成本。
详细可以参考文末链接。
输入校验
不信任外部输入,对外部输入进行校验,如数据类型、长度、语法、业务规则等
优先白名单方式,黑名单容易存在校验不全导致的绕过
遵循开放安全原则,优先考虑业界成熟的过滤库,如Owasp Java Encoder API
偷个懒,直接贴OWASP Prevention Rules
Data Type
Context
Code Sample
Defense
String
HTML Body
UNTRUSTED DATA
HTML Entity Encoding (rule #1).
String
Safe HTML Attributes
Aggressive HTML Entity Encoding (rule #2), Only place untrusted data into a whitelist of safe attributes (listed below), Strictly validate unsafe attributes such as background, id and name.
String
GET Parameter
clickme
URL Encoding (rule #5).
String
Untrusted URL in a SRC or HREF attribute
clickme
Canonicalize input, URL Validation, Safe URL verification, Whitelist http and https URL's only (Avoid the JavaScript Protocol to Open a new Window), Attribute encoder.
String
CSS Value
html Selection
Strict structural validation (rule #4), CSS Hex encoding, Good design of CSS Features.
String
Javascript Variable
Ensure JavaScript variables are quoted, JavaScript Hex Encoding, JavaScript Unicode Encoding, Avoid backslash encoding (\"
or \'
or \\
).
HTML
HTML Body
UNTRUSTED HTML
HTML Validation (JSoup, AntiSamy, HTML Sanitizer...).
String
DOM XSS
你可能感兴趣的:(web安全,安全测试,web安全,xss)
Web安全:Web体系架构存在的安全问题和解决方室
程序员-张师傅
前端 安全 web安全 前端
Web体系架构在提供丰富功能和高效服务的同时,也面临着诸多安全问题。这些问题可能涉及数据泄露、服务中断、系统被控制等多个方面,对企业和个人造成不可估量的损失。以下是对Web体系架构中存在的安全问题及解决方案的详细分析:Web体系架构存在的安全问题注入攻击SQL注入:攻击者通过在输入字段中插入恶意SQL代码,操控后台数据库,窃取、篡改或删除数据。OS命令注入:攻击者通过输入字段插入恶意代码,执行系统
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格式档案的功能
CTF——web方向学习攻略
一则孤庸
CTF 网络安全 CTF
1计算机基础操作系统:熟悉Linux命令,方便使用Kali。网络技术:HCNA、CCNA。编程能力:拔高项,有更好。2web应用HTTP协议:必须掌握web开发框架web安全测试3数据库数据库基本操作SQL语句数据库优化4刷题
学习笔记:FW内容安全概述
TKE_yinian
内容安全概述信息安全概述主要威胁关于防护简介内容安全威胁应用层威胁内容安全技术WEB安全应用安全入侵防御检测邮件安全数据安全网络安全反病毒全局环境感知沙箱检测信息安全概述•信息安全是对信息和信息系统进行保护,防止未授权的访问、使用、泄露、中断、修改、破坏并以此提供保密性、完整性和可用性。•为关键资产提供机密性、完整性和可用性(CIA三元组)保护是信息安全的核心目标。CIA(Confidential
网络安全(黑客)自学
白帽子凯哥
web安全 安全 网络安全 服务器 网络
一、什么是网络安全网络安全可以基于攻击和防御视角来分类,我们经常听到的“红队”、“渗透测试”等就是研究攻击技术,而“蓝队”、“安全运营”、“安全运维”则研究防御技术。无论网络、Web、移动、桌面、云等哪个领域,都有攻与防两面性,例如Web安全技术,既有Web渗透,也有Web防御技术(WAF)。作为一个合格的网络安全工程师,应该做到攻守兼备,毕竟知己知彼,才能百战百胜。二、怎样规划网络安全如果你是一
最新网络安全(黑客)——自学篇
黑客小雨
web安全 安全
*需要的小伙伴关注我第一阶段:基础操作入门,学习基础知识入门的第一步是学习一些当下主流的安全工具课程并配套基础原理的书籍,一般来说这个过程在1个月左右比较合适。在这个阶段,你已经对网络安全有了基本的了解。如果你学完了第一步,相信你已经在理论上明白了上面是sql注入,什么是xss攻击,对burp、msf、cs等安全工具也掌握了基础操作。这个时候最重要的就是开始打地基!所谓的“打地基”其实就是系统化的
58手势验证码的分析
allgiveup
做爬虫的小伙伴们肯定都深有体会,爬虫要是遇到验证码了基本上就是GG了。于是爬虫工作者和验证码之间必有一战。随着web安全技术的提升,验证码也一代一代的革新,并且越发的变态。小曾也去研究了各式样的验证码,最后决定拿出58手势验证码和大家分享。分析概述首先我对58手势验证码做一个总体的描述。从触发验证码到验证成功,我们操作的背后需要向服务器发送6个请求,并且还有一次js算法对参数加密。6个请求之间有着
微信小程序入门【三】:实现简单登录退出和个人信息页面
山岫
微信小程序 微信小程序 小程序
效果图预览这个框很是惆怅,但是真机调试没出现过,这个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安全学习笔记(1)
头发的天敌是代码
web安全学习笔记 web安全 学习 笔记
一、网络安全分支1.web安全——网站2.二进制安全物联网安全工控安全二、网站是如何搭建起来的1.服务器服务器与我们的家庭使用电脑有什么区别?①没有显卡②CPU+内存不同于家庭电脑2.操作系统家庭系统:WindowsXPWindows7Windows8Windows9Windows10Windows11服务器操作系统:Windows2000Windows2003Windows2008Windows
Web安全与网络安全:SQL漏洞注入
hong161688
web安全 sql oracle
Web安全与网络安全:SQL漏洞注入引言在Web安全领域,SQL注入漏洞(SQLInjectionVulnerability)是一种极具破坏性的安全威胁。它允许攻击者通过向Web应用程序的输入字段中插入或“注入”恶意的SQL代码片段,从而操纵后台数据库系统,执行未授权的数据库查询,甚至可能获取数据库管理权限,进而对整个系统造成严重的安全损害。本文将从SQL注入的原理、分类、危害及防御策略等方面进行
Web安全与网络安全:SQL漏洞注入
bigbig猩猩
typescript vue.js 前端
Web安全与网络安全:SQL漏洞注入引言在Web安全领域,SQL注入漏洞(SQLInjectionVulnerability)是一种极具破坏性的安全威胁。它允许攻击者通过向Web应用程序的输入字段中插入或“注入”恶意的SQL代码片段,从而操纵后台数据库系统,执行未授权的数据库查询,甚至可能获取数据库管理权限,进而对整个系统造成严重的安全损害。本文将从SQL注入的原理、分类、危害及防御策略等方面进行
【网络安全】空字节绕过:URL回调+XSS+SQL绕WAF
秋说
网络安全 web安全 xss sql 漏洞挖掘
未经许可,不得转载。文章目录空字节URL回调XSSSQL空字节\0,也称为null字节,是一个值为零的特殊字符。在编程中,通常用来表示字符串的结束。攻击者可以利用null字节注入来绕过一些验证或过滤机制。以下三个漏洞,空字节功不可没。URL回调密码重置功能,发起请求后,邮箱会收到链接。请求包中存在callbackUrl参数:在参数中添加/test,发包后,邮箱中的链接为https://compan
Web安全之SQL注入:如何预防及解决
J老熊
Java Web安全 web安全 sql 数据库 系统架构 面试
SQL注入(SQLInjection)是最常见的Web应用漏洞之一,它允许攻击者通过注入恶意SQL代码来操作数据库,获取、修改或删除数据。作为Java开发者,理解并防止SQL注入攻击是至关重要的。在本篇文章中,我们将详细介绍SQL注入的原理,演示如何在电商交易系统中出现SQL注入漏洞,并提供正确的防范措施和解决方案。1.什么是SQL注入?SQL注入是一种通过在用户输入中嵌入恶意SQL代码的攻击方式
Java Web安全与Spring Config对象实战
福建低调
本文还有配套的精品资源,点击获取简介:本课程深入探讨JavaWeb开发中的安全实践,包括认证与授权、输入验证、CSRF和XSS防护以及SQL注入防御等关键安全措施。同时,介绍SpringSecurity框架的应用,以及Config对象在Spring配置管理中的作用,包括依赖注入和外部化配置。课程还包括实战演练,通过设置安全环境和安全漏洞模拟,帮助开发者提升应用的安全性和故障排查能力。1.Web安全
自学黑客(网络安全)
白袍无涯
web安全 网络 安全 网络安全 系统安全 运维 计算机网络
前言:想自学网络安全(黑客技术)首先你得了解什么是网络安全!什么是黑客!网络安全可以基于攻击和防御视角来分类,我们经常听到的“红队”、“渗透测试”等就是研究攻击技术,而“蓝队”、“安全运营”、“安全运维”则研究防御技术。无论网络、Web、移动、桌面、云等哪个领域,都有攻与防两面性,例如Web安全技术,既有Web渗透,也有Web防御技术(WAF)。作为一个合格的网络安全工程师,应该做到攻守兼备,毕竟
Web安全之CSRF攻击详解与防护
J老熊
Java Web安全 web安全 csrf 安全 java 面试 运维
在互联网应用中,安全性问题是开发者必须时刻关注的核心内容之一。跨站请求伪造(Cross-SiteRequestForgery,CSRF),是一种常见的Web安全漏洞。通过CSRF攻击,黑客可以冒用受害者的身份,发送恶意请求,执行诸如转账、订单提交等操作,导致严重的安全后果。本文将详细讲解CSRF攻击的原理及其防御方法,结合电商交易系统的场景给出错误和正确的示范代码,并分析常见的安全问题与解决方案,
【网络安全】URL解析器混淆绕过CSP实现XSS
秋说
网络安全 web安全 xss 漏洞挖掘
未经许可,不得转载。文章目录前言正文前言许多流行的静态网站生成器都存在图像CDN功能,它们通过优化网站中的图像来加快页面加载速度。例如:1、OptimizingImages|Next.js利用内置的next/image组件优化图像(nextjs.org)2、NuxtImage:Nuxt应用的图像优化即插即用的图像优化功能,使用内置优化器对图像进行调整(image.nuxt.com)这些工具的目标都
XSS和sql注入部分场景测试用例样例
谷隐凡二
测试 xss sql 测试用例
目录1.SQL注入测试用例设计基本SQL注入复杂SQL注入盲注测试2.XSS攻击测试用例设计基本XSS攻击复杂XSS攻击DOM-basedXSS1.SQL注入测试用例设计SQL注入攻击通常通过在输入字段中插入恶意SQL代码,试图操纵数据库查询。设计这些测试用例时,需要涵盖各种常见的SQL注入技术。基本SQL注入用例1:使用单引号:输入:'OR'1'='1预期结果:应拒绝输入并返回错误消息,不应允许
Docker安全最佳实践
行路见知
Docker docker 运维 网络 安全
目录1、探测容器开放端口和服务漏洞2、宿主机、网络、镜像、DockerApi安全3、更新Docker、日志、事件4、Docker安全测试5、Docker安全最佳实践1、探测容器开放端口和服务漏洞使用Nmap扫描Docker容器中的开放端口使用dockerps命令获取正在运行的容器ID或名称。在主机上安装Nmap工具。使用以下命令扫描Docker容器中的开放端口:nmap-p-[container_
【网络安全】如何预防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:加密传输与数据安全⚠️错误处理️全局错误处理:确保应用稳定性的关键异常捕获与日志记录:有效排查问题的核心认证与授权使用
网络安全(黑客)自学
白帽子凯哥
web安全 安全 网络安全 服务器 网络
一、什么是网络安全网络安全可以基于攻击和防御视角来分类,我们经常听到的“红队”、“渗透测试”等就是研究攻击技术,而“蓝队”、“安全运营”、“安全运维”则研究防御技术。无论网络、Web、移动、桌面、云等哪个领域,都有攻与防两面性,例如Web安全技术,既有Web渗透,也有Web防御技术(WAF)。作为一个合格的网络安全工程师,应该做到攻守兼备,毕竟知己知彼,才能百战百胜。二、怎样规划网络安全如果你是一
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
用MiddleGenIDE工具生成hibernate的POJO(根据数据表生成POJO类)
AdyZhang
POJO eclipse Hibernate MiddleGenIDE
推荐:MiddlegenIDE插件, 是一个Eclipse 插件. 用它可以直接连接到数据库, 根据表按照一定的HIBERNATE规则作出BEAN和对应的XML ,用完后你可以手动删除它加载的JAR包和XML文件! 今天开始试着使用
.9.png
Cb123456
android
“点九”是andriod平台的应用软件开发里的一种特殊的图片形式,文件扩展名为:.9.png
智能手机中有自动横屏的功能,同一幅界面会在随着手机(或平板电脑)中的方向传感器的参数不同而改变显示的方向,在界面改变方向后,界面上的图形会因为长宽的变化而产生拉伸,造成图形的失真变形。
我们都知道android平台有多种不同的分辨率,很多控件的切图文件在被放大拉伸后,边
算法的效率
天子之骄
算法效率 复杂度 最坏情况运行时间 大O阶 平均情况运行时间
算法的效率
效率是速度和空间消耗的度量。集中考虑程序的速度,也称运行时间或执行时间,用复杂度的阶(O)这一标准来衡量。空间的消耗或需求也可以用大O表示,而且它总是小于或等于时间需求。
以下是我的学习笔记:
1.求值与霍纳法则,即为秦九韶公式。
2.测定运行时间的最可靠方法是计数对运行时间有贡献的基本操作的执行次数。运行时间与这个计数成正比。
java数据结构
何必如此
java 数据结构
Java 数据结构
Java工具包提供了强大的数据结构。在Java中的数据结构主要包括以下几种接口和类:
枚举(Enumeration)
位集合(BitSet)
向量(Vector)
栈(Stack)
字典(Dictionary)
哈希表(Hashtable)
属性(Properties)
以上这些类是传统遗留的,在Java2中引入了一种新的框架-集合框架(Collect
MybatisHelloWorld
3213213333332132
//测试入口TestMyBatis
package com.base.helloworld.test;
import java.io.IOException;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibat
Java|urlrewrite|URL重写|多个参数
7454103
java xml Web 工作
个人工作经验! 如有不当之处,敬请指点
1.0 web -info 目录下建立 urlrewrite.xml 文件 类似如下:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE u
达梦数据库+ibatis
darkranger
sql mysql ibatis SQL Server
--插入数据方面
如果您需要数据库自增...
那么在插入的时候不需要指定自增列.
如果想自己指定ID列的值, 那么要设置
set identity_insert 数据库名.模式名.表名;
----然后插入数据;
example:
create table zhabei.test(
id bigint identity(1,1) primary key,
nam
XML 解析 四种方式
aijuans
android
XML现在已经成为一种通用的数据交换格式,平台的无关性使得很多场合都需要用到XML。本文将详细介绍用Java解析XML的四种方法。
XML现在已经成为一种通用的数据交换格式,它的平台无关性,语言无关性,系统无关性,给数据集成与交互带来了极大的方便。对于XML本身的语法知识与技术细节,需要阅读相关的技术文献,这里面包括的内容有DOM(Document Object
spring中配置文件占位符的使用
avords
1.类
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.o
前端工程化-公共模块的依赖和常用的工作流
bee1314
webpack
题记: 一个人的项目,还有工程化的问题嘛? 我们在推进模块化和组件化的过程中,肯定会不断的沉淀出我们项目的模块和组件。对于这些沉淀出的模块和组件怎么管理?另外怎么依赖也是个问题? 你真的想这样嘛? var BreadCrumb = require(‘../../../../uikit/breadcrumb’); //真心ugly。
上司说「看你每天准时下班就知道你工作量不饱和」,该如何回应?
bijian1013
项目管理 沟通 IT职业规划
问题:上司说「看你每天准时下班就知道你工作量不饱和」,如何回应
正常下班时间6点,只要是6点半前下班的,上司都认为没有加班。
Eno-Bea回答,注重感受,不一定是别人的
虽然我不知道你具体从事什么工作与职业,但是我大概猜测,你是从事一项不太容易出现阶段性成果的工作
TortoiseSVN,过滤文件
征客丶
SVN
环境:
TortoiseSVN 1.8
配置:
在文件夹空白处右键
选择 TortoiseSVN -> Settings
在 Global ignote pattern 中添加要过滤的文件:
多类型用英文空格分开
*name : 过滤所有名称为 name 的文件或文件夹
*.name : 过滤所有后缀为 name 的文件或文件夹
--------
【Flume二】HDFS sink细说
bit1129
Flume
1. Flume配置
a1.sources=r1
a1.channels=c1
a1.sinks=k1
###Flume负责启动44444端口
a1.sources.r1.type=avro
a1.sources.r1.bind=0.0.0.0
a1.sources.r1.port=44444
a1.sources.r1.chan
The Eight Myths of Erlang Performance
bookjovi
erlang
erlang有一篇guide很有意思: http://www.erlang.org/doc/efficiency_guide
里面有个The Eight Myths of Erlang Performance: http://www.erlang.org/doc/efficiency_guide/myths.html
Myth: Funs are sl
java多线程网络传输文件(非同步)-2008-08-17
ljy325
java 多线程 socket
利用 Socket 套接字进行面向连接通信的编程。客户端读取本地文件并发送;服务器接收文件并保存到本地文件系统中。
使用说明:请将TransferClient, TransferServer, TempFile三个类编译,他们的类包是FileServer.
客户端:
修改TransferClient: serPort, serIP, filePath, blockNum,的值来符合您机器的系
读《研磨设计模式》-代码笔记-模板方法模式
bylijinnan
java 设计模式
声明: 本文只为方便我个人查阅和理解,详细的分析以及源代码请移步 原作者的博客http://chjavach.iteye.com/
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
配置心得
chenyu19891124
配置
时间就这样不知不觉的走过了一个春夏秋冬,转眼间来公司已经一年了,感觉时间过的很快,时间老人总是这样不停走,从来没停歇过。
作为一名新手的配置管理员,刚开始真的是对配置管理是一点不懂,就只听说咱们公司配置主要是负责升级,而具体该怎么做却一点都不了解。经过老员工的一点点讲解,慢慢的对配置有了初步了解,对自己所在的岗位也慢慢的了解。
做了一年的配置管理给自总结下:
1.改变
从一个以前对配置毫无
对“带条件选择的并行汇聚路由问题”的再思考
comsci
算法 工作 软件测试 嵌入式 领域模型
2008年上半年,我在设计并开发基于”JWFD流程系统“的商业化改进型引擎的时候,由于采用了新的嵌入式公式模块而导致出现“带条件选择的并行汇聚路由问题”(请参考2009-02-27博文),当时对这个问题的解决办法是采用基于拓扑结构的处理思想,对汇聚点的实际前驱分支节点通过算法预测出来,然后进行处理,简单的说就是找到造成这个汇聚模型的分支起点,对这个起始分支节点实际走的路径数进行计算,然后把这个实际
Oracle 10g 的clusterware 32位 下载地址
daizj
oracle
Oracle 10g 的clusterware 32位 下载地址
http://pan.baidu.com/share/link?shareid=531580&uk=421021908
http://pan.baidu.com/share/link?shareid=137223&uk=321552738
http://pan.baidu.com/share/l
非常好的介绍:Linux定时执行工具cron
dongwei_6688
linux
Linux经过十多年的发展,很多用户都很了解Linux了,这里介绍一下Linux下cron的理解,和大家讨论讨论。cron是一个Linux 定时执行工具,可以在无需人工干预的情况下运行作业,本文档不讲cron实现原理,主要讲一下Linux定时执行工具cron的具体使用及简单介绍。
新增调度任务推荐使用crontab -e命令添加自定义的任务(编辑的是/var/spool/cron下对应用户的cr
Yii assets目录生成及修改
dcj3sjt126com
yii
assets的作用是方便模块化,插件化的,一般来说出于安全原因不允许通过url访问protected下面的文件,但是我们又希望将module单独出来,所以需要使用发布,即将一个目录下的文件复制一份到assets下面方便通过url访问。
assets设置对应的方法位置 \framework\web\CAssetManager.php
assets配置方法 在m
mac工作软件推荐
dcj3sjt126com
mac
mac上的Terminal + bash + screen组合现在已经非常好用了,但是还是经不起iterm+zsh+tmux的冲击。在同事的强烈推荐下,趁着升级mac系统的机会,顺便也切换到iterm+zsh+tmux的环境下了。
我为什么要要iterm2
切换过来也是脑袋一热的冲动,我也调查过一些资料,看了下iterm的一些优点:
* 兼容性好,远程服务器 vi 什么的低版本能很好兼
Memcached(三)、封装Memcached和Ehcache
frank1234
memcached ehcache spring ioc
本文对Ehcache和Memcached进行了简单的封装,这样对于客户端程序无需了解ehcache和memcached的差异,仅需要配置缓存的Provider类就可以在二者之间进行切换,Provider实现类通过Spring IoC注入。
cache.xml
<?xml version="1.0" encoding="UTF-8"?>
Remove Duplicates from Sorted List II
hcx2013
remove
Given a sorted linked list, delete all nodes that have duplicate numbers, leaving only distinct numbers from the original list.
For example,Given 1->2->3->3->4->4->5,
Spring4新特性——注解、脚本、任务、MVC等其他特性改进
jinnianshilongnian
spring4
Spring4新特性——泛型限定式依赖注入
Spring4新特性——核心容器的其他改进
Spring4新特性——Web开发的增强
Spring4新特性——集成Bean Validation 1.1(JSR-349)到SpringMVC
Spring4新特性——Groovy Bean定义DSL
Spring4新特性——更好的Java泛型操作API
Spring4新
MySQL安装文档
liyong0802
mysql
工作中用到的MySQL可能安装在两种操作系统中,即Windows系统和Linux系统。以Linux系统中情况居多。
安装在Windows系统时与其它Windows应用程序相同按照安装向导一直下一步就即,这里就不具体介绍,本文档只介绍Linux系统下MySQL的安装步骤。
Linux系统下安装MySQL分为三种:RPM包安装、二进制包安装和源码包安装。二
使用VS2010构建HotSpot工程
p2p2500
HotSpot OpenJDK VS2010
1. 下载OpenJDK7的源码:
http://download.java.net/openjdk/jdk7
http://download.java.net/openjdk/
2. 环境配置
▶
Oracle实用功能之分组后列合并
seandeng888
oracle 分组 实用功能 合并
1 实例解析
由于业务需求需要对表中的数据进行分组后进行合并的处理,鉴于Oracle10g没有现成的函数实现该功能,且该功能如若用JAVA代码实现会比较复杂,因此,特将SQL语言的实现方式分享出来,希望对大家有所帮助。如下:
表test 数据如下:
ID,SUBJECTCODE,DIMCODE,VALUE
1&nbs
Java定时任务注解方式实现
tuoni
java spring jvm xml jni
Spring 注解的定时任务,有如下两种方式:
第一种:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http
11大Java开源中文分词器的使用方法和分词效果对比
yangshangchuan
word分词器 ansj分词器 Stanford分词器 FudanNLP分词器 HanLP分词器
本文的目标有两个:
1、学会使用11大Java开源中文分词器
2、对比分析11大Java开源中文分词器的分词效果
本文给出了11大Java开源中文分词的使用方法以及分词结果对比代码,至于效果哪个好,那要用的人结合自己的应用场景自己来判断。
11大Java开源中文分词器,不同的分词器有不同的用法,定义的接口也不一样,我们先定义一个统一的接口:
/**
* 获取文本的所有分词结果, 对比