• Selenium基于Cookie绕过验证码百度自动登录


    验证码作用

    不少网站在用户登录、用户提交信息等登录和输入的页面上使用了验证码技术。验证码技术可以有效防止恶意用户对网站的滥用,使得网站可以有效避免用户信息失窃、保证网站稳定安全性。

    但是验证码给自动化测试带来一些不便,使脚本无法正常运行覆盖功能模块。

    如何解决

    1.去掉验证码

    这是最简单的方法,对于开发人员来说,只是把验证码的相关代码注释掉即可,如果是在测试环境,这样做可省去了测试人员不少麻烦,如果自动化脚本是要在正式环境跑,这样就给系统带来了一定的风险。

    2.设置万能码

    去掉验证码的主要是安全问题,为了应对在线系统的安全性威胁,可以在修改程序时不取消验证码,而是程序中留一个“后门”---设置一个“万能验证码”,只要用户输入这个“万能验证码”,程序就认为验证通过,否则按照原先的验证方式进行验证。

    3.验证码识别技术(OCR)

    例如可以通过Python-tesseract 来识别图片验证码,Python-tesseract是光学字符识别Tesseract OCR引擎的Python封装类。能够读取任何常规的图片文件(JPG, GIF ,PNG , TIFF等)。不过,目前市面上的验证码形式繁多,目前任何一种验证码识别技术,识别率都不是100% 。

    4.记录cookie

    通过向浏览器中添加cookie 可以绕过登录的验证码。

     

    基于Cookie绕过验证码自动登录

    案例:使用Cookie绕过百度验证码自动登录账户。

    具体代码如下:

    # #!/usr/bin/python3
    # -*- coding: utf-8 -*-
    # @Time : 2020/8/7 15:35
    # @Author : Gengwu
    # @FileName: Cookie_login.py
    # @Software: PyCharm
    
    from selenium import  webdriver
    from time import sleep
    
    driver=webdriver.Chrome()
    driver.get('https://www.baidu.com/')
    driver.maximize_window()
    
    
    #手动添加cookile
    driver.add_cookie({'name':'BAIDUID','value':'AD050209968BF5FE338F0F961B14FDC7:FG=1'}) #利用抓包可以看到cookile,手动添加
    driver.add_cookie({'name':'BDUSS','value':'DVMZmdiUGlvNERXcDEtQjYyWGRvaXRINjVXOGxVZHhrRDJGRnN4QW81UUxqMVJmSVFBQUFBJCQAAAAAAAAAAAEAAADOqfNLAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAsCLV8LAi1fe'})
    
    sleep(4)
    driver.refresh() #刷新页面查看登录效果
    sleep(4)
    
    driver.quit()

    代码里面具体的fidder抓包可以参考以上的博文,链接如下:

    https://www.cnblogs.com/gengwulovestudy/p/13299276.html

    以上如果有问题欢迎随时沟通和讨论!

    Best Regards!
    Make a little progress every day!
  • 相关阅读:
    Vue.js
    Vue.js
    Vue.js
    Vue.js
    webpack(1)
    webpack(2)
    babel-loader7和babel8版本的问题
    [JZOJ4274] 终章-剑之魂
    [JZOJ427] 圣章-精灵使的魔法语
    BZOJ题表(红色表示已完成)
  • 原文地址:https://www.cnblogs.com/gengwulovestudy/p/13453658.html
Copyright © 2020-2023  润新知