1. import java.util.regex.Matcher;
  2. import java.util.regex.Pattern;
  3. public class ApiPayloadSanitizer {
  4. /**
  5. * Sanitizes an API payload string by removing potentially harmful characters and patterns.
  6. * This is a basic sanitization for isolated environments. More robust sanitization may be needed for production.
  7. * @param payload The input API payload string.
  8. * @return The sanitized payload string.
  9. */
  10. public static String sanitizePayload(String payload) {
  11. if (payload == null) {
  12. return ""; // Handle null input gracefully
  13. }
  14. // Remove HTML tags
  15. String sanitized = removeHtmlTags(payload);
  16. // Remove script tags
  17. sanitized = removeScriptTags(sanitized);
  18. // Remove potentially harmful characters (e.g., control characters)
  19. sanitized = removeControlCharacters(sanitized);
  20. // Remove extra whitespace
  21. sanitized = sanitizeWhitespace(sanitized);
  22. return sanitized;
  23. }
  24. private static String removeHtmlTags(String payload) {
  25. // Regex to remove HTML tags
  26. Pattern pattern = Pattern.compile("<[^>]*>");
  27. Matcher matcher = pattern.matcher(payload);
  28. return matcher.replaceAll("");
  29. }
  30. private static String removeScriptTags(String payload) {
  31. // Regex to remove script tags
  32. Pattern pattern = Pattern.compile("<script.*?>.*?</script>");
  33. Matcher matcher = pattern.matcher(payload);
  34. return matcher.replaceAll("");
  35. }
  36. private static String removeControlCharacters(String payload) {
  37. // Remove control characters (ASCII 0-31)
  38. return payload.replaceAll("[\\x00-\\x1F]", "");
  39. }
  40. private static String sanitizeWhitespace(String payload) {
  41. //Replace multiple spaces with single space and trim leading/trailing spaces.
  42. return payload.replaceAll("\\s+", " ").trim();
  43. }
  44. public static void main(String[] args) {
  45. String testPayload = "<p>This is <b>test</b> payload with <script>alert('XSS')</script> some <binary data, 1 bytes><</binary> control characters.</p>";
  46. String sanitizedPayload = sanitizePayload(testPayload);
  47. System.out.println("Original Payload: " + testPayload);
  48. System.out.println("Sanitized Payload: " + sanitizedPayload);
  49. }
  50. }

Add your comment