Skip to content

Commit

Permalink
Input validering: Utvider regex som blir brukt ved inputvalidering i … (
Browse files Browse the repository at this point in the history
#1391)

Input validering: Utvider regex som blir brukt ved inputvalidering i saksbehandlingssystemet
  • Loading branch information
espenwaaga authored Nov 4, 2024
1 parent 9b91496 commit da245d5
Show file tree
Hide file tree
Showing 2 changed files with 9 additions and 18 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -6,14 +6,11 @@ public class InputValideringRegex {

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

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

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

/**
* Bruk dette mønsteret for å validere fritekst til brev.
* <p>
* Godtar i tillegg til alt som er tillatt i navn og adresser også flere andre tegn som er relevante.
* <p>
* Godtar ikke større-enn og mindre-enn tegn da disse kan misbrukes til å gjøre XSS-angrep
*/
public static final String FRITEKST_BREV = REGEXP_START + TEGN_FRITEKST + "\\p{Graph}\\p{M}\\p{N}\\p{P}\\p{Zl}\\p{Zp}" + REGEXP_SLUTT;

/**
* Bruk dette mønsteret for å validere BASE64 "URL and Filename safe".
*
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -44,9 +44,11 @@ void skal_matche_adreser() {
}

@Test
void skal_ikke_tillate_diverse_som_adresse() {
assertThat("<script type=js").doesNotMatch(ADRESSE);
assertThat("\\u0013rf").doesNotMatch(ADRESSE);
void skal_ikke_tillate_script_tegn_i_noen_av_regexene() {
assertThat("<script type=js>").doesNotMatch(KODEVERK);
assertThat("<script type=js>").doesNotMatch(NAVN);
assertThat("<script type=js>").doesNotMatch(ADRESSE);
assertThat("<script type=js>").doesNotMatch(FRITEKST);
}

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

@Test
Expand Down

0 comments on commit da245d5

Please sign in to comment.