2 netdomainer NetDomainer 于 2016.01.20 18:31 提问

jquery的$.get()获取验证码的问题。

这是我们学校的门户登录页面我是链接,戳我!,通过观察其页面代码的提交部分,其提交方式是原始表单。

 <script type="text/javascript">

            function submitForm(){  
                var date = new Date();
                var ajax_path = "./getVcode.jsp?timestamp="+date.getTime();
                var flag = false;
                $.get(ajax_path , function(data){
                    var ajaxStr = data.toLowerCase();
                    ajaxStr = ajaxStr.replace(/\s+/g,"");
                    ajaxStr = ajaxStr.replace(/\r\n/g,"");
                    ajaxStr = ajaxStr.replace(/<\/?.+?>/g,"");
                    var inputStr = $("#vcode").val().toLowerCase();
                    var username = $("#username").val();
                    var password = $("#password").val();
                    if(''==username){
                        $("#msg").html("请输入用户名!");
                        $("#username").trigger("focus");
                        return false;
                    }
                    if(''==password){
                        $("#msg").html("请输入密码!");
                        $("#password").trigger("focus");
                        return false;
                    }
                    if(''==inputStr){
                        $("#msg").html("请输入验证码!");
                        $("#vcode").trigger("focus");
                        return false;
                    }
                    if(ajaxStr==inputStr){
                        $("#fm1").submit();
                    }else{
                        $("#msg").html("验证码错误!");
                        $("#vcode").trigger("focus");
                        return false;
                    }
                });

        </script>

知道了其验证码是客户端对比的(其实这样还不如没有),也就是说有可能通过直接访问脚本中的211.85.162.240:8080/cas/getVcode.jsp?timestamp=...来直接获得正确的验证码,确实,当我访问了一次http://211.85.162.240:8080/cas/getVerificationCode?dateTime=...获取验证码图片(这是必须的一步),再访问http://211.85.162.240:8080/cas/getVcode.jsp?timestamp=...是可以得到验证码的,而在文件中通过jquery的$.get()方法却获取不到验证码,这是我的代码:

 <script src="Scripts/jquery-1.9.1.min.js"></script>
    <script>
        $(function () {
            var date = new Date();
            $("#randpic").attr("src", "http://211.85.162.240:8080/cas/getVerificationCode?dateTime=" + date.getTime());


            $("#get").click(function () {
                var ajax_path = "http://211.85.162.240:8080/cas/getVcode.jsp?timestamp=1453276786065";
                $.get(ajax_path, function (data) {
                    var ajaxStr = data.toLowerCase();
                    ajaxStr = ajaxStr.replace(/\s+/g, "");
                    ajaxStr = ajaxStr.replace(/\r\n/g, "");
                    ajaxStr = ajaxStr.replace(/<\/?.+?>/g, "");
                    $("#text").val(ajaxStr);
                });

            });
        });

    </script>

不是说地址栏输入和$.get()本质是一样吗?那么我该如何编写才能在js中获取到正确的验证码呢?

1个回答

caozhy
caozhy   Ds   Rxr 2016.01.20 19:42
已采纳

用fiddler调试下,一个是,每次请求,都会刷新一次验证码,一个是,get虽然是获得验证码,但是服务器也许会判断session referer等。

NetDomainer
NetDomainer 那么除了在地址栏中输入这个webservice地址之外,还有没有其他方法能够获取这个验证码呢?(因为他是在客户端比对的验证码,所以我想一定有方法可以越过这个验证码的)
2 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
Jquery简单的发送验证码倒计时
Jquery简单的发送验证码倒计时<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title></title> <link rel="stylesheet" href="@{'/public/stylesheets/main/accountSet.css'}"> <script type=
jquery 倒计时发送短信验证码效果
话不多说直接上代码 `
三种方法使用jquery获取验证码倒计时,并设置防重复点击
获取验证码1       获取验证码2     获取验证码3   // 一 利用绑定和解绑点击事件     let  time1 = 10;     var  count = time1;     var countinterval; var button = $('.btn');     button.click(showTitle);     func
httpClient 带验证码登录实现
抓取一个农业网站思路步骤如下: 1、首先需要获取验证码页面,把它以图片的格式保证下来。(图片格式需要通过抓包的工具查看。如:httpWatch)并跟踪到的cookie保存下来。cookie必须要跟抓包工具看到的cookie一致。 2、提交登录页面所需要的字段和验证码,字段尽可能全部提交上去。
js/jquery实现免费获取手机验证码倒计时效果
[导读] 今天要开发一个功能就是当用户点击获取验证码之后我们会发送一条信息到用户手机,然后就会出现一个倒计时按钮,很像支付宝手机付款效果了,下面我给大家分享两个js效果。js代码 代码如下复制代码 <di 今天要开发一个功能就是当用户点击获取验证码之后我们会发送一条信息到用户手机,然后就会出现一个倒计时按钮,很像支付宝手机付款效果了,下面我给大家分享两个js效果。 js代码
Jquery ajax 获取验证码
Jquery ajax 获取验证码的项目代码
jquery 发送验证码 并60s倒计时 ajas发送短信
//短信验证码发送 start $("#send_pwd").click(function(){     name_text_tphone= $("#find_pwd_name_text_tphone").val();     if(name_text_tphone=="find_pwd_name_text_tphone_true"){//已注册过的手机号才可以发送手机验证码
jQuery插件实现“点击获取验证码后60秒内禁止重新获取(防刷新)”
转自:Jquery插件实现“点击获取验证码后60秒内禁止重新获取(防刷新)”效果图 先到官网(http://plugins.jquery.com/)下载jquery.cookie.js插件,放到相应文件夹,代码如下:<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatib
怎样使用jquery刷新验证码图片
How to refresh the src of with jQuery? src="test.php" /> where test.php generates an image with a random number. Itried : $('#verifyimage').click(function() { $(this).attr('s
jquery实现验证码倒计时60秒
Document /*-------------------------------------------*/ var InterValObj; //timer变量,控制时间 var count = 60; //间隔函数,1秒执行 var curCount = 60;//当前剩余秒数 var code = ""; //验证码 var codeLength