package org.jebot.handler.impl;

import com.pengrad.telegrambot.model.Message;
import org.apache.logging.log4j.util.Strings;
import org.jebot.handler.AbstractHandler;
import org.jebot.handler.dto.BotMessage;

public class SqlInjectionFilterHandler extends AbstractHandler {
    @Override
    public boolean msgHandler(BotMessage botMessage) {
        if (!botMessage.messageTextIsEmpty()){
            Message message = botMessage.getMessage();
            String text = message.text();
            // 检查是否包含SQL注入的常见关键字
            String[] sqlInjectionKeywords = {"SELECT", "INSERT", "UPDATE", "DELETE", "DROP", "UNION", "--", ";", "' OR '1'='1"};

            for (String keyword : sqlInjectionKeywords) {
                if (text.toUpperCase().contains(keyword)|| text.replaceAll(" ", "").toLowerCase().contains(keyword)) {
                    // 如果检测到SQL注入关键字，返回true表示需要过滤
                    return true;
                }
            }
        }

        String caption = botMessage.getMessage().caption();
        if (Strings.isNotEmpty(caption)){
            // 检查是否包含SQL注入的常见关键字
            String[] sqlInjectionKeywords = {"SELECT", "INSERT", "UPDATE", "DELETE", "DROP", "UNION", "--", ";", "' OR '1'='1"};
            for (String keyword : sqlInjectionKeywords) {
                if (caption.toUpperCase().contains(keyword) || caption.replaceAll(" ", "").toLowerCase().contains(keyword)) {
                    // 如果检测到SQL注入关键字，返回true表示需要过滤
                    return true;
                }
            }
        }

        return false;
    }
}
