扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
作者:builder.com.cn 2007年4月5日
关键字:
图B显示的是相同的源代码,但由攻击者输入一个用户名和密码。注意,输入文本中包含带一个总是返回TRUE的条件的OR操作符。因此,根据操作符优先原则,WHERE子句为每行返回TRUE。
图B
操纵攻击实例(被污染输入)(Kost 2004)
Kevin Spett的SPI Dynamics论文《SQL注入》中说明了其它攻击类型,并提供更加详细的代码实例。
防御SQL注入攻击
各种注入攻击的主要防御手段为输入确认。这包括从所有接口收到的程序输入。图C描述了四种可能的Web应用程序输入来源。
图C
Web应用程序输入
上面这些来源的输入可能会改变一个应用程序访问、处理和显示数据的方式。例如,攻击者可以添加、删除或修改一个查询字符串中的URL参数。
隐藏的表单域可能遭到修改,使表单重新被提交。数据库信息,特别是由其它应用程序写入的域,可能会有意无意地被污染。脆弱性的数量和类型仅限于系统的特殊弱点和攻击者的创造能力。
强化应用程序代码是防御被污染输入的唯一有效手段。下面是一些开发团队应遵循的原则:
总结
像所有由确认输入失败引起的脆弱性一样,使用安全的开发标准,就可以大大降低注入缺陷带来的商业风险。为保护你的网络和数据,保证被污染的输入无法执行是重要的第一步。
责任编辑:德东
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者