首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >应用-服务器连接安全性

应用-服务器连接安全性
EN

Security用户
提问于 2014-12-08 21:00:38
回答 1查看 269关注 0票数 0

我有一个学校项目,其中包括一个应用程序和一个使用相同数据库的网站。该应用程序作为网站的管理工具。由于它是用C#制作的,而且不像PHP那样安全,所以我决定让这个应用程序通过网站与数据库进行交互:

在网站上,有一个php文件,用于在应用程序和数据库之间建立链接。这是我为使它尽可能安全而设置的算法:

  1. 用户在应用程序中输入密码,将其作为参数(/get.php?pwd=1234)发送到php文件中。
  2. 该网站向应用程序发送一个令牌(称为T0)。
  3. 下一次当应用程序想要向网站发送查询时,它会发送md5 of T0 (称为T1),它旁边的网站计算出md5 of T0并比较它的T1。
  4. 下一个查询必须使用md5 of T1 (T2)发送,该网站将与md5 of T1进行比较。

这种方法的好处是,如果一个中间人(假设他不知道我们使用令牌的md5 ),读取密码或T0,它将没有任何用途。

作为一项额外的安全措施,每个已使用的令牌都保存在一个单独的数据库中,其中包含用户的确切位置、ip及其所做的操作。

因为我不是安全专家,我想知道渗透这个系统有多难。谢谢

EN

回答 1

Security用户

回答已采纳

发布于 2014-12-08 21:37:39

首先,我想问一下,为什么你认为这个应用程序没有网站那么安全?一般来说,从安全的角度来看,您可能会做的更糟的事情之一是涉及PHP,PHP有更多的安全隐患,很可能是所有其他通用技术的结合。

此外:

  1. 如果你是任何敏感的流量从应用程序到网站,它需要通过HTTPS。
  2. 不要将密码作为查询字符串参数提交。这实际上确保了它们将被记录为明文,即使是在HTTPS上传输。然后需要将POSTed作为表单值。
  3. 散列标记对你没有多大帮助。如果您是在HTTPS上提交它,则MitM无法获得它。如果不是,攻击者可以像您一样轻松地生成MD5。
  4. 从反重播的角度来看,保存使用过的令牌是个好主意。您实际上不需要保存辅助信息.它将占用存储空间,并且可能不会以有用数据的方式提供太多信息。
  5. 但是,如果不使用HTTPS,则保存令牌可能是一个问题,因为知道您的方案的攻击者(并且您应该假设攻击者知道您的方案)可以预先计算下一个令牌并劫持会话向前推进,不仅模拟实际应用程序,而且还会拒绝真正的应用程序,因为当它发送下一个令牌时,它们已经在使用的令牌表中了。

这里可能还有其他的问题,但这是我看到的第几个问题。

底线是,我认为这个计划需要重新考虑,并返回到绘图板。

票数 5
EN
页面原文内容由Security提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://security.stackexchange.com/questions/74568

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档