这里有一点背景信息:我是一名自学成才的 Web 开发人员,在 html/css 之外几乎没有经验,我工作的公司聘请了一个第三方 Web 开发团队来为我们设计一个电子商务网站。无论如何,我今天使用 TamperData Firefox 插件对该站点进行了 beta 测试,我发现了两个主要的设计缺陷,它们都涉及 HTTP 标头。
第一个缺陷是,当我们的网站要求用户选择运费选项(陆运、快递等)时,网站会将计算出的运费值在 HTTP 标头中传回服务器。通过操作标头,我能够修改(参见:擦除)运费值,因此后端将计算的运费值解释为 0,因此它不向我收取运费!
然而,第二个缺陷要严重得多......当计算总产品价值并“结帐”时,所有交易信息(CC#、CVV2、到期、$ 总计)通过以下方式传递给第三方商家处理器HTTP 标头。再一次,我使用 TamperData 并能够操纵标头,以便发送给商家的 $ 值是微不足道的(我选择 $1 进行测试)。
事实上,我——在网站安全或服务器端编码方面完全没有经验——能够发现这些严重的缺陷让我完全害怕,因为这对设计这个的程序员来说意味着什么?当然,他们可能会以某种方式解决这两个问题。但是,如果在纯文本 HTTP 标头中发送信用卡数据对他们来说是个好主意,那么他们的新解决方案实际上会更安全吗?如果我错过了其他完全独立的攻击媒介怎么办?
因此,我的问题是:
鉴于上述信息,您将采取哪些措施来避免这些安全漏洞?(所以我知道要求我们的程序员做什么)
有哪些书籍、网站和/或资源可供我自学网络安全以及如何进行实际渗透测试?我的公司需要一些时间来安排外部安全审计,在此期间我想尽可能多地修复网站。
更新:
正如我在下面的评论中所说,我很想知道将 http 标头中的付款信息传输给 cc 商家的安全性(如果重要的话,我们正在使用 https 连接)。第三方可以窃听或拦截这些数据包吗?如果他们可以,这是一个现实的场景,还是极不可能?我问这个是因为我还没有很好地理解通过 HTTP 标头传输数据的工作原理,至少在技术层面上是这样。
这个问题是本周的 IT 安全问题。
阅读 2011 年 8 月 12 日的博客文章了解更多详情或提交您自己的本周问题。