selenium之验证码

使用验证码可以有效的防止采用机器猜测方法对口令的刺探,在一定程度上增加了安全性
1、去掉验证码
2、设置万能验证码。去掉验证码的主要问题是安全,为了应对在线的系统的安全威胁,可以在修改程序时不取消验证码,而是在程序中留一个“后门”,即设置一个“万能验证码”。只要用户输入这个“万能验证码”,程序就认为验证通过 ,否则就判断用户输入的验证码是否正确,设计万能验证码只要对用户的输入信息多加一个逻辑判断,如下:

from random import randint

verify = randint(1000,9999)    #生成一个1000到9999之间的随机参数
print(u"生成的随机:%d" %verify)
number = input("请输入随机数:")
print(number)
number = int(number)
if number == verify:
    print("登录成功!!")
elif number == 132741:
    print("登陆成功!!")
else:
    print("验证码输入有误!")
randint()用于生成随机数,设置随机数的范围为1000-9999之间,运行程序分别输入正确的验证码,万能验证码和错误的验证码

3、验证码识别技术,如:可以通过Python-tesseract来识别图片验证码,Python-tesseract是光学字符识别Tesseract OCR引擎的Python封装类,能够读取任何常规的图片文件(JPG,GIT,PNG,TIFF等)。不过,目前市面上的验证码形式繁多,大多验证码识别技术,识别率都很难达到100%
4、记录cookie,通过向浏览器中添加cookie可以绕过登录验证码,这是比较有意思的一种解决方案,如在第一次登录某个网站,勾选记住密码,当下次再访问该网站时就自动处于登录状态,这就自然绕过了验证码的问题,这个记住密码功能其实就是记录在了浏览器的cookie中,webdriver来操作浏览器的cookie,可以通过add_cookie()方法将用户名密码写入浏览器cookie,当再次访问网站时,服务器将直接读取浏览器的cookie进行登录。

driver.get("http://www.XX.cn")   #访问XX网站
driver.add_cookie({'name':'Login_UserNumber','value':'username'})   #将用户名密码写入浏览器cookie
driver.add_cookie({'name':'Login_Passwd','value':'password'})
driver.get("http://www.XX.cn/")   #再次访问XX网站,将会自动登录
driver.quit()

这种方式最大的问题是如何从浏览器的cookie中找到用户名和密码对应的key值,并输入对应的登录信息,可以用get_cookies()方法来
获取登录的所有的cookie信息,从中找到用户名和密码的key。当然,更直接的方式是询问开发人员。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值