So codieren Sie eine URL-Zeichenfolge oder einen Formularparameter in Java
Dies ist immer ratsam, um URL- oder Formularparameter zu codieren. Der Parameter in einfacher Form ist anfällig für Cross-Site-Angriffe und SQL-Injection und kann unsere Webanwendung in eine unvorhergesehene Ausgabe leiten. Ein URL-String oder Formularparameter können mit der Klasse - statische Codierungsmethode (String s, String enc) vonURLEncoder
codiert werden.
Wenn ein Benutzer beispielsweise die folgenden Sonderzeichen eingibt und Ihre Webanwendung die Codierung nicht verarbeitet, führt dies zu einem Cross-Site-Skriptangriff.
]]>
Beispiel für die Verwendung vonURLEncoder
zum Codieren einer Zeichenfolge undURLDecoder
zum Decodieren der codierten Zeichenfolge
package com.example; import java.io.UnsupportedEncodingException; import java.net.URLDecoder; import java.net.URLEncoder; public class testEncode { public static void main(String args[]) { try { String url = " ]]>"; String encodedUrl = URLEncoder.encode(url, "UTF-8"); System.out.println("Encoded URL " + encodedUrl); String decodedUrl = URLDecoder.decode(url, "UTF-8"); System.out.println("Dncoded URL " + decodedUrl); } catch (UnsupportedEncodingException e) { System.err.println(e); } } }
Ergebnis
Encoded URL %3C%21%5BCDATA%5B+%3CIMG+SRC%3D%22+%26%2314%3B+ javascript%3Adocument.vulnerable%3Dtrue%3B%22%3E+%5D%5D%3E Dncoded URL ]]>
Bitte denken Sie daran, immer die URL-Zeichenfolge und die Formularparameter zu codieren, um alle Sicherheitslückenangriffe zu verhindern.