Мы хотим, чтобы базовая (в смысле «фундаментальная») функциональность сайтов Stack Exchange, с помощью запросов и ответов, работала без JavaScript . Самые продвинутые вещи, такие как голосование, пометки, тонкости пользовательского интерфейса, тексты справки, фавориты, глобальные входящие и так далее, требуют JavaScript, и это нормально. Но единственное, что сайты не могут жить без & ndash; Q & A & ndash; не должно иметь этого требования, чтобы поддерживать трение как можно ниже.
Конечно, если у вас нет JavaScript в качестве требования, вы не можете требовать, чтобы клиент отобразил Markdown.
Даже если вы проводите повторную дезинфекцию на стороне сервера, разрешение клиенту выполнять рендеринг, очевидно, удаляет доверие, которое вы можете иметь в визуализированной версии, действительно сделанной из Markdown. Представьте себе следующее:
Я, злой спамер, выкладываю следующий ответ:
As you can sea on [this awesome site][1],
... (long text on thread-safe usage of the turtle in LOGO) ...
Hope that helps!
[1]: http://almost-real-rolex-watches.biz
Но я представляю предоставленную версию, в которой ссылка фактически ведет на соответствующий сайт о тонкостях параллелизма черепах. Поскольку сервер ожидает от меня и источника Markdown, и отрендеренного HTML, он полагает, что один был сделан из другого.
Вместе с Шоном Скитом, известным пользователем Stack Overflow с репутацией 120 тыс. В одном только теге логотипа. Он видит, что ссылка действительно ведет на релевантную страницу, любит ответ, одобряет его, публикует «Отличный ответ; на сайте, на который вы ссылаетесь, есть множество полезного контента!» комментарий, и пока он там, он исправляет опечатку "море" -> "см." (которую спамер сделал намеренно).
Но уценка, которая была в редакторе после того, как он нажал «изменить», не больше не содержала соответствующую ссылку; он содержал ссылку Rolex. И таким образом & ndash; без ведома Шона & ndash; он не только исправил опечатку, но и изменил ссылку, чтобы перейти на сайт спаммера.
Теперь у вас есть сообщение с последним изменением от доверенного пользователя, подтверждающее ответ, но со ссылкой, по которой мы не хотели бы, чтобы люди нажимали.
И история изменений (см. Пункт 2.) даже не покажет , что ссылка была изменена.