package com.eactive.eai.common.util;

public final class SecureUtil {
	private SecureUtil() {

	}

//	 Path Manipulation 보안취약점 필터
	public static String getPMFilter(String sInvalid) {
		String sValid = sInvalid;

		if (sValid == null || sValid.equals(""))
			return "";

		sValid = sValid.replaceAll("\\.\\./", "");
		return sValid;
	}

//	 XSS 보안취약점 필터
	public static String getXSSFilter(String sInvalid) {
		String sValid = sInvalid;
		if (sInvalid == null || sInvalid.equals("")) {
			return "";
		}
		sValid = sValid.replaceAll("<", "& lt;").replaceAll(">", "& gt;");
		sValid = sValid.replaceAll("\\(", "& #40;").replaceAll("\\)", "& #41;");
		sValid = sValid.replaceAll("'", "& #39;");
		sValid = sValid.replaceAll("eval\\((.*)\\)", "");
		sValid = sValid.replaceAll("[\\\"\\\'][\\s]*javascript:(.*)[\\\"\\\']", "\"\"");
		sValid = sValid.replaceAll("script", "");
		return sValid;
	}

//     SQL Injection 보안취약점 필터
	public static String getSQLInjectionFilter(String sInvalid) {
		String sValid = sInvalid;
		if (sValid == null || sValid.equals(""))
			return "";

		sValid = sValid.replaceAll(" (?i)or ", "");
		sValid = sValid.replaceAll(" (?i)and ", "");
		sValid = sValid.replaceAll(" (?i)select ", "");
		sValid = sValid.replaceAll(" (?i)delete ", "");
		sValid = sValid.replaceAll(" (?i)insert ", "");
		sValid = sValid.replaceAll(";", "");
		sValid = sValid.replaceAll(":", "");
		sValid = sValid.replaceAll("--", "");
		sValid = sValid.replaceAll("\\\\", "");
		sValid = sValid.replaceAll("\'", "");
		sValid = sValid.replaceAll("'", "");
		sValid = sValid.replaceAll("-", "");
		sValid = sValid.replaceAll("[.]", "");
		sValid = sValid.replaceAll("[(]", "");
		sValid = sValid.replaceAll("[)]", "");
		sValid = sValid.replaceAll("\"", "");

		return sValid;
	}

//	Header Manipulation 보안취약점 필터
	public static String getHMFilter(String sInvalid) {
		String sValid = sInvalid;

		if (sValid == null || sValid.equals(""))
			return "";

		sValid = sValid.replaceAll("\\n", "");
		sValid = sValid.replaceAll("\\r", "");
		return sValid;
	}

//	Dangerous File Inclusion 보안취약점 필터
	public static String getDFIFilter(String sInvalid) {
		String sValid = sInvalid;

		if (sValid == null || sValid.length() < 1)
			return "";

		sValid = sValid.replaceAll("\\.\\./|\\./|\\|:|\\*|\"|<|>", "");

		return sValid;
	}

//	Command Injection 보안취약점 필터
	public static String getCIFilter(String sInvalid) {
		String sValid = sInvalid;

		if (sValid == null || sValid.equals(""))
			return "";

		sValid = sValid.replaceAll("&", "");
		sValid = sValid.replaceAll("&", "");
		sValid = sValid.replaceAll("&&", "");
		sValid = sValid.replaceAll("|", "");
		sValid = sValid.replaceAll("||", "");
		sValid = sValid.replaceAll(";", "");
		sValid = sValid.replaceAll("\\.\\.", "");

		return sValid;
	}

//	Log Forging 보안취약점 필터
	public static String getLFFilter(String sInvalid) {
		String sValid = sInvalid;

		if (sValid == null || sValid.equals(""))
			return "";

		sValid = sValid.replaceAll("\\r", "");
		sValid = sValid.replaceAll("\\n", "");
		sValid = sValid.replaceAll("DEBUG", "");
		sValid = sValid.replaceAll("WARN", "");
		sValid = sValid.replaceAll("INFO", "");
		sValid = sValid.replaceAll("FATAL", "");
		sValid = sValid.replaceAll("ERROR", "");

		return sValid;
	}
}