Simple htmlspecialchars en Java

Créez des caractères htmlspecialchars sans tenir compte du code de caractère en Java

Je l'ai écrit parce qu'il devenait nécessaire d'effectuer un traitement d'échappement dans un environnement où les bibliothèques externes ne peuvent pas être utilisées. L'environnement est Windows et Java 10

Puisque les arguments par défaut ne peuvent pas être utilisés pour java, il semble préférable de surcharger et de créer ʻENT_QUOTES` comme argument de chaîne de caractères si vous pensez aux codes de caractères dans le futur.

function



public class Escape{

	
	/**
		& to &
		" to " if flag.equals("ENT_COMPAT") flag.equals("ENT_QUOTES")
		' to '	if flag.equals("ENT_QUOTES")
		< to &lt;
		> to &gt;
	*/
	public static String htmlspecialchars(String s, String flag){
		String ret = s.replace("&","&amp;").replace("<","&lt;").replace(">","&gt;");
		if(flag.equals("ENT_COMPAT")){
			return ret.replace("\"", "&quot;");
		}else if(flag.equals("ENT_QUOTES")){
			return ret.replace("'", "&apos;").replace("\"","&quot;");
		}else if(flag.equals("ENT_NOQUOTES")){
			return ret;
		}
		return ret;
	}
}

Ce n'est pas très joli, j'ai senti que return ret; serait bien si ʻENT_COMPAT et ʻENT_QUOTES n'étaient pas spécifiés.

main


public static void main(String[] args){
		System.out.println(htmlspecialchars("<script>alert(\"1\");</script>","ENT_COMPAT"));
		System.out.println(htmlspecialchars("<script>alert(\"1\");</script>","ENT_NOQUOTES"));
		System.out.println(htmlspecialchars("<script>alert('1');</script>","ENT_QUOTES"));
	}

résultat


>java Escape
&lt;script&gt;alert(&quot;1&quot;);&lt;/script&gt;
&lt;script&gt;alert("1");&lt;/script&gt;
&lt;script&gt;alert(&apos;1&apos;);&lt;/script&gt;

Recommended Posts

Simple htmlspecialchars en Java
2 Implémentez une analyse syntaxique simple en Java
Réception d'entrée très simple en Java
3 Implémentez un interpréteur simple en Java
Un exemple simple de rappels en Java
1 Implémentez une analyse de phrase simple en Java
Partition en Java
Changements dans Java 11
Janken à Java
Taux circonférentiel à Java
FizzBuzz en Java
Lire JSON en Java
Implémentation de l'interpréteur par Java
Faites un blackjack avec Java
Application Janken en Java
NVL-ish guy en Java
Joindre des tableaux en Java
"Hello World" en Java
Interface appelable en Java
Commentaires dans la source Java
Fonctions Azure en Java
Formater XML en Java
Implémentation Boyer-Moore en Java
Hello World en Java
Utiliser OpenCV avec Java
Mémorandum WebApi avec Java
Détermination de type en Java
Exécuter des commandes en Java (ping)
Divers threads en java
Implémentation du tri de tas (en java)
API Zabbix en Java
Art ASCII à Java
Comparer des listes en Java
POST JSON en Java
Exprimer l'échec en Java
Créer JSON en Java
Manipulation de la date dans Java 8
Nouveautés de Java 8
Utiliser PreparedStatement en Java
Nouveautés de Java 9,10,11
Exécution parallèle en Java
J'ai fait un jeu de problèmes de calcul simple en Java
[Mémo personnel] Créez une copie complète simple avec Java
Essayez d'utiliser RocksDB avec Java
Lire des fichiers binaires en Java 1
Évitez l'erreur que Yuma a donnée en Java
Obtenir des informations EXIF en Java
[Neta] Sleep Sort en Java
Modifier ini en Java: ini4j
L'histoire de Java dans ce monde
Segfo Java en 6 lignes
Essayez d'appeler JavaScript en Java
Essayez de développer Spresense avec Java (1)
Essayez le type fonctionnel en Java! ①
J'ai fait une roulette à Java.
Implémentation de l'authentification en deux étapes en Java
Refactoring: faire du Blackjack en Java