Проблема в том, что вы вызываете GetGridData
из фонового потока. Этот метод обращается к нескольким элементам управления WPF, которые привязаны к основному потоку. Любая попытка доступа к ним из фонового потока приведет к этой ошибке.
Чтобы вернуться к правильной теме, вы должны использовать SynchronizationContext.Current.Post
. Однако в этом конкретном случае, похоже, большая часть работы, которую вы выполняете, основана на пользовательском интерфейсе. Следовательно, вы создадите фоновый поток, чтобы сразу вернуться к потоку пользовательского интерфейса и выполнить некоторую работу. Вам нужно немного реорганизовать свой код, чтобы он мог выполнять дорогостоящую работу в фоновом потоке, а затем публиковать новые данные в потоке пользовательского интерфейса после
Я протестировал все использование, которое я знаю на Очистителе HTML, и он сделал очень хорошо. Это фильтрует не только HTML, но также и CSS и URL.
, Как только Вы сужаете элементы и атрибуты к невинным, ловушки находятся в содержании атрибута †“javascript:
псевдо-URL (IE позволяет символы табуляции на название протокола - java	script:
все еще работы), и свойства CSS тот триггер JS.
Парсинг URL может быть хитрым, например, они допустимы: http://spoof.com:xxx@evil.com
или //evil.com
. Интернационализировавшие домены (IDN) могут быть записаны двумя способами †“Unicode и punycode.
Идут с Очиститель HTML †“, это имеет большинство из них разработанных. Если Вы просто хотите зафиксировать поврежденный HTML, то используйте Опрятный HTML (это доступно как расширение PHP).
Отправленный пользователями HTML не всегда допустим, или действительно завершитесь. Браузеры интерпретируют широкий спектр недопустимого HTML, и необходимо удостовериться, что можно поймать его.
Также знать о допустимо выглядящем:
<img src="http://www.mysite.com/logout" />
и
<a href="javascript:alert('xss hole');">click</a>
Я использовал Очиститель HTML с успехом и не имел никакого xss, или другой нежелательный вход проникают. Я также выполняю санировать HTML посредством Опрятного расширения, чтобы удостовериться, что это проверяет также.
W3C имеет большой пакет с открытым исходным кодом для проверки HTML, доступного здесь:
можно загрузить пакет для себя и вероятно реализовать то, что они делают. К сожалению, кажется, что много синтаксических анализаторов DOM, кажется, готово изогнуть правила выделить для кода HTML "в дикой природе", как это было, таким образом, это - хорошая идея позволить ведущим устройствам сказать Вам что случилось и не оставить это более практическому инструменту - существует много веб-сайтов там, что не идеальный, совместимый HTML, но что мы все еще используем каждый день.