Skip to content

Commit da245d5

Browse files
authored
Input validering: Utvider regex som blir brukt ved inputvalidering i … (#1391)
Input validering: Utvider regex som blir brukt ved inputvalidering i saksbehandlingssystemet
1 parent 9b91496 commit da245d5

File tree

2 files changed

+9
-18
lines changed

2 files changed

+9
-18
lines changed

felles/util/src/main/java/no/nav/vedtak/util/InputValideringRegex.java

+3-15
Original file line numberDiff line numberDiff line change
@@ -6,14 +6,11 @@ public class InputValideringRegex {
66

77
private static final String ALFABET_ENGELSK = "a-zA-Z";
88
private static final String ALFABET_NORSK = ALFABET_ENGELSK + "æøåÆØÅ";
9-
private static final String ALFABET_ALLE = "\\p{L}";
109
private static final String TALL = "0-9";
11-
private static final String ANDRE_TEGN_NAVN = "\\p{Blank}.'\\-\\–"; // eksempler: Jan-Ole O'Brian Jr.
12-
private static final String ANDRE_TEGN_ADRESSE = "/\\p{Space}"; // eksempler: c/o
1310

14-
private static final String TEGN_NAVN = ALFABET_ALLE + ANDRE_TEGN_NAVN;
15-
private static final String TEGN_ADRESSE = TEGN_NAVN + TALL + ANDRE_TEGN_ADRESSE;
16-
private static final String TEGN_FRITEKST = TEGN_ADRESSE + "%§\\!?@_()+:;,=\"&\\p{Sc}";
11+
private static final String TEGN_NAVN = "\\p{L}\\p{M}\\p{Z}\\p{P}"; // eksempler: Jan-Ole O'Brian Jr.
12+
private static final String TEGN_ADRESSE = "\\p{N}\\p{L}\\p{M}\\p{Z}\\p{P}\n\t"; // eksempler: c/o
13+
private static final String TEGN_FRITEKST = "\\p{N}\\p{L}\\p{M}\\p{Z}\\p{Cf}\\p{P}\\p{Sc}\\p{Sk}\n\t+=";
1714

1815
/**
1916
* Bruk dette mønsteret for å validere koder i kodeverk.
@@ -55,15 +52,6 @@ public class InputValideringRegex {
5552
*/
5653
public static final String FRITEKST = REGEXP_START + TEGN_FRITEKST + REGEXP_SLUTT;
5754

58-
/**
59-
* Bruk dette mønsteret for å validere fritekst til brev.
60-
* <p>
61-
* Godtar i tillegg til alt som er tillatt i navn og adresser også flere andre tegn som er relevante.
62-
* <p>
63-
* Godtar ikke større-enn og mindre-enn tegn da disse kan misbrukes til å gjøre XSS-angrep
64-
*/
65-
public static final String FRITEKST_BREV = REGEXP_START + TEGN_FRITEKST + "\\p{Graph}\\p{M}\\p{N}\\p{P}\\p{Zl}\\p{Zp}" + REGEXP_SLUTT;
66-
6755
/**
6856
* Bruk dette mønsteret for å validere BASE64 "URL and Filename safe".
6957
*

felles/util/src/test/java/no/nav/vedtak/util/InputValideringRegexTest.java

+6-3
Original file line numberDiff line numberDiff line change
@@ -44,9 +44,11 @@ void skal_matche_adreser() {
4444
}
4545

4646
@Test
47-
void skal_ikke_tillate_diverse_som_adresse() {
48-
assertThat("<script type=js").doesNotMatch(ADRESSE);
49-
assertThat("\\u0013rf").doesNotMatch(ADRESSE);
47+
void skal_ikke_tillate_script_tegn_i_noen_av_regexene() {
48+
assertThat("<script type=js>").doesNotMatch(KODEVERK);
49+
assertThat("<script type=js>").doesNotMatch(NAVN);
50+
assertThat("<script type=js>").doesNotMatch(ADRESSE);
51+
assertThat("<script type=js>").doesNotMatch(FRITEKST);
5052
}
5153

5254
@Test
@@ -57,6 +59,7 @@ void skal_matche_fritekst() {
5759
assertThat("Send svar til [email protected]").matches(FRITEKST);
5860
assertThat("Husk at 1+1=2").matches(FRITEKST);
5961
assertThat("&").matches(FRITEKST);
62+
assertThat("%§\\!?@_()+:;,=\"&\\p{Sc}").matches(FRITEKST);
6063
}
6164

6265
@Test

0 commit comments

Comments
 (0)