Почему изменение от WPF до Silverlight 4?

Вот отрывок, который удалит все теги не в белом списке и все атрибуты тега не в белом списке attribues (таким образом, Вы не сможете использовать onclick).

Это - измененная версия http://www.djangosnippets.org/snippets/205/ с regex на значениях атрибута, чтобы препятствовать тому, чтобы люди использовали href="javascript:...", и другие случаи, описанные в http://ha.ckers.org/xss.html .
(например, или , и т.д.)

, Как Вы видите, это использует (потрясающий) библиотека BeautifulSoup.

import re
from urlparse import urljoin
from BeautifulSoup import BeautifulSoup, Comment

def sanitizeHtml(value, base_url=None):
    rjs = r'[\s]*(&#x.{1,7})?'.join(list('javascript:'))
    rvb = r'[\s]*(&#x.{1,7})?'.join(list('vbscript:'))
    re_scripts = re.compile('(%s)|(%s)' % (rjs, rvb), re.IGNORECASE)
    validTags = 'p i strong b u a h1 h2 h3 pre br img'.split()
    validAttrs = 'href src width height'.split()
    urlAttrs = 'href src'.split() # Attributes which should have a URL
    soup = BeautifulSoup(value)
    for comment in soup.findAll(text=lambda text: isinstance(text, Comment)):
        # Get rid of comments
        comment.extract()
    for tag in soup.findAll(True):
        if tag.name not in validTags:
            tag.hidden = True
        attrs = tag.attrs
        tag.attrs = []
        for attr, val in attrs:
            if attr in validAttrs:
                val = re_scripts.sub('', val) # Remove scripts (vbs & js)
                if attr in urlAttrs:
                    val = urljoin(base_url, val) # Calculate the absolute url
                tag.attrs.append((attr, val))

    return soup.renderContents().decode('utf8')

, Поскольку в других плакатах было сказано, в значительной степени все библиотеки дб Python заботятся о Внедрении SQL, таким образом, это должно в значительной степени покрыть Вас.

27
задан stiank81 12 April 2010 в 17:49
поделиться

7 ответов

Имейте в виду, что Silverlight 4 в настоящее время находится на стадии бета-тестирования, и конечный пользовательский клиент не работает. Silverlight 4 выпущен в апреле 2010 года. Если вы уже разрабатываете приложение в WPF для настольных компьютеров, то, вероятно, это правильное решение. Однако было бы разумно не спускать глаз с земли и следить за тем, что происходит в Silverlight, на случай, если вы в конечном итоге захотите перенести свое приложение в веб-пространство или разработать другое приложение в веб-пространстве.

Silverlight 4 предлагает Silverlight на совершенно новый уровень. Прочтите сообщение в блоге Тима Хойера , чтобы узнать о множестве новых функций. Также посмотрите, сможете ли вы найти видео о приложении facebook из основного выступления, когда были объявлены функции Silverlight 4. Это приложение выделяет массу новых функций, ориентированных на настольные компьютеры.

10
ответ дан 28 November 2019 в 05:21
поделиться

Выбор WPF или Silverlight или чего-нибудь еще по этому поводу на том основании, что это модно, мне кажется, просто глупо, если только ты не пытаешься произвести впечатление на девушку или остроконечного волосатого босса.

Цель написания программ - зарабатывать деньги. Вот почему это делает Microsoft, вот почему я это делаю и, предположительно, поэтому вы это делаете. Хотя вокруг, конечно, есть люди, которые делают это, потому что им нравится это делать или в погоне за высокими идеалами, эти люди не являются эффективными рыночными силами и не имеют реального права голоса.

Большая часть денег идет на бизнес-приложения (LOB-приложения), и все инструменты собираются с явной целью продавать их людям, пытающимся создавать LOB-приложения, потому что это представляет собой основную часть мирового бюджета инструментов разработки.

Silverlight до третьей версии по существу конкурировал с Flash, то есть был бесполезен ни для чего, кроме как для сверкания на сайтах: станьте свидетелями всех примеров сайтов, связанных со страницей Microsoft Silverlight.

Большим толчком Microsoft в SL4 является поддержка разработки LOB; инструменты RIA. Но почему? Потому что в то время как вы можете заниматься LOB-разработкой с помощью HTML, CSS, AJAX, Flash и веб-сервисов, это все равно, что сказать, что вы можете построить хорошую машину из набора Meccano, при условии, что вы готовы использовать много болота. Silverlight делает то же самое, но эффективно и согласованно, с единой средой разработки. И он блестит.

Это огромное улучшение по сравнению с разрушенным набором инструментов для работы с HTML, CSS, AJAX, Flash и веб-сервисами, и если вы продаете эту интегрированную студию разработки, то это просто чудесно.

Silverlight означает легкий развёртывание. Что если у них нет Silverlight? Будет, даже если Microsoft придется скрыть его в следующем пакете обновлений. Легкое развертывание - это здорово, если вы IT-департамент, и здорово, если вы продаете услуги бюро. Это также здорово, если вы разрабатываете, потому что вам не нужно грязно разрабатывать или тестировать установочные наборы.

Для служб типа бюро нет другого разумного выбора. Для обычных LOB-аппликаторов нет причин не использовать его, а развертывание намного проще и удобнее. если вам нужно сделать что-то за пределами этих границ, то Silverlight не подходит.

Может быть интересно отметить, что мое приложение делает ряд вещей (прямые TCP вещи), которые не поддерживаются Silverlight, и это совсем не проблема; сервер делает их от имени клиента, и это приятно уклоняется от всех экологических опасностей, связанных с дикими установками, потому что мы можем контролировать серверную среду.

Я думаю, что кроссплатформенная поддержка - это пустая трата времени, потому что Silverlight на не-Windows платформах сильно отстает, а также коммерческих не-Windows рабочих станций мало и далеко не так уж много. Предприятия не используют Linux на рабочих станциях. Macintosh - это не платформа, это религия: нет смысла даже разговаривать с ними.

Всё это говорит о том, что до версии 2010 года не существует дизайнера Silverlight. Ручное кодирование бесконечных XAML - это колоссальная боль в заднице. SL4/RIA в VS2010 замечательно, но у Джо Паблика его пока нет, и он не мог бы использовать его для развертывания, если бы он это сделал, потому что нет лицензии на использование или времени выполнения конечным пользователем. Это оставляет WPF единственным практичным вариантом. Однако [барабанная дробь] окончательная бета-версия с лицензией go-live и временем исполнения будет доступна в Real Soon Now, вероятно, в конце февраля. Благодарим СкоттГу и команду.

15
ответ дан 28 November 2019 в 05:21
поделиться

Думаю, вам немного не хватает понимания WPF и Silverlight. Silverlight - это подмножество функциональных возможностей и возможностей, имеющихся в WPF. Silverlight имеет несколько функций, специфичных для Silverlight. Silverlight на рабочем столе - это просто ответ Microsoft на Adobe AIR. Итак, с учетом сказанного, реализуйте свое приложение с помощью WPF, если это ваш выбор. Не позволяйте "шуму" влиять на ваши решения относительно вашего приложения, это то, что нужно бизнесу и имеющимся навыкам в вашей организации.

10
ответ дан 28 November 2019 в 05:21
поделиться

Если ваш аргумент в пользу WPF заключается в том, что вам нужно полноценное настольное приложение, то Silverlight не подходит. Если вместо этого вас интересует веб-приложение, которое может выходить из браузера, то Silverlight 4 может быть тем, что вы ищете.

Судя по формулировке вашего вопроса, похоже, что вам нужен полноценный рабочий стол, поэтому Silverlight не имеет значения.

2
ответ дан 28 November 2019 в 05:21
поделиться

Пара основных причин рассмотреть SL4 вместо WPF

  1. Меньший размер платформы. Конечно, SL4, вероятно, будет намного больше, чем SL3, но в настоящее время структура Silverlight составляет примерно 1/10 размера самой маленькой версии .NET 3.5.
  2. Межплатформенная поддержка - Silverlight работает на Mac и Linux (теоретически). Это может не быть большой проблемой для вас, но в некоторых сценариях это критично.
  3. Намного лучшая интеграция с HTML. Silverlight может находиться внутри веб-страницы, а с версией 4 html может находиться внутри Silverlight. Опять же, это может не относиться к вам, но если вам нужно взаимодействовать с существующими веб-приложениями, Silverlight определенно вам подходит. Это также значительно упростит переход в Интернет, если вам это нужно.
  4. Это явно то, куда Microsoft вкладывает свою энергию. Я бы не стал Не удивлюсь, если WPF в значительной степени мертв, как Winforms и LINQ to SQL.
3
ответ дан 28 November 2019 в 05:21
поделиться

Предложенная вами реализация из трех таблиц будет работать для тегирования.

Однако переполнение стека использует другую реализацию. Они хранят теги в столбце varchar в таблице сообщений в виде обычного текста и используют полнотекстовую индексацию для извлечения сообщений, соответствующих тегам. Например, posts.tags = "передовой опыт работы с тегами системы алгоритмов" . Я уверен, что Джефф где-то упоминал об этом, но я забыл где.

и уже интегрированы в новые версии Windows.

Вы увеличиваете производительность, повторно используете сборки clr, и для меня очень большая проблема заключается в том, что вы получаете полное доверие, например, с отражением, которое чрезвычайно ограничено в Silverlight как в браузере, так и вне его. браузера.

И я не думаю, что WPF умрет ?? В WPF уже давно есть все, что является новым в Silverlight 1,2,3 и 4, и все еще есть больше. На мой взгляд, Silverlight есть и всегда будет более легкой версией WPF для веб-браузеров.

и еще есть. На мой взгляд, Silverlight есть и всегда будет более легкой версией WPF для веб-браузеров.

и еще есть еще. На мой взгляд, Silverlight есть и всегда будет более легкой версией WPF для веб-браузеров.

2
ответ дан 28 November 2019 в 05:21
поделиться

Поскольку Silverlight - это бренд, который активно продвигается спонсорами проектов Microsoft и спонсорами, они с большей вероятностью знают об этом, тогда как WPF, хотя мы и хорошо знаем его, не будет известен за пределами сообщества.

Таким образом, для разработки будущих проектов это может стимулировать спрос на SL4 по сравнению с WPF, особенно если есть мнение, что разработка Silverlight дешевле, чем WPF, если кривая обучения меньше для подмножества технологий (хотя я сам не согласен с этим мнением

Конечно, что касается вашего текущего приложения, переход на SL4 был бы не чем иным, как ставкой на то, чтобы стать его ранним последователем, если только вам не нужна конкретная функция, которая есть в SL4, а не в WPF.

I нравится мощь WPF, но приходит SL5, я думаю, что к 2012 году мы все будем на этом подиуме?

1
ответ дан 28 November 2019 в 05:21
поделиться
Другие вопросы по тегам:

Похожие вопросы: