大概一星期前就读完了。

之前了解到一些关于XSS攻击和CSRF攻击的内容,不过不甚了解,看到这本书也是讲这方面的内容,于是就入手了。其实,内容和自己当初入手时想的还是有差距的。这本书更多的是偏向理论性的东西,实战性的内容很少。而且里面很多理论是站在作为产品负责人的角度来思考的。由于我现在还是学生,也还缺乏足够的项目经验,里面有些理论在目前来看还是不好理解。不过读了这本书还是有所收获的,特别是对于web安全需要在开发前开发时以及开发完成进行测试时需要在安全方面进行思考和检测的地方有了比较清晰的认识。

不久前,自己也学习了一些实战性比较强的关于web安全的内容,顺便做做记录总结一下吧。

1.防止XSS攻击策略

防止html标签和属性方面攻击——对特殊符号进行转义(这方面可以谷歌一下防XSS攻击转义函数)

防止js代码攻击——对数据进行编码(JSON.stringify函数)

富文本防止XSS——白名单和黑名单防御方法

黑名单过滤:指定特定的属性和标签不允许使用,比如:标签。缺点是可能出现遗漏,因为标签的确很多很难做到无缺漏。

白名单过滤:只允许指定的标签属性可以使用,用户功能受到限制,优点是操作简单,不容易出现遗漏。

PS:开发中可能使用的工具

cheerio 和 xss:

https://github.com/cheeriojs/cheerio

https://github.com/leizongmin/js-xss/blob/master/README.zh.md

CSP:内容安全策略

https://developer.mozilla.org/en-US/docs/Web/HTTP/CSP

2.CSRF攻击防御

利用cookie same-site属性(防止跨源带cookie访问)

利用图像验证码(这个经常可以看到啦)

PS:工具ccap

token验证(随机字符串)——这个之前使用laravel的时候就接触过,好像好多框架都会引入相应的token模块。

验证referer

3.cookies 安全

用户登录验证:利用账户密码+签名id

sessionid 方法:利用随机生成的字符串存于cookies 用作用户标示,不需要再cookies中存储用户信息

4.防止点击劫持

点击劫持 (Clickjacking) 技术又称为界面伪装攻击 (UI redress attack ),是一种视觉上的欺骗手段。攻击者使用一个或多个透明的 iframe 覆盖在一个正常的网页上,然后诱使用户在该网页上进行操作,当用户在不知情的情况下点击透明的 iframe 页面时,用户的操作已经被劫持到攻击者事先设计好的恶意按钮或链接上。攻击者既可以通过点击劫持设计一个独立的恶意网站,执行钓鱼攻击等;也可以与 XSS 和 CSRF 攻击相结合,突破传统的防御措施,提升漏洞的危害程度 详情可参考这篇文章:http://www.jianshu.com/p/251704d8ff18 防御:利用javascript代码禁止内嵌;利用X-Frame-Options禁止内嵌

5.http传输窃听

防御:利用https传输协议;利用ca证书认证。

6.sql注入

ps:这个是关于数据库方面的知识,涉及到sql语言,最近才在学习,这里就简单提一下,因为自己还不是很理解。原理:就是利用好sql语法就行伪造查询数据库信息,从而窃取数据库资料。

以上。

技术之路漫漫无终,唯有潜心学习积累。