Как закодировать строку URL или параметр формы в java
Всегда рекомендуется кодировать URL или параметры формы; Параметр простой формы уязвим для межсайтовых атак, SQL-инъекций и может направить наше веб-приложение на непредсказуемый результат. Строка URL-адреса или параметры формы могут быть закодированы с помощью методаURLEncoder
class - static encode (String s, String enc).
Например, когда пользователь вводит следующие специальные символы, а ваше веб-приложение не обрабатывает кодировку, это вызовет атаку межсайтового скрипта.
]]>
Пример использованияURLEncoder
для кодирования строки иURLDecoder
для декодирования закодированной строки
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); } } }
Результат
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 ]]>
Не забывайте всегда кодировать строку URL и параметры формы, чтобы предотвратить все атаки уязвимостей.