对非法请求获取验证码图片做出回应

package com.hanhanfilm.common.captcha.bean;

import java.awt.*;
import java.awt.image.BufferedImage;
import java.util.Random;

/**
 * https://www.hanhanfilm.com
 * Created by badouyuren.
 */
public class IllegalCaptcha extends BaseCaptcha {

    public IllegalCaptcha(int randomCodeNum) {
        super(randomCodeNum);
    }
    
    @Override
    public String generateRandomCode() {
        return "非法的请求";
    }

    @Override
    public BufferedImage drawGraphic() {
        BufferedImage image = new BufferedImage(imgWidth, imgHeight, BufferedImage.TYPE_INT_RGB);
        Graphics g = image.createGraphics();
        g.setColor(getRandColor(200, 250));
        g.fillRect(0, 0, imgWidth, imgHeight);
        g.setFont(new Font("TimesRoman", Font.PLAIN, 20));
        Random random = new Random();
        g.setColor(new Color(20 + random.nextInt(110), 20 + random.nextInt(110), 20 + random.nextInt(110)));
        g.drawString(this.randomCode,4,21);
        g.dispose();

        return image;
    }
}

对非法请求获取验证码图片做出回应

评论区

JFinal

2016-07-12 19:02

BaseCaptcha 中的代码是怎样的呢? 另外,没明白标题的意思:“对于非法请求的验证码做出回应”

badouyuren

2016-07-12 19:46

@JFinal 有时候会有一些非正常的访问来获取到验证码,比如黑客的公鸡,别网站的盗链对于这些请求,我觉得没有必要去浪费服务器的资源给他绘制出出正常的验证码。

badouyuren

2016-07-12 19:52

@JFinal 是黑客的攻击。别的网站的盗链这个没有,说错了。

JFinal

2016-07-12 21:34

@badouyuren 你是说针对于非正常访问生成错误的验证码?让对方输入总是错误的?

绿色的小苹果

2016-07-13 17:20

机器人输入???

badouyuren

2016-07-13 23:06

@JFinal 就是生成一个图片,告诉他他是非正常访问的。不过,现在想想这个好像多余了,可以直接给一个静态图片就好了。

badouyuren

2016-07-13 23:08

@绿色的小苹果 不是。有时候,黑客会单独请求这个获取验证码的uri,比如/captcha/getCode?from= 然后可以通过一定的规则判断是非法请求,就给他一个图片提示非法访问了。

badouyuren

2016-07-13 23:11

@badouyuren from=后面跟一个xss的代码,上面的回复被过滤了

cpthack

2016-07-31 00:17

cpthack

2016-07-31 00:17

cpthack

2016-07-31 00:17

热门分享

扫码入社