2013-06-20 4 views
1

Я хочу использовать java Regex для проверки наличия <script/> в моем url. Я хочу совместить, если символы url встречаются в ['"&<>\/], но для java регулярное выражение немного отличается, я не знаю, как правильно писать регулярное выражение. Может кто-то может мне помочь?Java Regex для защиты xSS

+0

вы ищете это http://docs.oracle.com/javase/7/docs/api/java /util/regex/Pattern.html – nachokk

+0

Вы можете использовать www.txt2re.com для создания Java regex. –

+5

** Это не будет безопасно! ** Существует несколько способов победить безопасность, которую вы описываете (например, '% 3Cscript% 3E'). Используйте надлежащую библиотеку очистки сатинировки URL или, еще лучше, избегайте вставки параметров запроса на вашу страницу. –

ответ

2

Никогда не делайте HTML-кодирование/декодирование/проверку самостоятельно. Если вы когда-нибудь сталкивались с кодом, который вручную проверяет html, xml и т. Д., Это ошибка. Всегда используйте библиотеку, которая хорошо используется и проверяется экспертами для этих задач. Не будьте ковбойским кодером и думайте, что вы можете сделать это хорошо; гораздо труднее добиться того, что вы думаете. На сайте OWASP есть все, что вам нужно знать о том, как это сделать в JAVA.

0

Как вы показываете параметр строки запроса? Если вы делаете это в файле JSP вы можете просто использовать <c:out> тег, чтобы избежать его:

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> 
<c:out value="${param.myUnsafeParam}" />