正则:
Pattern p = Pattern.compile("\w+@\w+(\.\w)+");
Matcher m = p.macther(String str)封装pattern,并匹配正则
贪婪匹配.*
非贪婪匹配 .*?会尽可能少的重复 例如aabab a.*?b得到的是aab或ab
.+?重复一次或多次,会尽可能少的重复
.??重复0次或多次,会尽可能少的重复
爬虫,黑名单,白名单
黑名单是让form中出现的一些字符串和需要过滤的字符串匹配一下,如果有就不行。
白名单是允许表单中出现哪些合法的html元素。
爬虫包括广度爬虫和深度爬虫,话说谁爬虫研究的比较深,能否把笔记给我看看,万分感激
get和post的在表单中的区别
get提交的信息都显示在地址栏中,post提交对于敏感信息安全,get不能提交过多数据,get将信息封装到请求消息的请求行,也就是作为URL中一部分,post则是封装到请求体中
sql注入,即对服务端数据库中的表进行操作,例如:http://www.baidu.com/id=6;有id值表示需要对表进行查询,所以构成sql漏洞。
select * from Table
select * into T1 from T2
insert into T(c1,c2) select c1,c2 from T2
update T set c = Value 修改数据
select count(*) from T
top 从列最上面的数据向下 top 1等
在sql注入时,可以改变大小写,中间插入%20等以编码的数据,利用不同的数据库函数来达到同样的目标,subStr(user,1,1)等,也可用二次注入,即先注入数据,利用注入的数据;还有||
mysql支持三种注释方式:/**/;#至行末尾;--序列开始至末尾?
XSS攻击,是对HTML嵌入代码,注入形式可先编码绕过过滤机制,也可混合编码
编码解码过程:
浏览器编码-->>服务器解码,返回内容(即网页,编码)-->>浏览器解码
URLencode是将url地址栏中的信息(已经过gbk等编码方式编码过的)进行ios-8859-1编码。这位大牛的文章http://www.cnblogs.com/yencain/articles/1321386.html
话说,如果在地址栏中输入经过GBK,UTF-8等混合编码的参数,会怎么样??还要再找找资料
浏览器:-->>HTML引擎解析成DOM树,JS引擎解析JS文本,遇到document.createElement("id");之类的回溯HTML引擎,更新DOM树,渲染引擎解析CSS文本和HTML的DOM树节点,在一边解析,在页面上布局一边呈现内容