- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Web应用安全威胁及防护
Web应用安全威胁及防护
Agenda
讲述Web安全威胁
讨论OWASP Top 10以及应对方案
在设计和实现阶段的考虑
具体项目展示
Q A
信息安全 - 大事件
2011–CSDN数据库泄露,大量用户真实账号密码外泄
CSDN社区网站被入侵,近600w用户账号密码被泄露,黑客将连接公布到互联网,导致任何人可以获得该数据,经严重数据真实有效。
整个事件最不可思议的地方在于,像CSDN这样的以程序员和开发为核心的大型网站,居然采用明文存储密码。
2012–LinkedIn/Yahoo
LinkedIn网站被攻击,约650万用户账户密码被泄露(简单的SHA-1)。
2012年7月,一个的黑客组织通过SQL注入攻击侵入雅虎的子网站,对包含超过45万未加密Yahoo Voice密码的数据库进行窃取。
2013–支付宝转账信息泄漏事件
2013年3月27日晚间,有网友在微博上爆出,使用Google搜索输入“site:shenghuo.alipay转账付款”即可看到各种转账信息,包括付款账户、收款账户、姓名、日期等
2014–比特币被窃时间
2014年2月,全球最大的比特币交易平台Mt.Gox由于交易系统出现漏洞,75万个比特币以及Mt.Gox自身账号中约10万个比特币被窃,损失估计达到4.67亿美元,被迫宣布破产。这一事件凸显了互联网金融在网络安全威胁面前的脆弱性。
另:12306用户资料泄密。
2015–连锁酒店开房信息泄露
知名连锁酒店桔子、锦江之星、速八、喜来登、洲际网站存在高危漏洞——房客开房信息大量泄露.
2016–统计中....
OWASP Top 10
A1-注入
A2-失效的身份认证和会话管理
A3-跨站脚本
A4-不安全的直接对象引用
A5-安全配置错误
A6-敏感数据暴露
A7-功能级别访问控制缺失
A8-跨站请求伪造
A9-使用已知易受攻击组件
A10-未验证的重定向和转发
A1-注入
定义
简单来说,注入往往是应用程序缺少对输入进行安全性检查所引起的,攻击者把一些包含指令的数据发送给解释器,解释器会把收到的数据转换成指令执行,注入漏洞十分普遍,通常能在SQL查询、LDAP查询、Xpath查询、OS命令、程序参数等中出现。
危害
注入能导致数据丢失或数据破坏、缺乏可审计性或是拒绝服务。 注入漏洞有时甚至能导致完全接管主机。
种类
SQL注入、XPATH注入、LDAP注入、OS命令注入等。
A1-SQL注入-1
参数: username, password.
SELECT count(1) FROM user WHERE username=‘:request.getParameter(‘username’):’ AND password =‘:request.getParameter(‘password’):’
正常情况:
username=TestUser; password=TestPassword!
攻击:
username=AttackUser; password=AnyPass’ OR 1 = 1
select count(1) from user where username=‘AttachUser’ and password=‘AnyPass’ or ‘1’=‘1’
结果:
非法用户登陆了系统。
最可怕的情况是:DELETE FROM user where username=‘AnyUser’ or ‘1’=‘1’
A1-SQL注入-解决
使用PreparedStatement
String sql= select * from user where username=? and password=? ;
PreparedStatement psm=conn.preparedStatement(sql);
psm.setString(1,request.getParameter(username));
psm.setString(2,request.getParameter(password));
Result rs=psm.executeQuery();
使用PreparedStatement,分两阶段向服务器提交数据
先发送SQL: select * from user where username=? and password=?
再发送参数值。
使用使用ESAPI
由OWASP社区开发的一套API.
使用第三方API,比如Spring的JdbcTemplate,JPA/Hibernate, MyBatis.
A2-失效的认证和会话管理
定义
与认证和会话管理相关的应用
您可能关注的文档
最近下载
- 广东长大美国科来福道路预防性养护和桥梁无缝伸缩缝系统工艺.pptx VIP
- 九年一贯制学校管理.pptx VIP
- 人力资源服务公司章程(申请人力资源许可证参考用).pdf VIP
- 四川大学生物医学工程基础课件.ppt
- 马克思的剩余价值理论课件(PPT 33页).ppt VIP
- SOC-OCV电池测试报告.docx VIP
- 纯化过滤专题报告之一:离子交换与吸附树脂行业报告,纯,现代工业生产中极致的魅力.pdf VIP
- 人类辅助生殖技术和人类精子库伦理原则.doc VIP
- 投标项目总体架构及技术解决方案.docx VIP
- 高二奋发+勇攀高峰+课件--2025-2026学年高二上学期开学第一课主题班会.pptx VIP
文档评论(0)