网络登录,密码在网址上可见

时间:2013-10-14 10:12:35

标签: jquery ajax json login brute-force

我的朋友有一个登录表单的网站.. 我发现它使用json和ajax登录...

我检查了chrome控制台,发现在提交表单时通过网址显示用户名和密码(通过ajax)......

就是这样......

https://somesite.com/Login/LoginAct.asp?callback=jsonp1381741574696&_=1381741716152&user_id=reigel&user_pw=butterfly143&returnUrl=https%3A//somesite.com/Login/Login.asp

如果成功则返回jsonp1381741574696({'Result': '1'}),如果登录失败则返回jsonp1381741574696({'Result': '-100'})

现在我的问题是,我只是有点好奇,这不是很容易受到一些暴力攻击吗?

我想向朋友指出这一点,但我不确定我是对还是错......

请赐教......

5 个答案:

答案 0 :(得分:1)

是的,它很容易受到强力攻击,因为“黑客”可以使用不同的密码向您的系统发送请求,另一个问题 - 这种方式的URL很容易被中间系统破坏,您需要将其更改为POST方法

无论如何,POST也无法帮助对抗蛮力,你需要某种服务器端保护

答案 1 :(得分:0)

一切皆有可能,以便您尽可能确保更好。为什么你不做POST请求?由于GET请求可见。

答案 2 :(得分:0)

这绝对是你想引起朋友注意的事情。登录表单未正确处理。我对你朋友的实施感到好奇。也许有理由他选择使用get over post?

答案 3 :(得分:0)

在MD5算法之前转换密码。 观点: http://code.google.com/p/crypto-js/

答案 4 :(得分:0)

我会说是的,当且仅当你可以发送你想要的网址时。

攻击者可以继续更改网址中的pw并继续尝试直到他获得成功结果如果之后(我会说3次)显示另一条消息说有很多不良尝试而你需要等待x再次尝试蛮力攻击之前的分钟数不会有利可图。

首先我想知道他为什么用Get命令而不是post命令来尝试它,但是如果某个get命令在某种程度上是必要的(不知道为什么会这样),他应该真正关注以下内容(实际上他应该停止他正在做的事情,并确保以正确的方式完成它:)

如果他坚持要保留他现在使用的方法,我建议你的朋友做两件事:

第一,密码需要进行散列和加密,因此从按下“输入按钮”的那一刻起,密码框中的文本需要加密,因此它不会在URL中显示为纯文本。 如果您想了解有关安全存储和使用密码的更多信息,我建议您阅读以下文章: Best way to store password in database

第二件事是他可以测试他自己只是获取一个URL并提交它,然后更改它并再次提交它,如果你可以一遍又一遍地执行此操作,暴力攻击是打破这种安全的简单方法,如果经过几次尝试(通常我会说3次),你会得到一个不同的结果:jsonp1381741574696({'Result': '-100'})例如,结果表明你已经多次尝试过,我会说它是安全的。